ugrás a tartalomhoz

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

Farstaff · 2007. Ápr. 7. (Szo), 10.43
Sziasztok. A következő hibaüzenetet kapom: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

A következő a kód:
  1.  <?php  
  2.     
  3.   include ("config.php");  
  4.   $eredmeny = mysql_query("SELECT jatek FROM szoveg WHERE jatek='1'");  
  5. $numrow = mysql_num_rows($eredmeny);  
  6.   
  7.   
  8.   $r=rand(1,$numrow);  
  9.   echo $r;  
  10.   ?>  
  11.    <?php  
  12.   
  13.     for($c=1;$c<$r;$c=$c+1){  
  14.   
  15.   
  16.         $arr=mysql_fetch_array(  
  17.        
  18.   
  19.     mysql_query("SELECT id AS huszadik FROM szoveg ORDER BY jatek DESC LIMIT '$r'-1,1")  
  20.       
  21.     );  //ebben a sorban van a hiba.  
  22.   
  23.   
  24. $huszadik = $arr["huszadik"];  
  25.   
  26.         echo $arr;  
  27.   
  28.                     }  
  29.   
  30.   ?>  
A cél azlenne, hogy egy megszámolja, hogy hány mezőban 1 a jatek mező. Ez jól működik. Ezután véletlenül generáljon egy számot 1 és azoknak a száma között akiknek 1 a jatek mező. Ez is jól működik. Ezután azt kellene, hogy csökkenő sorrendbe rakja azokat akiknek 1 a jatek mező. A random tegyük fel a 10-et generálta. most azt kéne csinálni, hogy a 10. mező amiben a jatek=1 annak a sornak az id-jét kiírja. Remélem tud valaki segíteni.
 
1

mysql_result

s_volenszki · 2007. Ápr. 7. (Szo), 12.06
Szia!

Nem teljesen értem hogy mit akarsz, mert a kérdéseid nem egyértelműek. Addig amíg megfogalmazod újra mit szeretnél, nézz körül a mysql_result körül! Egyébként a kódodon ugyan az a zavar látszik, mint a kérdéseiden. Ha jól értelemezem amit szeretnél, akkor az egy pofon egyszerű dolog.

s_volenszki
2

Újra

Farstaff · 2007. Ápr. 7. (Szo), 13.01
Na akkor újra.
Van egy adatbázisom, abban sok táblám a táblákban mezőim. Az egyik táblám neve szoveg, és ezen belül vannak a regisztrált felhasználóim. A szoveg táblába van ilyen mezőm pl.: id, nev, jelszo, jatek...
Nekem azt kéne, hogy megcsinálja ez a kód, hogy kikeresi azokat a felhasználókat akiknek a jatek mező 1-re van állítva. És véletlenszerűen válasszon ki közülük 1-et akinek kiírja az id mezőjét. Remélem már érthetőbben fogalmaztam :)
Nem vagyok nagy profi :-)
3

ja

Farstaff · 2007. Ápr. 7. (Szo), 13.06
Azok közül válasszon ki 1-et akinek a jatek mezője 1. És ennek az 1-nek írja ki az id mezőjét. Azt, hogy véletlenszerűen kiválasszon 1-et ezt randommal akartam megoldani. megszámoltatom, hogy hány felhasználónál 1 a jatek, a véletlenszámot pedig 1 és ez a szám között generálja. Ez a szám pedig az ahány felhasználónak 1 a jatek. És mivel csökkenő sorrendbe rakja a jatek mezőt emiatt az 1-esek lesznek felül. És ha 20 felhasználónál 1-es a jatek mező akkor a random a számot 1 és 20 között generálja. Ha generálja a 11-et akkor a csökkenősorrendben a 11. embernek akinek a jatek mezője 1 kiírja az id jét. Na ezt már megint jól megaszondtam :)
4

sql

gex · 2007. Ápr. 7. (Szo), 14.07
select id from szoveg where jatek = 1 order by rand() limit 0, 1;
5

de

Farstaff · 2007. Ápr. 7. (Szo), 14.16
De ha bennehagyom a mysql_fetch_array -t meg a ); -t akkor a hibaüzenet továbbra is marad.
6

Lefutva

Farstaff · 2007. Ápr. 7. (Szo), 14.30
Amikor lefuttatom a fájlt a következőt írja ki:

12
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in on line 24

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in on line 24

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in on line 24

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in on line 24

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in on line 24

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in on line 24

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in on line 24

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in on line 24

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in on line 24

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in on line 24

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in on line 24
7

Kérdés egyszerűbben

Farstaff · 2007. Ápr. 7. (Szo), 14.35
Akkor így teszem fel a kérdést. Hogyan tudom egy adatbázis 13. sorát kilistázni.
8

te nem ezt akarod tudni

gex · 2007. Ápr. 7. (Szo), 17.36
select id from szoveg where jatek = 1 order by nev limit 12, 1;

de neked nem ez a problémád, hanem az, hogy valamiért nem kapsz vissza eredményt a mysql_query után.
megoldás: mysql_errno, mysql_error függvények használata. ha te nem teszel meg mindent annak érdekében, hogy kiderüljön mi a hiba, hidd el, itt sem fog senki igyekezni.
9

Helyes a megközelítés.

s_volenszki · 2007. Ápr. 7. (Szo), 17.42
Ha nem érted az alapokat, nehezebb lesz a példára koncentrálni. Azon kívül, hogy google meg a yahoo kb. 1 millio találatot adna erre a kérdésre, nézzünk két alapvető eljárást:
  1. $lekerdezes = mysql_query("SELECT * FROM tabla WHERE jatek = '1'");  
  2.   
  3. while($row = mysql_fetch_array($lekerdezes , MYSQL_ASSOC))  
  4. {  
  5.    print "Azonosító: ".$row['id']." Név: ".$row['nev']."<br>";  
  6. }  
vagy
  1. $lekerdezes = mysql_query("SELECT * FROM tabla WHERE jatek = '1'");  
  2. $sorok_szama = mysql_num_rows($lekerdezes);  
  3.   
  4. for($i=0;$i<=$sorok_szama-1;$i++)  
  5. {  
  6.    $id = mysql_result($lekerdezes,$i,'id');  
  7.    $nev = mysql_result($lekerdezes,$i,'nev');  
  8.    print "Azonosító: ".$id." Név: ".$nev."<br>";  
  9. }  
Ha megfigyeled a második lejárásban az eredmény tömb indexelését, láthatod, hogy teljesen szimplán megoldható az hogy véletlenszerűen kivegyél egyet a találatok közül, mert elég ha a véletlen generált számot indexnek használod a $i helyett:
  1. $lekerdezes = mysql_query("SELECT * FROM tabla WHERE jatek = '1'");  
  2. $sorok_szama = mysql_num_rows($lekerdezes);  
  3. $veletlenszam = rand(1,$sorok_szama);  
  4.   
  5.    $nev = mysql_result($lekerdezes,$veletlenszam,'nev');  
  6.    print "Gratulálok kedves ".$nev."!";  
Gondolkozz!

s_volenszki

ui:
Ha nincs szükséged a teljes listára, csak arra az egy véletlenre akkor használd azt a lekérdezést amit gex javasolt. :)
10

Köszönöm

Farstaff · 2007. Ápr. 8. (V), 19.01
Nagyon szépen köszönöm a választ! Működik :)