Jump to content
php.lv forumi
Sign in to follow this  
suport

Warning: mysql_result(): supplied argument is not a valid MySQL result

Recommended Posts

http://paste.php.lv/f25a9f38aabebe73232c64503a806977?lang=php

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\video\videolist.php on line 17

 

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\video\videolist.php on line 36

 

kas tur pa vainu ? vis parejais iet var pieveinot utt .. bet tieshi skatiities visus video .. pff ! uzreiz sitas

Share this post


Link to post
Share on other sites

http://paste.php.lv/f25a9f38aabebe73232c64503a806977?lang=php

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\video\videolist.php on line 17

 

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\video\videolist.php on line 36

 

kas tur pa vainu ? vis parejais iet var pieveinot utt .. bet tieshi skatiities visus video .. pff ! uzreiz sitas

Atkal un atkal šitā pati kļūda. vajadzētu tādu pašu sticky topicu kā par headers already sent :)

 

noteikti kļūda kvērija sintaksē.

echo mysql_error();

Share this post


Link to post
Share on other sites

ņemot vērā, ka šī kļūda parādās ar apbrīnojamu regularitāti un stabilitāti (katru nedēļu), man lūgums adminiem/moderatoriem nopinot šo topiku, nomainot nosaukumu uz "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource". pēc "Headers already sent" šis ir nākamais, uz kā visi (kas nelasa manuāli) krīt iekšā. pats jau kādas reizes 5x esmu atbildējis uz šo :D

 

ok, tgd skaidrojums skaidrā latviešu valodā:

izpildot kļūdainu sql

$result = mysql_query('SELECT * FROM TabulaKurasNav');

nekādi php warningi/errori uzreiz neparādās. vienīgi $result ir false, nevis resurss ar mysql datiem. tālāk šo false padodot iekš

while ($row = mysql_fetch_array($result)) {...}

arī rodas slavenais errors, par ko tgd ir runa

 

lai to laicīgi pamanītu un novērstu, dara tā:

$result = mysql_query('SELECT * FROM TabulaKurasNav') or die(mysql_error());

ja rezultāts "or" kreisajā pusē ir pozitīvs (sql izpildījās veiksmīgi), tad viss ir kārtībā un php turpina izpildīt nākamo rindiņu. bet ja rezultāts ir false, tad tiek izpildīta "or" labā puse, kas vnk izdrukā error un pārtrauc tālāku skripta darbību

 

tas arī viss. vēl tikai maza piebilde priekš tiem, kam patīk rakstīt mazāk un izdarīt vairāk. lai katram mysql_query() nevajadzētu galā kabināt or die(mysql_error());, sql var izpildīt ar funkciju, kas to izdara automātiski

function go($sSql) {  // izpilda mysql query
$h = mysql_query($sSql) or exit('<b>mysql_query() error ' . mysql_errno() . ':</b> ' . mysql_error() . '<br /><b>query:</b> ' . substr($sSql, 0, 1000));
return $h;
}
$result = go('SELECT * FROM TabulaKurasNav');

Edited by 2easy

Share this post


Link to post
Share on other sites

Neliela piebilde. Es gan neieteiktu kabināt die() vai exit() neveiksmīga kvērija gadījumā, jo ja lapa būs publiskota, tad skatīties uz tādām kļūdām būtu nepieklājīgi. :) Tā vietā labāk būtu izveidot kādu logošanu :) Kļūdām pie fetch'a nevajadzētu rasties, jo normālos gadījumos, produkcijas vidē, error report'ings būs atslēgts :)

Share this post


Link to post
Share on other sites

ofc rATRIJ, šī ir tikai go() funkcijas dev versija. production versija raksta log failā. bet te jau pagaidām runa iet par mācīšanos un debugošanu... ;)

Share this post


Link to post
Share on other sites

Lai pusceļā die() nesabojā outputu,diezgan optimāls variants,kas nekad nav pievīlis:

if(!$sql = mysql_query(" SELECT * FROM tabula_kuras_nav ")) 
 echo  mysql_error();             // vai arī $errors[] = mysql_error();
else if(mysql_num_rows($sql) > 0)
{
while($array = mysql_fetch_assoc($sql))
{ 
 // viss notiek
}
}

Edited by 404

Share this post


Link to post
Share on other sites

lasot to kodu liekas drausmas mans ieteikums ir parakstits vinu pareizi savadak iznak loti haotiski rakstits un loti daudz kludu atvaino ja apvainoju bet tada ir realitate .

Share this post


Link to post
Share on other sites

sveiki visiem !! man ir problema ari tada pasa !! "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in/home/mtdlv/domains/mtd.lv/public_html/news.php on line 127" nu ko vajag nomajnit ??? a uz 127 rindas re kas rakstits ! while($row = mysql_fetch_array($result)) ko man tiessi ir janomajnaun uz ko ???? laj man butu janumi !! delj majaslapaj ! 

Share this post


Link to post
Share on other sites

Pāris rindas aukstāk paskaties kur ir $result = mysql_query(...) un pēc tās rindas uzjaksti if(!$result) die(mysql_error()); laj redzētu kur ir kļūda tavā SQL kvērijā.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...