Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/06/2006, 15h19   #1
Invité de passage
 
Inscription : mai 2006
Messages : 53
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 53
Points : 3
Points : 3
Envoyer un message via MSN à kilkikou
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 :
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 :
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
 
		}
 
   ?>
kilkikou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2006, 17h49   #2
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
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.
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2006, 19h09   #3
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
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..
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2006, 23h22   #4
Invité de passage
 
Inscription : mai 2006
Messages : 53
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 53
Points : 3
Points : 3
Envoyer un message via MSN à kilkikou
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.
kilkikou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2006, 15h17   #5
Invité de passage
 
Inscription : mai 2006
Messages : 53
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 53
Points : 3
Points : 3
Envoyer un message via MSN à kilkikou
j'ai fait ca comme ca :

Code :
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 ??
kilkikou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2006, 15h22   #6
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
Code :
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
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2006, 15h30   #7
Invité de passage
 
Inscription : mai 2006
Messages : 53
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 53
Points : 3
Points : 3
Envoyer un message via MSN à kilkikou
je n'ai plus de message d'erreur, par contre le reste ne s'affiche pas non plus...

ca se présente ainsi :

Code :
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
}
?>
kilkikou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2006, 15h46   #8
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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.
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2006, 15h54   #9
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
- 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 :
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
}
?>
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2006, 16h25   #10
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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.
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h50.


 
 
 
 
Partenaires

Hébergement Web