Recherche dans base de done affiche prob avec espace + amelioration de la recher

Résolu
cs_plopinou Messages postés 117 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 13 mai 2009 - 3 févr. 2006 à 10:57
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 3 févr. 2006 à 18:19
tout d'abord bonjour

voila je viens de creer un programme de recherche dans ma DB, mais j'ai un probleme a l'affichage :

je m'explique, j'ai une parti description qui peut comporter des enter, des espace et autre, j'ai utilise nl2br() pour les enter ca c'est ok, mais pour les espace ca va pas donc si j'ai dans ma bd ; je suis la ...
il n'affichera que je.

et aussi, je voudrai que ma recherche soit plus performante, si je rentre pas le nom exacte il trouve rien hors si j'ai un jean pierre et pierre jean et que je rentre pierre, je voudrai trouver les deux.

j'ai essaye avec un LIKE '%$ma_variable%' met alors j'ai une erreur sql ...

pouvez vous m'aider?

5 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 févr. 2006 à 12:24
Hello,

"<td></td>";

cette ligne est fausse...

echo '<td><textarea disabled="disabled" size="45">',$resolution,'</textarea></td>';

Un textarea n'est PAS un type d'input.

Ensuite :
if($name!='')
{
$reqlogin=" nom='$name' ";
}
else $reqlogin='';

$requete="SELECT idclient, nom, reception, resolution FROM client WHERE $reqlogin ORDER BY idclient";

if (!empty ($name)) {
$requete = 'SELECt... FROM clients WHERE nom LIKE \'%'.$name.'%\' ORDER BY idclient';
}
3
cs_plopinou Messages postés 117 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 13 mai 2009
3 févr. 2006 à 11:15
Voici le code pour y voir plus claire :
<?php

$BD_serveur = "localhost";
$BD_utilisateur = "root";
$BD_motDePasse = "";
$BD_base = "dit";

function recherche($name){
mysql_connect("localhost", "root", "");
mysql_select_db("dit");

if($name=='') {$requete="SELECT idclient, nom, reception, resolution FROM client ORDER BY idclient";}
else{
if($name!='')
{
$reqlogin=" nom='$name' ";
}
else $reqlogin='';

$requete="SELECT idclient, nom, reception, resolution FROM client WHERE $reqlogin ORDER BY idclient";

}
$sql = mysql_query($requete) or die('Erreur SQL');
echo "\";
while(list($idclient,$name, $reception , $resolution) = mysql_fetch_array($sql)) {
$resolution = nl2br ($resolution);
echo \", \".
\", \".
\", \".
\", \";
}
echo "
";
}
?>


<html>
<head><title>Recherche</title></head>

Ceci est une page de recherche.
<form method=\"post\" >
----

Login:,
,

----
, ,

</form>


<? if (isset($_POST['name'])){
recherche($_POST['name']);}
?>



</html>
0
cs_plopinou Messages postés 117 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 13 mai 2009
3 févr. 2006 à 12:24
ok j'ai trouve : je change ma seconde requete en :
WHERE nom LIKE '%$name%' ORDER BY idclient";

Par contre, pour l'affichage dans une case la partie reception qui contient des enter, ca va pas, si je ne le met pas dans un ></td>";

met comme ceci :

"$resolution"; ca va met c'est vraiment pas beau et pas pratique car pas facile a repere le quel correspond a quel ligne. si vous voyez une solution se serai nikel.
0
cs_plopinou Messages postés 117 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 13 mai 2009
3 févr. 2006 à 12:27
oui merci ca va mieux et une dernier question , il m'affiche les
dans le cadre et je voudra ine pas les avoir, comment faire?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
3 févr. 2006 à 18:19
Salut,

pour ne pas afficher les
=> str_replace(array('
','
'),"\n",$texte);

sinon ceci :echo '<td><textarea disabled="disabled" size="45">',$resolution,'</textarea></td>';

les attributs rows et cols sont obligatoires ;-) size il me semble n'existe pas pour un textarea

echo '<td><textarea disabled="disabled" rows="x" cols="y">',$resolution,'</textarea></td>';

ou x représente le nombre de lignes de texte et y le nombre de caractères pouvant être foutus dans ta textarea (la largeur et hauteur pourra donc changer en fonction de la police par défaut, mais tu peux corriger ça en CSS avec width et height)

a +

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0