Mysql LIKE

Signaler
Messages postés
20
Date d'inscription
jeudi 23 mars 2006
Statut
Membre
Dernière intervention
30 décembre 2020
-
Messages postés
20
Date d'inscription
jeudi 23 mars 2006
Statut
Membre
Dernière intervention
30 décembre 2020
-
Bonjour à tous,

j'essaie de filtrer des données par rapport à un formulaire mon input est : nomauteur

le champ dans ma bdd s'appelle nom
je fais ma requête mais rien ne se passe pas
d'erreur

voici le morceau de code que j'ai fais:

$auteur = $_POST['nomauteur'];

$requete mysql_query("SELECT * FROM membre WHERE nom '$auteur' LIKE '%".$auteur."%'");

Merci de m'aider bon dimanche à tous
Nanard25

3 réponses

Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
$requete = mysql_query("SELECT * FROM membre WHERE nom LIKE '%".$auteur."'");
Ca te va ??
S.
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

Ta requête est incorrecte.
Quand tu rencontres ce genre de problème pense à afficher et traiter les erreurs.
Par exemple :
if (isset($_POST['nomauteur'])) { // le champ a bien été posté
    if (!empty($_POST['nomauteur'])) { // il n'est pas vide
        $auteur = mysql_real_escape_string(trim($_POST['nomauteur'])); // protection contre les injections SQL
        
        // test la bonne exécution de la requête
        if (false $requete mysql_query("SELECT * FROM membre WHERE nom LIKE '%".$auteur."%'")) {
           // arrêt du script avec message (uniquement pour le debug)
           die('une erreur s\'est produite lors de la requête :
'.mysql_error()); 
        }
    } else echo "Veuillez spécifier un auteur"; // information
} else {
    // autre traitement; le champ nomauteur n'a pas été posté (accès direct à la page, ...)
}

Ce n'est qu'un exemple qui montre le minimum de tests à effectuer sur des données provenant de l'utilisateur et qui permet de très rapidement voir les éventuelles erreurs.


Cordialement,



Kohntark -
Messages postés
20
Date d'inscription
jeudi 23 mars 2006
Statut
Membre
Dernière intervention
30 décembre 2020

Merci de m'avoir répondu aussi vite
en particulier à syndrael et à kohntark

Effectivement je teste ma variable an amont

cela fonctionne parfaitement
j'ai juste ajouté à la fin le % pour ne tester qu'une seule lettre ou plusieurs
$requete = mysql_query("SELECT * FROM membre WHERE nom LIKE '%".$auteur."%'");

Merci à tous et à bientôt
Nanard25