le 23/02/2005 à 12:19
Peacock
Bonjour à tous,
Y avait longtemps, au moins depuis 2004...
Le pb qui m'amène et une erreur de syntaxe sur une adaptation du moteur utilisé dans Daforum...
Dans mon cas je veux que la recherche se fasse sur deux champs... Tout roule pour un seul mot entré dans le champs de recherche, dés que je rentre deux mots l'erreur suivante MySQL suivante se pointe :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/base/html/pages/produits.php on line 208
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/base/html/pages/produits.php on line 211
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/base/html/pages/produits.php on line 226
Dans l'adaptation, je ne fais pas appelle au fichier config.php comme dans le script du moteur de Daforum, mais juste un fichier php include qui donne les paramètres sous la forme classique :
<?
$phputilisateur="dsq357";
$phpmotdepasse="123456";
$host="localhost";
$base="dsq357";
?>
Quant au code,la partie où ça se joue, le voici :
Y avait longtemps, au moins depuis 2004...
Le pb qui m'amène et une erreur de syntaxe sur une adaptation du moteur utilisé dans Daforum...
Dans mon cas je veux que la recherche se fasse sur deux champs... Tout roule pour un seul mot entré dans le champs de recherche, dés que je rentre deux mots l'erreur suivante MySQL suivante se pointe :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/base/html/pages/produits.php on line 208
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/base/html/pages/produits.php on line 211
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/base/html/pages/produits.php on line 226
Dans l'adaptation, je ne fais pas appelle au fichier config.php comme dans le script du moteur de Daforum, mais juste un fichier php include qui donne les paramètres sous la forme classique :
<?
$phputilisateur="dsq357";
$phpmotdepasse="123456";
$host="localhost";
$base="dsq357";
?>
Quant au code,la partie où ça se joue, le voici :
<?php if( !empty($submit_recherche) )
{
if( !empty($recherche) )
{
$recherche=ereg_replace("[ ]{2,}", " ", $_GET['recherche']);
$tablo_recherche = explode (" ", $recherche);
$nb_element_recherche = count ($tablo_recherche);
if ($_GET['type_search'] == 'et') {
$operateur = 'AND';
}
else {
$operateur = 'OR';
}
$nb_affichage_par_page = 10;
$sql = 'SELECT DISTINCT * FROM prod_tbl WHERE (';
for($i = 0; $i < $nb_element_recherche; $i++) {
if ($i == 0) {
if ($i == ($nb_element_recherche-1)) {
$sql .= ' prod_tbl.Texte LIKE "%'.$tablo_recherche[$i].'%" OR prod_tbl.Titre LIKE "%'.$tablo_recherche[$i].'%")';
}
else {
$sql .= 'prod_tbl.Texte LIKE "%'.$tablo_recherche[$i].'%" OR prod_tbl.Titre LIKE "%'.$tablo_recherche[$i].'%")';
}
}
elseif ($i == ($nb_element_recherche-1)) {
$sql .= ' '.$operateur.' (prod_tbl.Texte LIKE "%'.$tablo_recherche[$i].'%" OR prod_tbl.Titre LIKE "%'.$tablo_recherche[$i].'%")';
}
else {
$sql .= ' '.$operateur.' (prod_tbl.Texte LIKE "%'.$tablo_recherche[$i].'%" OR prod_tbl.Titre LIKE "%'.$tablo_recherche[$i].'%")';
}
}
$sql .= ' ORDER BY prod_tbl.Titre DESC';
$resultat = mysql_db_query($base, $sql, $id_lien) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$enr = mysql_num_rows($resultat);
$nbtotal = $enr;
if ($nbtotal == 0) {
$resultats_obtenus = "<i>Aucune réponse trouvée...</i>";
}
else {
if (!isset($_GET['debut'])) $_GET['debut'] = 0;
$sql = 'SELECT DISTINCT * FROM prod_tbl WHERE (';
for($i = 0; $i < $nb_element_recherche; $i++) {
if ($i == 0) {
if ($i == ($nb_element_recherche-1)) {
$sql .= ' prod_tbl.Texte LIKE "%'.$tablo_recherche[$i].'%" OR prod_tbl.Titre LIKE "%'.$tablo_recherche[$i].'%")';
}
else {
$sql .= ' prod_tbl.Texte LIKE "%'.$tablo_recherche[$i].'%" OR prod_tbl.Titre LIKE "%'.$tablo_recherche[$i].'%")';
}
}
elseif ($i == ($nb_element_recherche-1)) {
$sql .= ' '.$operateur.' (prod_tbl.Texte LIKE "%'.$tablo_recherche[$i].'%" OR prod_tbl.Titre LIKE "%'.$tablo_recherche[$i].'%"))';
}
else {
$sql .= ' '.$operateur.' (prod_tbl.Texte LIKE "%'.$tablo_recherche[$i].'%" OR prod_tbl.Titre LIKE "%'.$tablo_recherche[$i].'%"))';
}
}
$sql .= ' ORDER BY prod_tbl.Titre ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;
$resultat = mysql_query($sql);
$nbenr = mysql_num_rows($resultat);
$resultats_obtenus = "";
while ($enr = mysql_fetch_array($resultat))
{
$Num = $enr['Num'];
$Titre = $enr['Titre'];
$Rea = $enr['Rea'];
$resultats_obtenus .='<SPAN class="antracite10-B"><A HREF="javascript:fiche('.$Num.')">' .$Titre.' </SPAN>
<SPAN class="noir10-B">'.$Rea.'</SPAN></a><br><br>';
}
mysql_free_result($resultat);
include ('../forum/includes/functions.php');
$barre_nav = barre_navigation($nbtotal, $nb_affichage_par_page, $_GET['debut'], '5');
}
}
?>