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 :

While dans While (PDO)


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Webmaster débutant
    Inscrit en
    Novembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 18
    Par défaut While dans While (PDO)
    Salut à tous,
    Depuis hier je suis le cours sur le PDO puisque j'utilisais avant mysql basique et j'ai cru comprendre que ça devenait obsolète.
    Je tente de réaliser un petit système dans lequel j'ai 3 tables : users, tags, like
    La table like relie les deux autres tables (en bref, dedans il y a les id tels que l'user 1 aime les tags 1 et 3 ...)
    Je veux afficher les pseudos des users et les noms des tags qu'ils aiment, donc j'ai fais un truc dans ce genre :
    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
    <?php
    try
    {
    	$bdd = new PDO('mysql:host=host;dbname=bdd', 'user', 'pass');
    }
    catch (Exception $e)
    {
            die('Erreur : ' . $e->getMessage());
    }
     
    $reponse = $bdd->query('SELECT id, pseudo FROM users ');
    while($donnees = $reponse->fetch()) {
    	$idpseudo = $donnees['id_pseudo'];
    	$reponse2 = $bdd->query("SELECT id_tag FROM `like` WHERE id_pseudo = '.$idpseudo.'");
    	while($likes = $reponse2->fetch()) {
    		$idtag = $likes['id_tag'];
    		$reponse3 = $bdd->query("SELECT nom FROM tags WHERE id = '.$idtag.' ");
    		while($tags = $reponse3->fetch()) {
    ?>
    	<p>Id : <?php echo $donnees['id']; ?> Pseudo : <?php echo $donnees['pseudo']; ?> Tag : <?php echo $tags['nom']; ?></p>
    <?php
    		}
    	}
    }
    ?>
    A mon avis, c'est le fait d'avoir des while() dans des while() qui coince, mais je ne vois pas d'autre solution d'avoir une variable $id_tag qui change à chaque fois au bon moment.

    Cordialement,

    LamateurApple.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Avec une jointure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $sql = 'SELECT tags.nom, users.pseudo, users.id FROM users
    JOIN `like` ON `like`.id_pseudo = users.id_pseudo
    JOIN tags ON tags.id = `like`.id_tag';
    while($donnees = $reponse->fetch()) {
      echo '<p>Id : ' . $donnees['id'] . ' Pseudo : ' . $donnees['pseudo'] . ' Tag : ' . $donnes['nom'] . '</p>';
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster débutant
    Inscrit en
    Novembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 18
    Par défaut
    Merci, mais quand tu fais le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT tags.nom FROM users
    Tu devrais pas ajouter ???

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    On n'écrit "jamais" ça.

    Deux tables sont liées par un jointure (JOIN) avec un critère de jointure (ON)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FROM users JOIN `like` ON `like`.id_pseudo = users.id_pseudo
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Boucles - while - while True, while if, while else
    Par sirelion dans le forum Général Python
    Réponses: 22
    Dernier message: 08/01/2015, 06h36
  2. [Réseau] read socket dans while qui foire
    Par let_me_in dans le forum C++
    Réponses: 7
    Dernier message: 21/08/2007, 12h36
  3. probleme de boucle while dans une procedure stockée
    Par aboulemagnifique dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 08/08/2007, 12h39
  4. While dans une function ?
    Par jfberub dans le forum Langage
    Réponses: 5
    Dernier message: 02/12/2006, 21h34
  5. insérer les recordset d'un while dans une variable
    Par yoda_style dans le forum ASP
    Réponses: 4
    Dernier message: 31/03/2005, 10h01

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