espace enter sur recherche bd + ameliore performance

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : espace enter sur recherche bd + ameliore performance

par gussss » 03 févr. 2006, 14:43

merci beaucoup

par Truc » 03 févr. 2006, 14:30

c'est juste pour eviter un message d'erreur dans le cas ou la variable n'existerai pas. Si tu t'assure de bien affecter une valeur à la variable $name, pas besoin d'initialisation.

par gussss » 03 févr. 2006, 13:12

avec ta requete c'est parfait ca marche, mais je comprend pas ton initialisation $name="";
car la y me reprendra tout, c'est comme faire une recherche blanche non?

par Truc » 03 févr. 2006, 13:03

le probleme vient du faite que tu appel au nom du champ dans le LIKE:
...WHERE $reqlogin LIKE '%$reqlogin%' ORDER BY idclient";
avec
$reqlogin=" nom='$name' ";
cette requete devrai ressembler a ceci:
...WHERE nom LIKE '%$name%' ORDER BY idclient";
et éventuellement regarder du coté de addslashes() pour $name. sans oublié d'initialiser $name=""; pour eviter une cas particulier :wink:

par gussss » 03 févr. 2006, 12:55

Code : Tout sélectionner

$requete="SELECT idclient, nom, reception, resolution FROM client WHERE $reqlogin LIKE '%$reqlogin%' ORDER BY idclient";
pour le text area et les espace j'ai reussit en simplifiant le tout ... juste que pas moyen d'aller a la ligne entre les lignes mais je trouverai ca

par Truc » 03 févr. 2006, 12:46

Salut,

un champs de texte "textarea" ne se remplis pas ainsi, il n'y a pas d'attribut value mais:
<textarea rows="3" cols="5">
  valeur de la avriable
</textarea>
et de quel requete parles tu ? montre nous l'essaie que tu as fait

par gusss » 03 févr. 2006, 12:15

voici le code ca sera peut etre plus claire pour vous :

Code : Tout sélectionner

<?php //include("connect.php"); // Paramètres de connexion à la base de données $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 "<table width=\"100%\">"; while(list($idclient,$name, $reception , $resolution) = mysql_fetch_array($sql)) { $resolution = nl2br ($resolution); echo "<td><input type=\"text\" disabled=\"disabled\"size=\"2\" value=\"$idclient\" name=\"id\" ></td>". "<td><input type=\"text\" disabled=\"disabled\"size=\"15\" value=\"$name\" name=\"login\"></td>". "<td><input type=\"text\" disabled=\"disabled\"size=\"15\" value=\"$reception \" name=\"reception\"></td>". "<td><input type=\"textarea\" disabled=\"disabled\" size=\"45\" value=$resolution name=\"mail\" ></td>"; } echo "</table>"; } ?> <html> <head><title>Recherche</title></head> <body> Ceci est une page de recherche. <table><form method="post" > <tr> <td> <b>Login</b>: </td> <td> <input type="text" name="name" maxlength="32"/> </td> </tr> <tr><td></td><td> <input type="submit" value="Rechercher"/> </td></tr> </form> </table> <? if (isset($_POST['name'])){ recherche($_POST['name']);} ?> </body> </html>

espace enter sur recherche bd + ameliore performance

par gussss » 03 févr. 2006, 11:41

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?