IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Recherche d'une chaine de caractère exacte [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    etudiant developpeur web
    Inscrit en
    Février 2018
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : etudiant developpeur web

    Informations forums :
    Inscription : Février 2018
    Messages : 99
    Points : 63
    Points
    63
    Par défaut Recherche d'une chaine de caractère exacte
    Bonjour,

    Soit la requete suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $result = $mysqli -> query ('SELECT ville_id, ville_nom FROM villes WHERE ville_nom LIKE "%' .$search .'%"');
    qui me permet de chercher une ville via un formulaire. Comment faire pour que cette requête ne donne pas de résultats si le nom de la ville exacte n'est pas rentrée? Exemple, si on rentre Li, je ne veux pas que la recherche me donne Lille ... etc

    j'ai essayé avec ville_nom='. $search mais j'ai un message d'erreur Fatal error: Call to a member function fetch_array() on boolean in E:\wamp .

    Merci

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Heu, il suffit de passer de where ville_nom like "%truc%" à where ville_nom="truc"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $result = $mysqli -> query ('SELECT ville_id, ville_nom FROM villes WHERE ville_nom =  "' .$search .'"');
    A part ça, il faut utiliser des requêtes préparées ! Là, ta base de données est menacée !
    http://php.net/manual/fr/mysqli.prepare.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    $link = mysqli_connect("localhost", "my_user", "my_password", "world");
     
    /* Vérification de la connexion */
    if (mysqli_connect_errno()) {
        printf("Échec de la connexion : %s\n", mysqli_connect_error());
        exit();
    }
     
    $city = "Lille";
     
    /* Crée une requête préparée */
    if ($stmt = mysqli_prepare($link, "SELECT ville_id, ville_nom FROM villes WHERE ville_nom = ?")) {
     
       /* bind parameters for markers */
        $stmt->bind_param("s", $city);//s pour string
     
        /* execute query */
        $stmt->execute();
     
        /* instead of bind_result: */
        $result = $stmt->get_result();
     
       $data=array();
     
        /* now you can fetch the results into an array - NICE */
        while ($myrow = $result->fetch_assoc()) {
     
           $data[]= $myrow;
     
        }
     
        /* Fermeture du traitement */
        mysqli_stmt_close($stmt);
    }
     
    /* Fermeture de la connexion */
    mysqli_close($link);
     
    echo '<pre>';
    print_r($data);
    echo '</pre>';
    Et oui, je te montre la méthode qui peut te retourner plusieurs enregistrements, car tu peux avoir plusieurs villes qui portent le même nom en France !

    https://www.ladepeche.fr/article/201...homonymes.html
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre du Club
    Homme Profil pro
    etudiant developpeur web
    Inscrit en
    Février 2018
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : etudiant developpeur web

    Informations forums :
    Inscription : Février 2018
    Messages : 99
    Points : 63
    Points
    63
    Par défaut Merci de ces eclaircissements
    Bien que je n'ai pas encore vu les requêtes préparées en cours, je te remercie de cette réponse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche dans une chaine de caractères
    Par stepd dans le forum C
    Réponses: 4
    Dernier message: 19/07/2006, 18h55
  2. [VB]Recherche d'une chaine de caractère dans un fichier
    Par Empty_body dans le forum VB 6 et antérieur
    Réponses: 26
    Dernier message: 16/02/2006, 09h10
  3. [VB.NET] Recherche dans une chaine de caractères
    Par Pleymo dans le forum Windows Forms
    Réponses: 12
    Dernier message: 09/04/2005, 10h25
  4. [String]Recherche d'une chaine de caractères dans une autre
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 3
    Dernier message: 29/07/2004, 11h51
  5. recherche d'une chaine de caractère dans une données text
    Par jdeheul dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 17/06/2004, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo