Mysql %

Résolu
axeldeux Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   -  
axeldeux Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai réaliser une barre de recherche dans mon application mais par exemple j'ai un client qui s'appelle "un test", si je met son nom en entier la recherche va bien se passé mais si je met juste "test" il ne m'affichera rien je c'est que je doit mettre % quelque par mais je ne c'est pas ou pouvez-vous m'aider?


$requete = "SELECT * FROM clients WHERE nom = '$chainesearch' OR artis = '$chainesearch'"

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour

pour des recherchesdu type "contient" il faut utiliser LIKE à la place de "=" .. et mettre des jocker "%"

Par exemple :
$requete = "SELECT * FROM clients 
                 WHERE nom LIKE '%$chainesearch%' 
                 OR artis LIKE '%$chainesearch%'"

0
axeldeux Messages postés 42 Date d'inscription   Statut Membre Dernière intervention  
 
D'accord merci j'y étais presque j'avais laissé les égal..
j'ai un autre petit problème je voudrais faire un lien vers une autre page en cliquant sur le mot alors je vous explique ma table a deux colonne artis (INT)
nom(varchar) je peut faire une recherche par les deux
mais je veut cette ligne mais je ne c'est pas comment récupéré artis dans ma base de donné suivant le nom...
je pense qu'il faut ajouté une ligne similaire a celle-ci..
<li><a href=client.php?artis=$rep[artis]>$rep[nom]</a></li>


dans se script là..

if(isset($_POST['search'])) {

$chainesearch = addslashes($_POST['search']);

echo 'Vous avez recherché : ' . $chainesearch . '<br />';

try{
$bdd = new PDO('mysql:host='.$BDD_hote.';dbname='.$BDD_bd, $BDD_utilisateur, $BDD_mot_passe);
$bdd->exec("SET CHARACTER SET utf8");
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
}
catch(PDOException $e){
echo 'Erreur : '.$e->getMessage();
echo 'N° : '.$e->getCode();
}

$requete = "SELECT * FROM clients WHERE nom LIKE '%$chainesearch%' OR artis LIKE '%$chainesearch%'" ;

// Exécution de la requête SQL
$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
echo 'Les résultats de recherche sont : <br />';
while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
echo $donnees['nom'] .'<br />';
}

}
?>
0
axeldeux Messages postés 42 Date d'inscription   Statut Membre Dernière intervention  
 
Non bah j'ai trouvé ^^
echo "<li><a href=client.php?artis=$donnees[artis]>$donnees[nom]</a></li>"
0