goldrazor06 Posté 30 Octobre 2007 Partager Posté 30 Octobre 2007 Bonjour, J'ai codé un script qui permet de lister des resultats en fonction du mot clef entré dans la case "motclef". Mais je ne comprend pas pkoi la page me crache les erreurs suivantes : "Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\wamp\www\destockage\search.php on line 268 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\destockage\search.php on line 273" Voici une partie de mon code : <?php$parpage=15;$stats=mysql_fetch_object(mysql_query("SELECT COUNT(*) AS `stats` FROM `annonces` WHERE INSTR (titre, '".$_REQUEST['motclef']."') OR INSTR (description, '".$_REQUEST['motclef']."')")); $total=$stats->stats;$_GET['debut']=$_GET['debut']*1;$res=mysql_query("SELECT * FROM `annonces` WHERE INSTR (titre,'".$_REQUEST['motclef']."') OR INSTR (description,'".$_REQUEST['motclef']."') ORDER BY `date` DESC LIMIT ".$_GET['debut'].",$parpage");$ocp=0;while($annonces=mysql_fetch_array($res)){$ocp+=1;?> Si un pro peut y jeter un oeil, ca m'arrangerai. Merci beaucoup Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 30 Octobre 2007 Partager Posté 30 Octobre 2007 Le mieux, pour tester, est de mettre tes requêtes dans une variable. Tu affiches cette requête dans ta page, et tu peux éventuellement voir où se trouve l'erreur. Si elle n'est pas évidente, tu la copies/colles dans PHPMyAdmin. Lien vers le commentaire Partager sur d’autres sites More sharing options...
marcb Posté 30 Octobre 2007 Partager Posté 30 Octobre 2007 Bonjour, Est-tu certain que la valeur de $_REQUEST['motclef'] est correctement renseignée ? Tu devrais l'afficher aussi. Pour un test, remplace $_REQUEST['motclef'] par une constante. Ca te permettra de valider la syntaxe SQL de la requête. Enfin, comme conseille captain' : $sql = "SELECT COUNT(*) AS `stats` FROM `annonces` WHERE INSTR (titre, '".$_REQUEST['motclef']."') OR INSTR (description, '".$_REQUEST['motclef']."');echo "<br><br>SQL : $sql <br><br>";$stats = mysql_fetch_object(mysql_query($sql)); M Lien vers le commentaire Partager sur d’autres sites More sharing options...
goldrazor06 Posté 30 Octobre 2007 Auteur Partager Posté 30 Octobre 2007 (modifié) Merci pour vos interventions, le mot clef est bien recuperé par REQUEST. J'ai mieu organisé mon code : <?php $motclef=$_REQUEST['motclef']; $parpage=15; $sql = "SELECT COUNT(*) AS `stats` FROM `annonces` WHERE INSTR (titre, $motclef) OR INSTR (description, $motclef)"; $sql2 = mysql_query($sql); $sql3 = mysql_fetch_object($sql2); echo "<br><br>SQL1 : $sql <br><br>"; echo "<br><br>SQL2 : $sql2 <br><br>"; echo "<br><br>SQL3 : $sql3 <br><br>"; $total=$stats->stats; $_GET['debut']=$_GET['debut']*1; $req="SELECT * FROM `annonces` WHERE INSTR (titre, '$motclef') OR INSTR (description, '$motclef') ORDER BY `date` DESC LIMIT ".$_GET['debut'].",$parpage"; $req2 = mysql_query($req); echo "<br><br>REQ1 : $req <br><br>"; echo "<br><br>REQ2 : $req2 <br><br>"; $ocp=0; while($annonces=mysql_fetch_array($req2)){ $ocp+=1; ?> Voici ce que renvoi le code sur une recherche 'PS3' : Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\wamp\www\destockage\search.php on line 274 SQL1 : SELECT COUNT(*) AS `stats` FROM `annonces` WHERE INSTR (titre, PS3) OR INSTR (description, PS3) SQL2 : SQL3 : REQ1 : SELECT * FROM `annonces` WHERE INSTR (titre, 'PS3') OR INSTR (description, 'PS3') ORDER BY `date` DESC LIMIT 0,15 REQ2 : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\destockage\search.php on line 292 Si vous avez une idée, n'hasitez pas. Merci beaucoup Modifié 30 Octobre 2007 par goldrazor06 Lien vers le commentaire Partager sur d’autres sites More sharing options...
marcb Posté 30 Octobre 2007 Partager Posté 30 Octobre 2007 Bonjour, Tu pourrais remplacer $sql2 = mysql_query($sql); par $result = mysql_query($sql);if (!$result) { die('Requête invalide : ' . mysql_error());} et $sql3 = mysql_fetch_object($sql2); par $row = mysql_fetch_object($result);echo $row->stat; As-tu effectué : SELECT COUNT(*) AS `stats` FROM `annonces` WHERE INSTR (titre, PS3) OR INSTR (description, PS3);SELECT * FROM `annonces` WHERE INSTR (titre, 'PS3') OR INSTR (description, 'PS3') ORDER BY `date` DESC LIMIT 0,15; directement dans phpmyadmin ? M Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant