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

Langage PHP Discussion :

[MySQL] Selectionner plusieurs lignes WHERE


Sujet :

Langage PHP

  1. #1
    Membre extrêmement actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Points : 634
    Points
    634
    Par défaut [MySQL] Selectionner plusieurs lignes WHERE
    Bonjour à tous,

    Je cherche à sélectionner les colonnes (nom, prenom) de toutes les lignes contenant une certaine valeur,
    Ma requête renvoie NULL
    Je donne un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    ...
    $msql = new mysqli("***", "***", "***", "***");
    $requete="SELECT nom, prenom FROM table WHERE surnom='$surnom'";
    $result=$msql->query($requete);
    $data=$result->fetch_assoc();
    var_dump($data);
    ...
    ?>
    Cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- que vaut $surnom ?

    2- Cette requête a-t-elle été testée directement dans phpMyadmin ?
    Auquel cas : as-t-elle renvoyé les résultats voulus ?

    3- Sais-tu utiliser une requête preparée ? (recommandée ici)

  3. #3
    Membre extrêmement actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Points : 634
    Points
    634
    Par défaut
    Merci pour ta réponse.
    J'utilise cette requête habituellement pour selectionner une seule ligne d'une table (cela fonctionne dans ce cas).

    1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $surnom='bonjour';
    2) Non testé

    3) Non, tu peux m'expliquer comment effectuer cette requête préparée?

    edit :
    2) cela fonctionne dans PhPMyAdmin

  4. #4
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    var_dump($result); ça donne quoi ?

    et while ($data=$result->fetch_assoc()) irais mieux pour lire tout les éléments
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  5. #5
    Membre extrêmement actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Points : 634
    Points
    634
    Par défaut
    Citation Envoyé par Vil'Coyote Voir le message
    var_dump($result); ça donne quoi ?

    et while ($data=$result->fetch_assoc()) irais mieux pour lire tout les éléments
    Après avoir vérifié mon code,
    me renvoie un array de la première ligne de résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     while ($data=$result->fetch_assoc())
    {
       var_dump($data);
    }
    me renvoie toutes les lignes chacune sous forme d'array
    Comment je peux récupérer ces lignes dans une variable et les utiliser? (sans connaître le nombre de ligne au préalable)

  6. #6
    Invité
    Invité(e)
    Par défaut
    1-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...mais un array de la première ligne de résultat
    Donc, c'est bon !

    Pour l'affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $data['nom'].' '.$data['prenom'];
    Il faudrait peut-être que tu lises un TUTO, non ?


    Requête préparée mysqli :

  7. #7
    Membre extrêmement actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Points : 634
    Points
    634
    Par défaut
    Oui, on y est presque !

    Merci. au fait, pourquoi est-ce mieux d'utiliser une requête préparée?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bonjourajax Voir le message
    pourquoi est-ce mieux d'utiliser une requête préparée?
    Ca protège la bdd des injections SQL.

  9. #9
    Membre extrêmement actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Points : 634
    Points
    634
    Par défaut
    d'accord

    Comment je peux faire pour récupérer ce var_dump dans une seule variable?

  10. #10
    Invité
    Invité(e)
    Par défaut
    En apprenant à utiliser les requêtes mysqli ?


    (je ne vais pas te donner tous les liens... à toi de chercher un peu)



    N.B. "Administrateur de base de données"...

  11. #11
    Membre extrêmement actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Points : 634
    Points
    634
    Par défaut
    C'est justement parce que ceci n'affiche rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while ($data=$result->fetch_assoc())
    {
       echo $data['nom'];
    }

  12. #12
    Invité
    Invité(e)
    Par défaut
    Code php : 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
    <?php
    ...
    $msql = new mysqli("***", "***", "***", "***");
     
    // Crée une requête préparée
    $requete_preparee = "SELECT nom, prenom FROM table WHERE surnom = ? ";
    $stmt = $msql->prepare( $requete_preparee );
     
    // Lecture des marqueurs
    $stmt->bind_param("s", $surnom);
     
    // Exécution de la requête
    $stmt->execute();
     
    while( $data = $stmt->fetch_assoc() )
    {
    	echo '<p>'.$data[''].' '.$data[''].'</p>';
    }

  13. #13
    Membre extrêmement actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Points : 634
    Points
    634
    Par défaut
    La requête fonctionne enfin (en version normale) mais par contre en version préparée j'ai cette erreur

    Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement
    Fatal error: Uncaught Error: Call to undefined method mysqli_stmt::fetch_assoc(

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

Discussions similaires

  1. [XL-2000] Selectionner plusieurs lignes
    Par s.echeff dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/04/2009, 11h09
  2. selectionner plusieurs lignes
    Par bosk1000 dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 25/02/2009, 13h26
  3. Réponses: 2
    Dernier message: 26/08/2008, 15h48
  4. [VBA-E] comment selectionner plusieurs lignes
    Par Annick.w dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/01/2007, 20h15
  5. comment savoir si on a selectionne plusieurs lignes? LISTBOX
    Par nath-0-0 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/03/2006, 14h23

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