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

Résolu
Signaler
Messages postés
117
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2009
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
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

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
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';
}
Messages postés
117
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2009

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>
Messages postés
117
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2009

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.
Messages postés
117
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2009

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?
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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>