Mysql %

Résolu/Fermé
axeldeux Messages postés 42 Date d'inscription mercredi 22 avril 2015 Statut Membre Dernière intervention 14 décembre 2015 - 1 juin 2015 à 09:37
axeldeux Messages postés 42 Date d'inscription mercredi 22 avril 2015 Statut Membre Dernière intervention 14 décembre 2015 - 1 juin 2015 à 09:57
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
1 juin 2015 à 09:41
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 mercredi 22 avril 2015 Statut Membre Dernière intervention 14 décembre 2015
1 juin 2015 à 09:55
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 mercredi 22 avril 2015 Statut Membre Dernière intervention 14 décembre 2015
1 juin 2015 à 09:57
Non bah j'ai trouvé ^^
echo "<li><a href=client.php?artis=$donnees[artis]>$donnees[nom]</a></li>"
0