mysql order by rand me php

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
tsirman
Δημοσιεύσεις: 145
Εγγραφή: 14 Νοέμ 2002 22:57
Επικοινωνία:

mysql order by rand me php

Δημοσίευση από tsirman » 18 Ιούλ 2006 00:42

exo ena query me polla rows ke thelo na perno random 4 rows apo ta 2000. ginete me php na to kano afto?

Άβαταρ μέλους
shadow
Script Master
Δημοσιεύσεις: 606
Εγγραφή: 14 Απρ 2005 18:30

mysql order by rand me php

Δημοσίευση από shadow » 18 Ιούλ 2006 00:58

something like that

Κώδικας: Επιλογή όλων

SELECT *  FROM `table`
ORDER BY RAND()
LIMIT 4;
Close your eyes
For your eyes will only tell the truth and the truth isnt what you want to see
In the dark, is it easy to pretend that the truth is it ought to be.
Programmers are programmers because they like to code

Άβαταρ μέλους
tsirman
Δημοσιεύσεις: 145
Εγγραφή: 14 Νοέμ 2002 22:57
Επικοινωνία:

mysql order by rand me php

Δημοσίευση από tsirman » 18 Ιούλ 2006 02:59

thanks alla afto idi to exo kanei....ala an kaneis ena test tha deis pos to query pu mu proteineis kai pu idi exo xrisimopiisei ine poli argo otan exeis polla rows....
to thema ine pos zitas kapia sigekrimena rows pernodas random times apo php.. afto ine poli pio grigoro......

afto zitao dld an kserei kapios pos perno random times apo ena query kai oxi me to order by rabd() giati afksanei geometrika to xrono ekteleseis tuy query

:)

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

mysql order by rand me php

Δημοσίευση από cherouvim » 18 Ιούλ 2006 07:39

Κώδικας: Επιλογή όλων

SELECT * FROM foo WHERE id IN (2, 5, 8, 0)
Το 2, 5, 8, 0 έχει προκύψει από την PHP.

Άβαταρ μέλους
tsirman
Δημοσιεύσεις: 145
Εγγραφή: 14 Νοέμ 2002 22:57
Επικοινωνία:

mysql order by rand me php

Δημοσίευση από tsirman » 18 Ιούλ 2006 11:14

ok ke pali simfwnw. ke os eki ine efkolo ala to thema ine oti an exeis p.x. ta eksis IDs:

1,22,23,24,25,31,32,33,35,36,39,40 ......

kai i rand tis php pu tha ti valeis na vrei arithmus metaksi 1 ws 40 su vgalei ena random arithmo 10 tote aftos den adapokrinete se kapio apo ta diathesima IDs.....

eki exo kolisei

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

mysql order by rand me php

Δημοσίευση από cherouvim » 18 Ιούλ 2006 11:56

Αν γνωρίζεις τα IDs εκ τον προτέρον (με ένα SELECT id FROM foo) μπορείς να τραβήξεις μία random σούμα από το array που προκύπτει.

Φυσικά έτσι τρέχεις 2 ερωτήματα.

Άβαταρ μέλους
shadow
Script Master
Δημοσιεύσεις: 606
Εγγραφή: 14 Απρ 2005 18:30

mysql order by rand me php

Δημοσίευση από shadow » 18 Ιούλ 2006 21:51

μια λογική που μπορείς να ακολουθήσεις ειναι να παρεις ολα τα δεδομενα σου με ενα queraki και στην συνεχεια να κανεις τυχαια jumps στο αποτελεσμα . Με την mysql_data_seek μπορεις να τραβηξεις rows που βρισκονται σε τυχαίες θέσεις που θα τις έχεις βρει με χρηση της rand της php στην οποια rand θα βαλεις ως όρια το πλήθος των γραμμων που θα σου επιστρεψει το queraki σου.. Βεβαια δεν ξερω ποσο αποδοτικο και αποδεκτό ειναι να τραβηξεις ολα τα data για να επιλέξεις στη συνέχεια μονο 4 records

Κώδικας: Επιλογή όλων

$rows = mysql_num_rows($result);
$repeat = 4;
for &#40;$i=0; $i<$repeat; $i++&#41;&#123;
  $rnumber = rand&#40;0, $rows&#41;;
  $res = mysql_data_seek&#40;$result , $rnumber&#41;;
  print_r&#40;mysql_fetch_row&#40;$result&#41;&#41;;
&#125;
Close your eyes
For your eyes will only tell the truth and the truth isnt what you want to see
In the dark, is it easy to pretend that the truth is it ought to be.
Programmers are programmers because they like to code

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

mysql order by rand me php

Δημοσίευση από cherouvim » 18 Ιούλ 2006 22:19

Δεν είναι scalable αυτό. Είναι κρίμα για 4 εγγραφές να φέρεις και τις 10.000 (λέμε τώρα).

Μπορείς να κάνεις:

Κώδικας: Επιλογή όλων

SELECT * FROM foo LIMIT 10,1
SELECT * FROM foo LIMIT 55,1
SELECT * FROM foo LIMIT 125,1
Τα νούμερα αυτά έχουν προκύψει από την PHP δεδομένου οτι ξέρεις το COUNT(*).

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες