senters Posted November 14, 2011 Report Share Posted November 14, 2011 Ir 15 pozīcijas (attēlu box'i), kuros katrā mainās (randomā) visi aktīvie pasākumi no DB. Pozīcijas - http://screencast.com/t/JyLtqvYvq un intro lapas kods - http://pastie.org/2862794 Patreiz katrā attēla rāmītī tiek selektēti aktīvie pasākumi no DB un randomā rādīti izmantojot "jquery cycle" (http://jquery.malsup.com/cycle/options.html). Problēma: 1) Kā redzams http://screencast.com/t/JyLtqvYvq regulāri atkārtojas pasākumi (attēli). Vajadzīgs būtu tā, lai tie neatkārtotos. Link to comment Share on other sites More sharing options...
xPtv45z Posted November 15, 2011 Report Share Posted November 15, 2011 15 selekti, lai atlasītu vienus un tos pašus datus?!!! Uztaisi ar vienu un ciklā viņus izdrukā, tad nekas neatkārtosies. Link to comment Share on other sites More sharing options...
Gints Plivna Posted November 15, 2011 Report Share Posted November 15, 2011 Tur vispār pietiek ar vienu vaicājumu, kas visu darbu paveic jau MySQL galā: SELECT <vajadzīgās kolonas> FROM tabula ORDER BY rand(); Un atrast šo info var šādi: http://lmgtfy.com/?q=mysql+random+order Gints Plivna http://datubazes.wordpress.com Link to comment Share on other sites More sharing options...
senters Posted November 15, 2011 Author Report Share Posted November 15, 2011 (edited) xPtv45z, par tiem 15 selectiem, jā protams, viņi tiks novākti. Uzlikti tika tikai lai izmestu vienkāršoti pasākumus pa pozīcijām un rotētu. Gint, ORDER BY rand() bija jau iepriekš zināms. Tas noderēs tad rakstot to vienu selektu ar aktīvajiem pasākumiem kurš rezultātus izmetīs 15 vietās random secībā. Tas ko, es nesaprotu ir - kā pozīcijai, kura mainīsies ar jquery cycle efektu "iestāstīt", lai neņem un nerāda tādu pasākumu, kurš jau figurē kādā no citām 14 pozīcijām (http://screencast.com/t/za3coprea) Edited November 15, 2011 by senters Link to comment Share on other sites More sharing options...
daGrevis Posted November 15, 2011 Report Share Posted November 15, 2011 No idejiskā skatu punkta: if (gaidamais_id == kads_no_jau_esosajiem_id) rekursija_atpakal_pirms_if_statement_ar_citu_id; Tagad tikai atliek izdomāt kā to panākt kodā! Link to comment Share on other sites More sharing options...
xPtv45z Posted November 15, 2011 Report Share Posted November 15, 2011 Tam nav nekāda sakara ar jquery cycle. Tas, ka tev tur rādās vairāki vienādi ir tieši daudzo vienādo sql vaicājumu rezultāts. Tas ko jquery cycle dara ir, tikai pārbīda/nomaina vienu pozīcīju uz nākamo, bet viņas visas jau ir iepriekš uzģenerētas. Un ja jau tu ar php saģenerē vairāks vienādas, tad, pats par sevi saprotams, ka viņas atkārtosies. Link to comment Share on other sites More sharing options...
senters Posted November 15, 2011 Author Report Share Posted November 15, 2011 Jā. Protams. Runa nav par cycle, bet par to kā pareizi uzrakstīt selectu un nerādīt 2 vai vairāk vienādus attēlus (pasākumus) vienlaicīgi. Link to comment Share on other sites More sharing options...
php newbie Posted November 15, 2011 Report Share Posted November 15, 2011 Vai tu gribi lai katrā boxā būtu savs unikāls pasākumu komplekts? Vai lai vienkārši narādītu vienādus? Link to comment Share on other sites More sharing options...
senters Posted November 15, 2011 Author Report Share Posted November 15, 2011 Otrais variants - lai nebūtu vienādu pasākumu starp tiem 15 boxiem. Link to comment Share on other sites More sharing options...
Gints Plivna Posted November 15, 2011 Report Share Posted November 15, 2011 Paga es tomēr nesaprotu :O Ja tev vajag katru ierakstu 1 reizi random secībā, tad ar ko tas atšķiras no manis dotā vaicājuma? Tur kā reiz vaicājums atgriež visus tabulas ierakstus, katru 1 reizi un random secībā, es nesaprotu, kas tieši tajā variantā neder? Gints Plivna http://datubazes.wordpress.com Link to comment Share on other sites More sharing options...
senters Posted November 15, 2011 Author Report Share Posted November 15, 2011 Atstāju vienu boxi. Kods - http://pastie.org/2867895 Kā panākt lai no viena selecta dati izlādētos 15 šādos boxos un mainoties nebūtu vienādi pasākumi? Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 15, 2011 Report Share Posted November 15, 2011 Es arī nesaprotu kāpēc nevar ar ORDER BY rand() ? Order taču ir kārtošana, nevis datu iegūšana. Vienkārši neņems tos ierakstus pēc kārtas, bet visu samaisīs. un nav svarīgi cik sarežģīts kverijs tev būs, ja vien vīņš atlasīs UNIKALUS ierakstus , kas paši netkārtojas Link to comment Share on other sites More sharing options...
senters Posted November 15, 2011 Author Report Share Posted November 15, 2011 Reķini to, ka ir 15 vietas kurās visās šie aktīvie pasākumi rotēs. Ja ir viena vieta problēmu nav, nav kam atkārtoties. Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 15, 2011 Report Share Posted November 15, 2011 Reķini to, ka ir 15 vietas kurās visās šie aktīvie pasākumi rotēs. Ja ir viena vieta problēmu nav, nav kam atkārtoties. pag pag. Tev ir kaut kāds datu masīvs, nenoteikta skaita, un vajag viņu attēlot 15 vietās? Respektīvi gribi lai 15 vietās attēlojot secība netkārtotos? vai arī ir masīvs ar x elementiem un vajag paņemt 15 Unikālus datus ? Link to comment Share on other sites More sharing options...
php newbie Posted November 16, 2011 Report Share Posted November 16, 2011 1 variants JS: saglabāt radītus attēlus masīvā un pārbaudīt pie izvades vai tads elements eksistē masīvā. Kad pārslēdz uz nākamo, izdzēš iepriekšejo elementu no masīva. Izmanto before un/vai after eventus 2 variants PHP: ielādēt elementus runtime'ā ar ajax un lai php pārbauda vai events ir unikāls. Piemēram saglabājot sesijā radītus elementus. Bet sanāk pie katras attēla pārslegšanas lapa griezīsies pie servera. Šim ir + ka bez lapas pārlades jauni ieraksti parādīsies. pieņēmu ka ir labāki varianti :) Link to comment Share on other sites More sharing options...
Recommended Posts