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 :

Etablir une liste en interrogeant une table [PDO]


Sujet :

PHP & Base de données

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut Etablir une liste en interrogeant une table
    Bonjour,

    je voudrais afficher une liste (un <select> html) en interrogeant une table MySQL , mais le select affiché est vide (alors que la requête testée avec phpMyadmin n'est pas vide).
    Je fais une requête préparée :

    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
     
    <span>Sélectionner la date de l'événement à supprimer:</span>
     
    <?php 
    $req ="SELECT * FROM calendar_event where id_user=:id_user AND event_date >= '".$date_jour."' order by event_date"; 
     
    echo '<select name="date_del" size="1">';
    $sql = $bdd_planning->prepare($req);
    $sql->execute(array(':id_user' => $id_user));
    while ($event=$sql->fetch(PDO::FETCH_ASSOC)) 
    { 
    echo "<option>".$sql['event_date']."</option>"; 
    }
    ?>
    </select>
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Points : 333
    Points
    333
    Par défaut
    Bonjour,

    Le résultat de ta ligne est stocké dans ta variable event, pas dans sql.

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Bien vu, j'ai été un peu vite, sauf que j'ai encore un souci : maintenant, je récupère bien les informations mais ce qui fonctionne mal, c'est le select html : en fait, l'ascenseur à droite ne marche pas et donc si dans mon code, il y a echo '<select name="date_del" size="nn">';, nn informations sont listées et pas moyen d'aller voir les suivantes...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Points : 333
    Points
    333
    Par défaut
    c'est certainement que ton size est à 1, enlève l'attribut size, je pense qu'il ne te sert pas à grand chose

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Bon, si je mets du temps à répondre, c'est que je ne suis pas à 100% sur ce sujet !

    J'ai fait l'essai d'enlever l'attribut size, mais pareil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <select name="date_del" style="overflow:scroll">
    <?php
    $sql = $bdd_planning->prepare($req);
    $sql->execute(array(':id_user' => $id_user));
    while ($event=$sql->fetch(PDO::FETCH_ASSOC)) 
    { ?>
    <option><?php echo $event['event_date'];?></option>
    <?php }
    ?>
    </select>
    alors que si je mets un 2e select juste à côté
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select name="date_del2" >
    <option>1</option>
    <option>2</option>
    <option>3</option>
    </select>
    pas de souci...

    EDIT : il y a visiblement un problème (j'ignore lequel) avec la requête car j'ai reproduit le problème avec :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <select name="date_del3" >
    <?php
    $i=0;
    $sql = $bdd_planning->prepare($req);
    $sql->execute(array(':id_user' => $id_user));
    while ($event=$sql->fetch(PDO::FETCH_ASSOC))
    { ?>
    <option><?php echo $i++;?></option>
    <?php }
    ?>
    </select>

    EDIT2 : c'est même avec le fetch, car ça, ça marche bien :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <select name="date_del4" >
    <?php
    $i=0;
    $sql = $bdd_planning->prepare($req);
    $sql->execute(array(':id_user' => $id_user));
    while ($i<10)
    { ?>
    <option><?php echo $i++;?></option>
    <?php }
    ?>
    </select>
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Points : 333
    Points
    333
    Par défaut
    Concernant ta requête, pourquoi faire un prepare et ne lui passé qu'un paramètre sur les deux ? Je n'ai jamais essayé de faire sa et je ne suis pas sur du résultat.

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Pas eu le temps de tester avant...

    Je viens d'essayer et cette fois, ça marche !

    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
    19
    20
    21
    <?php 
     
    $req ="SELECT * FROM calendar_event where ((id_user=:iduser) AND (event_date >= :datejour)) order by event_date"; 
     
     
    <?php
    $i=0;
    $sql = $bdd_planning->prepare($req);
    $sql->execute(array(':iduser' => $id_user,':datejour'=>$date_jour));
     
    while ($event=$sql->fetch(PDO::FETCH_ASSOC))
    	{ $event_fetch[$i++]=$event['event_date'];}
    var_dump($event_fetch);
    echo '<select name="date_del" style="overflow:scroll">';
    $i=0;
    while ($i<count($event_fetch)) {
     
    	echo '<option>'.$event_fetch[$i++].'</option>';	
    }
    echo '</select>';
    ?>
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

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

    1/ style="overflow:scroll" sur un select ?...

    2/ <select name="date_del" size="3"> ne fonctionne pas chez toi ? re-

  9. #9
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Le style="overflow:scroll", c'était un essai mais effectivement, je peux l'enlever.

    Ce qui ne marchait pas, c'est quand je faisais une requête préparée dans laquelle je mettais sans préparation les données inutiles à protéger ; maintenant, en les préparant toutes, ça marche.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

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

Discussions similaires

  1. [AJAX] liste liée a une liste liée a une liste
    Par dirty_harry dans le forum AJAX
    Réponses: 2
    Dernier message: 03/07/2009, 11h18
  2. modifier une liste contenue dans une liste
    Par harris_macken dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 18/03/2008, 16h52
  3. Réponses: 5
    Dernier message: 12/03/2008, 18h16
  4. acceder à une liste contenue dans une liste
    Par CPI_en_mousse dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 12/06/2007, 08h33
  5. remplir une liste à partir d'une liste
    Par LeXo dans le forum Access
    Réponses: 7
    Dernier message: 14/04/2006, 12h29

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