Pagina 1 din 1

Eroare supplied argument is not a valid MySQL result

Scris: Lun Aug 08, 2011
de claUdiu
Am si eu o problema.... Am urmatorul cod:

Cod: Selectaţi tot

<?php
ERROR_REPORTING(E_ALL | E_STRICT);
if (!session_is_registered('email')){
header("location: ../../login.php");
}

include("../../config.php");

mysql_connect("$db_host", "$db_user", "$db_pass") or die(mysql_error());
mysql_select_db("$db_name") or die(mysql_error());

if(!isset($_GET['nr'])){ 
    $nr_friend = "10";
} else { 
    $nr_friend = $_GET['nr'];
} 

if(!isset($_GET['by'])){ 
    $by = "ASC";
} else { 
    $by = $_GET['by'];
} 
 
$select = mysql_query("SELECT * FROM friends WHERE friend_with = '".$_SESSION["email"]."' AND accept = '1'ORDER BY '$by' 

LIMIT '$nr_friend' ");
$rows = mysql_num_rows($select);

echo "<center>";
echo '<h2> My Friends (<font color="red"> '.$rows.' </font>)</h2>';
echo "</center>";

while ($afis = mysql_fetch_assoc($select)){

$select2 = mysql_query("SELECT * FROM users WHERE email = '".$afis["invite_by"]."' ORDER BY '$by' LIMIT '$nr_friend'");

while ($afis2 = mysql_fetch_assoc($select2)){

if ($rows == 0){
echo "You don't have any friend";
}
else{

echo '<table>
<tr>

<td><font size="1pt"><a href="../profile.php?uid='.$afis2['id'].'"><img src="../../'.$afis2['avatar'].'" width = "100" height 

= "100" /></a></font></td><td align="left"><font size="5">'.$afis2['first_name'].' '.$afis2['last_name'].'<br>'.$afis2

['age'].' years hold <br> '.$afis2['country'].' <br> Bio: '.$afis2['description'].'</font></td>
</tr><tr>
<td><font size="1pt"></font></td><td align="right"></td>
</tr><tr>
<td align="center" colspan="2">
<br>
</tr>
</table>';
echo "<br />";
echo "<br />";

}
}
}
?>
Am doua inputuri care trimite tot la aceasi pagina u nnr...si ASC sau DESC... Ok..Camd trimit primesc in aceasi pagina si fac select din db dupa $nr_friend si dupa $by Doar ca...imi da doua errori la mysql_num_rows() si la mysql_fetch_assoc():

Cod: Selectaţi tot

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/hosting/gamestime/4friends.hi2.ro/account/friends/friends.php on line 116

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/hosting/gamestime/4friends.hi2.ro/account/friends/friends.php on line 122
Din ce cauza este oare? Pls... Ms mult!!

Eroare supplied argument is not a valid MySQL result

Scris: Lun Aug 08, 2011
de Wayn3
Codul postat de tine are doar 68 de linii.. nu am de unde sa stiu ce are..

Eroare supplied argument is not a valid MySQL result

Scris: Lun Aug 08, 2011
de claUdiu
Ideea este ca linia 122 este:

Cod: Selectaţi tot

while ($afis = mysql_fetch_assoc($select)){
si linia 116:

Cod: Selectaţi tot

$rows = mysql_num_rows($select);

Eroare supplied argument is not a valid MySQL result

Scris: Lun Aug 08, 2011
de MarPlo
Eroarea aceea apare de obicei cand rezultatul de la MySQL e false, iar functiile mysql_fetch_assoc() si mysql_num_rows() nu lucreaza cu argument False.
Inainte de a aplica aceste functii este indicata verificarea rezultatului, daca e cumva False sa afiseze eroarea. Formula e cam asa:

Cod: Selectaţi tot

$sql = "SELECT `rand` FROM `tabel` WHERE 'conditie'";
$result = mysql_query($sql);
// daca exista eroare, o afiseaza, altfel, prelucreaza datele primite
if (mysql_errno()) echo 'Eroare: '. mysql_error();
else {
  $rows = mysql_num_rows($result);
  // daca sunt randuri returnate, le proceseaza. Altfel, 0 randuri
  if($rows>0) {
    while ($rand = mysql_fetch_assoc($result)) {
      // prelucrare
    }
  else echo '0 randuri returnate';
  }
}
 
Ca sa verifici ce comanda e trimisa la MySQL (cand da eroare, si ajuta in descoperirea cauzei), testeaza cu:

Cod: Selectaţi tot

echo $sql;

Eroare supplied argument is not a valid MySQL result

Scris: Mar Aug 09, 2011
de claUdiu
Scuze dar nu vad butonul Edit..

Am sters tot codul si am bagat doar asta in mysql:

Cod: Selectaţi tot


SELECT * FROM friends WHERE friend_with = 'klaus.clau.56@gmail.com' AND accept = '1' ORDER BY asc

Si imi da o eroare la ORDER BY asc:

Cod: Selectaţi tot


#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'asc LIMIT 0, 30' at line 1


Am intrat pe toate site-urile si arata al fel asa cum am facut eu..Care sa fie problema...?Ms de ajutor!!!

Eroare supplied argument is not a valid MySQL result

Scris: Mar Aug 09, 2011
de MarPlo
Dupa ORDER BY cred ca trebuie adaugat numele coloanei dupa care ordonezi.
Daca coloana "accept" e de tip numeric (cum ar fi INT), valoarea transmisa ei trebui fara ghilimele (cu ghilimele e receptionata ca sir).
Nu stiu daca asta e cauza, incearca asa:

Cod: Selectaţi tot

SELECT * FROM `friends` WHERE `friend_with`='klaus.clau.56@gmail.com' AND `accept`=1 ORDER BY `friend_with` ASC

Eroare supplied argument is not a valid MySQL result

Scris: Mie Aug 10, 2011
de claUdiu
Multumes pentru raspuns!

Nu era problema la accept = 1 pentru ca fara ORDER By ASC mergea. Adica...Cu LIMIT

Am facut cum ai spus tu, de ex: ORDER BY "invite_by" ASC-DESC si merge!!

PS: Are ceva daca eu nu folosesc INT la baza de date?

Eroare supplied argument is not a valid MySQL result

Scris: Mie Aug 10, 2011
de MarPlo
claUdiu scrie:Are ceva daca eu nu folosesc INT la baza de date?
Din ce am mai citit, comenzile SQL in care la WHERE sunt trecute verificari de coloane de tip numar (TINYINT, INT) sunt procesate mai repede.
Verificarile numerice sunt mai rapide decat pe siruri.
Cam atat, ca se deviaza de la subiectul /problema topic-ului.