Page 1 sur 1

erreur de fichier

Posté : 25 oct. 2009, 01:22
par david18
Bonjour,

J'ai un site sur la musique et je veux afficher sur artiste.php SEULEMENT les titres des clips des artistes concernés, mais il affiche TOUT les titres de tout les artistes. j'ai essayé de plusieures maniere mais ca ne marche pas...

Voila une petite exemple: dans ma bdd, table artiste, j'ai 1 artiste: Akon , dans la table clips j'ai 3 clips: 2 clips d'akon et un clip d'une autre artiste, dans la page artiste.php?id=1 je veux qu'il affiche les 2 titres puisque ce sont les titres d'akon, mais il affiche les 3 titres. Je ne sais plus comment faire.
Je vous envoye le code de la page artiste.php,
<?php
include("./includes/haut.php");

if(!isset($_GET['id'])) 
{
header("Location: index.php");
}
elseif(!is_numeric($_GET['id'])) 
{
header("Location: index.php");
}
else 
{
?>

<div id="artiste">
<?php
mysql_connect("", "", "");
mysql_select_db("");
?>
<p>
<?php 
	$requete="SELECT * FROM artiste WHERE id='".$_GET['id']."'";
	$result=mysql_query($requete);
	$artiste=mysql_fetch_array($result); 
	echo 'Nom : '.$artiste['nom'].' <br />
	Photo : <img src="'.$artiste['photo'].'" <br />
	Biographie : '.$artiste['biographie']; 
?>
</p>
</div>

<div id="clips">
<p>
<?php 

                  
    $artiste=$_GET['artiste'];
	$requete="SELECT * FROM clips WHERE id_artiste = '".$_GET['nom']."' ORDER BY id DESC LIMIT 0, 5";
  $reponse=mysql_query("SELECT * FROM clips"); 
	
	// Pour afficher les titres des clips
	while($clips = mysql_fetch_array($reponse))
	{
			echo 'Regarder le clip : <a href="clips.php?id=' .$clips['id']. '">' .$clips['titre']. '</a><br />';
	}
?>
</p>
</div>

<div id="concert">
<p>
<?php
		$requete="SELECT * FROM concert WHERE ID_concert='".$_GET['id']."' ORDER BY id DESC LIMIT 0, 5";
	  $reponse=mysql_query("SELECT * FROM concert"); 
while($concert = mysql_fetch_array($reponse))
	{

		echo 'Regarder le clip : <a href="concerts.php?id=' .$concert['id']. '">' .$concert['date']. '</a><br />';
	
	}
?></p>
</div>
<?php 
}
include("./includes/bas.php");
?>

Vous pouvez m'aider SVP?

merci par avance,

Re: erreur de fichier

Posté : 25 oct. 2009, 12:36
par charabia
Je n'ai pas très bien saisi ta page. Tu as : artiste, clips et concerts. Tu veux récupérer les clips et concerts de l'artiste demandé ?

Re: erreur de fichier

Posté : 25 oct. 2009, 12:48
par david18
Voila c'est bien ca.
La partie artiste, recupere les infos de l'artiste, la partie clips, recupere SEULEMENT les titres de l'artiste concerné, et concerts les concerts des artistes concerné.

Re: erreur de fichier

Posté : 25 oct. 2009, 13:01
par charabia
Tu peux nous donner la structure des tables concernées ? Normalement tu devrais avoir utilisé des jointures pour avoir le résultat escompté.

Et fait attention à l'injection SQL, protège toi avec mysql_real_escape_string

Re: erreur de fichier

Posté : 25 oct. 2009, 13:10
par david18
la structure de la table artiste:
ID /nom / photo / biographie

La table Clips:
ID / Id_artiste / nom / titre / album / date / video

La table concert:
ID / ID_artiste / nom / date / ville / tarif / reservation

Re: erreur de fichier

Posté : 25 oct. 2009, 13:13
par charabia
ok, si tu fais une jointure ça devrait passer sans problème.

faq-tutoriels/les-jointures-niveau-debutant-t21507.html

Re: erreur de fichier

Posté : 25 oct. 2009, 13:30
par david18
si j'ai bien compris , la partie clips ca doit etre ca:?

Code : Tout sélectionner

<div id="clips"> <p> <?php $artiste=$_GET['artiste']; $requete="SELECT * FROM 'clips' AS c, 'artiste' AS a WHERE c.id_artiste = a.id; $reponse=mysql_query("SELECT * FROM clips"); // Pour afficher les titres des clips while($clips = mysql_fetch_array($reponse)) { echo 'Regarder le clip : <a href="clips.php?id=' .$clips['id']. '">' .$clips['titre']. '</a><br />'; } ?> </p> </div>
Ca doit etre comme ca?

Re: erreur de fichier

Posté : 25 oct. 2009, 13:40
par charabia
Je ne suis pas encore très bien réveillé. En fait sans jointure ça devrait fonctionner :
$requete="SELECT id,titre FROM clips WHERE id_artiste = '".mysql_real_escape_string($_GET['id'])."' ORDER BY id DESC LIMIT 0, 5";
$reponse=mysql_query($requete);

// Pour afficher les titres des clips
while($clips = mysql_fetch_array($reponse))
{
	echo 'Regarder le clip : <a href="clips.php?id=' .$clips['id']. '">' .$clips['titre']. '</a>';
}
Tu utilises le "nom" dans ton code alors que id_artiste correspond à un entier passé en paramètre. Ensuite pourquoi tu mets une autre requête dans ton mysql_query au lieu d'utiliser la requête "$requete" ?

Re: erreur de fichier

Posté : 25 oct. 2009, 14:35
par david18
OUF!!! je l'impression que ca marche, merci...

et pour la partie concerts, si je veux afficher les concerts de l'artiste demandé, je dois proceder de la meme maniere?

Re: erreur de fichier

Posté : 25 oct. 2009, 14:38
par charabia
Tout à fait ;)

Re: erreur de fichier

Posté : 25 oct. 2009, 14:39
par david18
d'accord, merci beaucoup...

si j'ai un autre probleme, je peux a nouveau ecrire?

Re: erreur de fichier

Posté : 25 oct. 2009, 14:54
par fab
Oui :) Tu mets ce sujet en résolu ( tu as une petite icone en haut à droite des messages pour le faire ) et tu créé un nouveau sujet :)

Re: erreur de fichier

Posté : 25 oct. 2009, 14:56
par david18
ok, merci beaucoup pour ton aide