Jump to content
php.lv forumi

Unikālo ierakstu/attēlu rādīšana randomā vairākās pozīcijās


senters

Recommended Posts

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

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 by senters
Link to comment
Share on other sites

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

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

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

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

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

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

Guest
This topic is now closed to further replies.
×
×
  • Create New...