Mysql LIKE

jb25350 Messages postés 20 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 25 juillet 2021 - 18 oct. 2009 à 11:16
jb25350 Messages postés 20 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 25 juillet 2021 - 18 oct. 2009 à 13:20
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

syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
18 oct. 2009 à 11:44
$requete = mysql_query("SELECT * FROM membre WHERE nom LIKE '%".$auteur."'");
Ca te va ??
S.
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
18 oct. 2009 à 11:44
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 -
0
jb25350 Messages postés 20 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 25 juillet 2021
18 oct. 2009 à 13:20
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
0
Rejoignez-nous