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:

 <?php
  
  include ("config.php");
  $eredmeny = mysql_query("SELECT jatek FROM szoveg WHERE jatek='1'");
$numrow = mysql_num_rows($eredmeny);


  $r=rand(1,$numrow);
  echo $r;
  ?>
   <?php

  	for($c=1;$c<$r;$c=$c+1){


        $arr=mysql_fetch_array(
     

    mysql_query("SELECT id AS huszadik FROM szoveg ORDER BY jatek DESC LIMIT '$r'-1,1")
    
    );  //ebben a sorban van a hiba.


$huszadik = $arr["huszadik"];

        echo $arr;

                    }

  ?>

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:

$lekerdezes = mysql_query("SELECT * FROM tabla WHERE jatek = '1'");

while($row = mysql_fetch_array($lekerdezes , MYSQL_ASSOC))
{
   print "Azonosító: ".$row['id']." Név: ".$row['nev']."<br>";
}
vagy

$lekerdezes = mysql_query("SELECT * FROM tabla WHERE jatek = '1'");
$sorok_szama = mysql_num_rows($lekerdezes);

for($i=0;$i<=$sorok_szama-1;$i++)
{
   $id = mysql_result($lekerdezes,$i,'id');
   $nev = mysql_result($lekerdezes,$i,'nev');
   print "Azonosító: ".$id." Név: ".$nev."<br>";
}
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:

$lekerdezes = mysql_query("SELECT * FROM tabla WHERE jatek = '1'");
$sorok_szama = mysql_num_rows($lekerdezes);
$veletlenszam = rand(1,$sorok_szama);

   $nev = mysql_result($lekerdezes,$veletlenszam,'nev');
   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 :)