8768 sujets

Développement web côté serveur, CMS

Salut à tous,

Je bloque sur un petit problème depuis des heures concernant mon moteur de recherche interne, alors merci d'avance de votre aide Smiley smile

Mon problème est dans l'affichage des résultats. En fait lorsque on réalise une recherche, je fais apparaitre :
1/ les résultats de la recherche : nom / ville etc... // mais là pas de problème
2/ et j'affiche les critères de recherche précédemment envoyés (nom, ville, cp et categorie) dans un formulaire permettant ainsi de refaire une recherche.

Mon problème est que n'apparait que le premier mot de chaque item de recherche.
Exemple: si je fais une recherche par le nom : "Toto est vert", n'apparaitra dans le champs nom que "Toto". Alors qu'en dessous la fiche est correcte !

Je ne vous met que la partie du code, où selon moi se situe le problème :



<?php 
		  extract($_POST,EXTR_OVERWRITE);
		  $nombre =24 ;
		  $total=0;
		  if (!isset($limite)) $limite = 0;
		  $limitesuivante = $limite + $nombre;
		  $limiteprecedente = $limite - $nombre;
		  $sql="select * from restos where nom like '%$nom%' and ville like '%$ville%' and cp like '$cp%' and category like '$category%' ";
		  if (isset($online)){$sql.=" and online=1";}else{$online=0;}
		  $repvide="<b>' $nom $cp $ville'</b>";
		  $repvides1=" $nom ";
		  $repvides2=" $cp ";
		  $repvides3=" $ville ";
		  $repvides4=" $category ";
		  $req=mysql_query($sql);
		  $total = mysql_num_rows($req);
		  if ($total==0) {echo "
		  <div class='red'> Aucun résultat avec vos critères de s&eacute;lection : $repvide</div>
		  <ul id='searchi2'>
		  <ol><form action='recherche.php' method='post' enctype='application/x-www-form-urlencoded' >

		  <li><span>Nom : </span><br /><input name='nom' id='contenu7' role='textbox'></li>
		  <li><span>Ville : </span><br /><input name='ville' id='contenu8' role='textbox'></li>
		  <li><span>CP : </span><br /><input name='cp' id='contenu9' role='textbox'></li>
		  <li><span>Spécialité : </span><br />
		  <select name='category' id='cate'><option value='' SELECTED>Categorie</option>
		  <option value='Oui' >Oui</option>
		  <option value='Non' >Non</option>
		  </select>
		  </li>
		  <input name='image2' type='image' onMouseOver='this.src='img/go.png';'  onmouseout='this.src='img/go.png';' src='img/go.png' id='seek'/><br class='clear2' />
    	</form>
	    </ol>
    	</ul><br class='clear' /> 
		  ";}

		  else {echo "<h1> ".$total." membre(s) r&eacute;pondent &agrave; vos crit&egrave;res</h1>
		  <ul id='searchi2'>
		  <ol><form action='recherche.php' method='post' enctype='application/x-www-form-urlencoded' >

		  <li><span>Nom : </span><br /><input name='nom' id='contenu7' role='textbox' value=".$repvides1."></li>
		  <li><span>Ville : </span><br /><input name='ville' id='contenu8' role='textbox' value=".$repvides3."></li>
		  <li><span>CP : </span><br /><input name='cp' id='contenu9' role='textbox' value=".$repvides2." ></li>
		  <li><span>Spécialité : </span><br /><select name='category' id='cate'><option value='' SELECTED>".$repvides4."</option>
		  <option value='Oui' >Oui</option>
		  <option value='Non' >Non</option>
		  </select>
		  </li>
		  <input name='image2' type='image' onMouseOver='this.src='img/go.png';'  onmouseout='this.src='img/go.png';' src='img/go.png' id='seek'/><br class='clear2' />
    	</form>
	    </ol>
    	</ul><br class='clear' />
		  
";} ?>



Merci de votre aide Smiley smile
@plus
Zed1
Salut,

Petite question totalement à part ;

$sql="select * from restos where nom like '%$nom%' and ville like '%$ville%' and cp like '$cp%' and category like '$category%' ";


À quoi servent les "%" ? Et étant donné que les variables $nom et $ville sont entourées par des %, pourquoi n'est-ce pas aussi le cas du $cp et $category ?


Sinon, pour tenter de trouver d'où vient le problème, on peut peut-être tout d'abord chercher son origine ;

Tente d'insérer un
echo "Variable Nom : " . $nom . "
juste après le traitement des résultats, afin de voir ce qu'elle contient exactement :3
Modifié par Sam_ (22 Feb 2014 - 14:18)
Smiley decu le "nom" apparait bien en entier.
Et effectivement si je fais le même echo dans le champs du formulaire, je n'ai toujours que le premier mot Smiley decu Smiley decu
Or il n'y pas de limite au champ concerné !?
Par conséquent, le résultat est pareil si tu écris :

<input name='nom' id='contenu7' role='textbox' value=".$nom.">
(à la place de mettre la variable $repvides1) ?

En comparant avec ce que j'ai pu déjà coder, la seule différence que je vois est dans le fait que tu ai ajouté un attribut "role = textbox". Enfin, normalement ça ne doit pas être ça qui pose problème… mais tente quand même de le supprimer temporairement, afin de voir les effets que ça peut donner ^^"
Je sais, à ce point là, c'est plus du bidouillage qu'une solution réelle, mais étant donné que j'ignore totalement quelle pourrait être la cause du problème, c'est un peu comme une chasse au trésor : il faut tenter à peu près tous les chemins pour arriver au but Smiley cligne