| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
bobby
Data înscrierii: 24/Oct/2004
Mesaje: 27
|
| Trimis: Mar Noi 23, 2004 8:12 pm Titlul subiectului: Random Select |
|
|
cum fac sa imi afiseze dintr-o baza de date random niste date:
de ex :
am baza de date Curs BNR: cu tabele euro dolar lei .Cand dau select * from euro vreau sa fie ceva random. Odata sa afiseze euro,odata lei si tot asa! |
|
| Sus |
|
oiganSTUDIOS
Data înscrierii: 22/Oct/2004
Mesaje: 222
|
| Trimis: Mar Noi 23, 2004 11:41 pm Titlul subiectului: |
|
|
SELECT * FROM tablename ORDER BY RAND() LIMIT 1
dar asta merge la tabele mici pana in 300.000 de inregistrari... Daca ai foarte multe inregistrari in baza poate sa mearga incet... |
|
| Sus |
|
bobby
Data înscrierii: 24/Oct/2004
Mesaje: 27
|
| Trimis: Mie Noi 24, 2004 9:29 am Titlul subiectului: |
|
|
SELECT * FROM text_nick ORDER BY RAND() LIMIT 1
tabelul se numeste text_nick. Dar imi da eroare
ce am gresit? |
|
| Sus |
|
oiganSTUDIOS
Data înscrierii: 22/Oct/2004
Mesaje: 222
|
| Trimis: Mie Noi 24, 2004 9:37 am Titlul subiectului: |
|
|
www.php.net
Cauta si tu pe acolo si o sa gasesti raspunsul...
Numa' bine... |
|
| Sus |
|
bobby
Data înscrierii: 24/Oct/2004
Mesaje: 27
|
| Trimis: Mie Noi 24, 2004 11:16 am Titlul subiectului: |
|
|
daca scriu SELECT * FROM a ORDER BY RAND()
merge dar imi afiseaza tot continutul tabelul radom (abc acb bca etc))
cand pun cum ai zis da eroare pls help |
|
| Sus |
|
bobby
Data înscrierii: 24/Oct/2004
Mesaje: 27
|
| Trimis: Mie Noi 24, 2004 6:49 pm Titlul subiectului: |
|
|
| nu stie nimeni? |
|
| Sus |
|
mihnea sim
Data înscrierii: 20/Aug/2004
Mesaje: 149
Locație: Alexandria
|
| Trimis: Mie Noi 24, 2004 8:29 pm Titlul subiectului: |
|
|
an style="color: #000000"><?php $res = mysql_query("select * from tabel");
$pos = mysql_num_rows($res);
$rand = rand(1,$pos)-1;
mysql_query("select * from tabel limit ".$rand.",1");
Cu placere :) |
|
| Sus |
|
bobby
Data înscrierii: 24/Oct/2004
Mesaje: 27
|
| Trimis: Mie Noi 24, 2004 9:05 pm Titlul subiectului: |
|
|
| deci cum va arata scriptul k nu am inteles? |
|
| Sus |
|
mihnea sim
Data înscrierii: 20/Aug/2004
Mesaje: 149
Locație: Alexandria
|
| Trimis: Joi Noi 25, 2004 7:17 am Titlul subiectului: |
|
|
| Pai exact cel de sus. Primul $res este selectul cu toate liniile tabelului, ca sa le pot numara cu $pos = mysql_num_rows($res). Cunoscand numarul total de linii generez un numar aleatoriu intre 1 si $pos din care scad o unitate (pt ca numerotarea liniilor incepe de la 0 si se termina cu $pos-1). Apoi fac selectul final, cu un " limit ".$rand.",1" Care inseamna: cauta randul din tabel de pe pozitia $rand si incepand cu el selecteaza 1 randuri |
|
| Sus |
|
bobby
Data înscrierii: 24/Oct/2004
Mesaje: 27
|
| Trimis: Mie Dec 01, 2004 6:11 pm Titlul subiectului: |
|
|
cum fac k serverul sa aleaga la intamplare un id (fiecare camp are cate un id) si sa imi afiseaze toate acele date.
adica am un tabel cu 3 campuri : id nick puncte
sa ia id 10 sa afiseze nick-ul si punctele |
|
| Sus |
|
bobby
Data înscrierii: 24/Oct/2004
Mesaje: 27
|
| Trimis: Mie Dec 01, 2004 6:17 pm Titlul subiectului: |
|
|
la raspunsul tau mihnea:
uite codul meu :
Cod: ?php
$link = mysql_connect("xxxxxxxx", "xxxxxxx", "xxxxxx")
or die("Nu se poate conecta");
mysql_select_db("divizia_fifa", $link) or die("Nu am gasit baza de date cautata");
$res = mysql_query("select * from clasament");
$pos = mysql_num_rows($res);
$rand = rand(1,$pos)-1;
mysql_query("select * from clasament limit ".$rand.",1");
while ($myrow = mysql_fetch_array($result)) {
echo "<b></b> ".$myrow["text_nick"]."";
}
imi da eroare la linia 28 care este Cod: while ($myrow = mysql_fetch_array($result)) {
ce am gresit? |
|
| Sus |
|
roverdc
Data înscrierii: 27/Noi/2004
Mesaje: 21
Locație: Piatra-Neamt
|
| Trimis: Mie Dec 01, 2004 9:37 pm Titlul subiectului: |
|
|
deci eu vad:
$res = mysql_query("select * from clasament");
si linia 28 este: while ($myrow = mysql_fetch_array($result)) {
si eu cred ca ar trebuii sa fie:
while ($myrow = mysql_fetch_array($res)) { |
|
| Sus |
|
bobby
Data înscrierii: 24/Oct/2004
Mesaje: 27
|
| Trimis: Mie Dec 01, 2004 10:18 pm Titlul subiectului: |
|
|
mersi mult..,.
cum fac k serverul sa aleaga la intamplare un id (fiecare camp are cate un id) si sa imi afiseaze toate acele date.
adica am un tabel cu 3 campuri : id nick puncte
sa ia id 10 sa afiseze nick-ul si punctele |
|
| Sus |
|
mihnea sim
Data înscrierii: 20/Aug/2004
Mesaje: 149
Locație: Alexandria
|
| Trimis: Mie Dec 01, 2004 10:49 pm Titlul subiectului: |
|
|
while($row = mysql_fetch_array($result)) -- unde $result este resursa cu limit $rand. Si nici nu e nevoie de while pt ca returneaza doar un rand.
Adica era bun codul tau bobby, numai ca exact cu un rand inainte de while ai uitat sa scrii atribuirea pt $result. Si mai ai o greseala la ghilimele. Asta ar trebui sa mearga:
an style="color: #000000"><?php $link = mysql_connect("xxxxxxxx", "xxxxxxx", "xxxxxx")
or die("Nu se poate conecta");
mysql_select_db("divizia_fifa", $link) or die("Nu am gasit baza de date cautata");
$res = mysql_query("select * from clasament");
$pos = mysql_num_rows($res);
$rand = rand(1,$pos)-1;
$result = mysql_query("select * from clasament limit ".$rand.",1");
$myrow = mysql_fetch_array($result) //deoarece $result are doar un rand
echo "<b> ".$myrow['text_nick']."</b>";
} |
|
| Sus |
|
bobby
Data înscrierii: 24/Oct/2004
Mesaje: 27
|
| Trimis: Mie Dec 01, 2004 11:21 pm Titlul subiectului: |
|
|
| da eroare la codul tau |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |