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 :

[SQL] Soucis d'affichage de requête SQL


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 53
    Points : 16
    Points
    16
    Par défaut [SQL] Soucis d'affichage de requête SQL
    Bonjour,

    je possède une base de donnée que je met à jour via un formulaire dans une partie administration de mon site web.

    screenshot vers la base de donnée : http://img475.imageshack.us/img475/1386/bdd9nh.jpg

    j'aimerais afficher sur une page le nom des artistes, mais si ils sont deux fois dans la bdd ils ne doivent s'afficher qu'une fois. Sur cette artiste il doit y avoir un lien qui affiche les différents titres de cette artiste...

    je ne trouve pas la solution à mon problème, si quelqu'un pouvait me donner un petit coup de pouce...

    code pour le listing des artistes :

    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
     
    <?
     
    	include "config.php";
     
     
    $retour = mysql_query('SELECT * FROM lyrics ORDER BY artiste ');
    while ($donnees = mysql_fetch_array($retour))
    {
     
    ?>	
     
    </p>
    			     <table width="588" border="0" align="center" cellpadding="0" cellspacing="0">
     
     
    		<div class="TitreNews">	
     
     
    <a href="artist.php?artiste=<?php echo $donnees['artiste'];?>&amp;id=<?php echo $donnees['id'];?>"
    class="aLienTexteMenu">
        <?php echo $donnees['artiste'];?></a>		
     
     
     
    </div>		
     
     
     
    	<?php
     
    		}
     
       ?>
    Code pour l'affichage des titres :

    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
     
    <?
     
    	include "config.php";
     
    $id=$_GET['id'];
     
     
     
    $retour = mysql_query("SELECT titre, artiste FROM lyrics WHERE id=$id")or die(mysql_error());
    while ($donnees = mysql_fetch_array($retour))
    {
     
    ?>	
     
    </p>
    			     <table width="588" border="0" align="center" cellpadding="0" cellspacing="0">
     
     
    		<div class="TitreNews">			 
     
    <a href="lyrics.php?titre=<?php echo $donnees['titre'];?>&amp;artiste=<?php echo $donnees['artiste'];?>&amp;id=<?php echo $id;?>"
    class="aLienTexteMenu">
        <?php echo $donnees['titre'];?></a>
     
    </div>		
     
     
    	<?php
     
    		}
     
       ?>

  2. #2
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 064
    Points
    6 064
    Par défaut
    Si tu veux que l'artiste n'apparait qu'une fois dans le cas ou il y aurait des doublons il me semble que tu dois faire SELECT DISTINC(artiste) ... dans la requete.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    deja dans ton premier select pourquoi etoile alor que tu n'utilises que deux champs..
    sinon un simple group by artiste... suffi.. relis les tutos c la base...des requete sql..

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 53
    Points : 16
    Points
    16
    Par défaut
    En effet la commande group by fonctionne...
    L'artiste n'apparait qu'une seule fois dans la liste, or lorsque je clique ensuite sur le lien qui est fait vers les titres de cette artiste, tout les titres ne s'affichent pas...Juste le premier s'affiche...

    Quelqu'un à la solution ??

    Merci pour votre aide.

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 53
    Points : 16
    Points
    16
    Par défaut
    j'ai fait ca comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?
     
    	include "config.php";
     
    $auteur=$_GET['artiste'];
     
     
     
    $retour = mysql_query("SELECT titre, artiste FROM lyrics WHERE artiste=$auteur")or die(mysql_error());
    while ($donnees = mysql_fetch_array($retour))
    {
     
    ?>
    ceci est juste un morceau du code...et j'ai l'erreur là :
    Champ 'Cascada' inconnu dans where clause
    alors que j'ai bien Cascada dans ma table lyrics, champ artiste.

    Pourquoi ca passe pas ??

  6. #6
    Invité
    Invité(e)
    Par défaut
    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
    <?php
    include "config.php";
    if(isset($_GET['artiste']))
    {
    $auteur=stripslashes($_GET['artiste']);
    
    $retour = mysql_query("SELECT titre, artiste FROM lyrics WHERE artiste LIKE '$auteur'")or die(mysql_error());
    while ($donnees = mysql_fetch_array($retour))
    {
    }
    
    }
    else
    {
    //message d'erreur
    }
    ?>
    ça devrait le faire

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 53
    Points : 16
    Points
    16
    Par défaut
    je n'ai plus de message d'erreur, par contre le reste ne s'affiche pas non plus...

    ca se présente ainsi :

    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
     
    <?php
    include "config.php";
    if(isset($_GET['artiste']))
    {
    $auteur=stripslashes($_GET['artiste']);
     
    $retour = mysql_query("SELECT titre, artiste FROM lyrics WHERE artiste LIKE '$auteur'")or die(mysql_error());
    while ($donnees = mysql_fetch_array($retour))
    {
    ?>
    </p>
    			     <table width="588" border="0" align="center" cellpadding="0" cellspacing="0">
     
     
    		<div class="TitreNews">			 
     
    <a href="lyrics.php?titre=<?php echo $donnees['titre'];?>&amp;artiste=<?php echo $donnees['artiste'];?>"
    class="aLienTexteMenu">
    </a>
     
    </div>		
     
    	<div class="TexteSousNews">
    <?
    }
     
    }
     
    {
    ///message d'erreur
    }
    ?>

  8. #8
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    1 - Tu as oublié le else.

    2 - Le code est bizarre : tu parcours les résultats, pour chacun tu créés un tableau (que tu me refermes jamais d'ailleurs), donc au final le comportement doit être très spécial (en tout cas pas conforme à ce qui est attendu je pense).

    3 - Un conseil : évite de mélanger les portions HTML et les portions PHP comme tu le fais, utilise le echo dans les portions PHP pour afficher du HTML, ça clarifiera beaucoup le code.

  9. #9
    Invité
    Invité(e)
    Par défaut
    - c'est vrai assez bizar (table qui se ferme pas, aucun tr et td)
    - aussi un div qui souvre et jamais fermé (<div class="TexteSousNews">)
    - tu fais le lien mais tu ne met rien entre les balise ahref
    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
    <?php
    include "config.php";
    if(isset($_GET['artiste']))
    {
    $auteur=stripslashes($_GET['artiste']);
    
    $retour = mysql_query("SELECT titre, artiste FROM lyrics WHERE artiste LIKE '$auteur'")or die(mysql_error());
    while ($donnees = mysql_fetch_array($retour))
    {
    
    echo "
    <div class=\"TitreNews\">	 
    <a href=\"lyrics.php?titre=$donnees['titre']&artiste=$donnees['artiste']\" class=\"aLienTexteMenu\">
    Texte du lien
    </a>		
    </div>		
    ";
    
    }
    
    }
    else
    {
    //message d'erreur
    }
    ?>

  10. #10
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Ah oui en effet il y en a tellement que j'avais pas tout vu, il faut revoir tout le code sérieusement et ça va passer.

Discussions similaires

  1. [MySQL] Affichage résultat requête SQL dans page HTML comme un tableau
    Par joxbl dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 14/03/2011, 14h26
  2. Affichage de requête SQL
    Par bibipsi dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/05/2009, 20h49
  3. Requête SQL localisée pour affichage date/heure
    Par nicoboud2 dans le forum SQL
    Réponses: 1
    Dernier message: 11/05/2007, 10h55
  4. [Débutant][SQL] Requête SQL à l'intérieur d'une requête SQL
    Par Kily10 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 27/10/2006, 11h54
  5. Soucis de création de requêtes sql
    Par Zebeber dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 26/05/2006, 11h13

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