Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: GoldRazor le le 30-10-2007 a 01:11:40

Titre: Probleme script moteur de recherche
Posté par: GoldRazor le le 30-10-2007 a 01:11:40

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 :

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 ;)

Titre: Re:Probleme script moteur de recherche
Posté par: GoldRazor le le 30-10-2007 a 13:42:17

Merci pour vos interventions, le mot clef est bien recuperé par REQUEST.

J'ai mieu organisé mon code :

Citation:

<?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

Titre: Re:Probleme script moteur de recherche
Posté par: patrick76 le le 30-10-2007 a 19:08:58

bonjour, est-tu sûr de la fonction 'instr()' en php ??
pour faire des recherches dans les chaines de caractères, il existe ereg(), entre autres...



Titre: Re:Probleme script moteur de recherche
Posté par: GoldRazor le le 30-10-2007 a 19:13:08

En effet, la fonction INSTR n'existe plus (satané livre de php5).

Donc la requete a préconiser serai celle la

SELECT * FROM `annonces` WHERE titre LIKE '%$motclef%' OR description LIKE '%$motclef%' ORDER BY `date` DESC LIMIT 0,15

Regarde ce topic, j'ai expliqué plus en detail

http://www.rentabilisez.com/forum/index.php?showtopic=31327&st=0&gopid=261669&#entry261669

S'il te vient une idée, quel quel soit, n'hesite pas.

Merci a ++


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.