Affichage

Eléphant du PHP | 287 Messages

07 nov. 2008, 10:27

Grâce à vous j'ai avancé ! Hé oui...

Pour récupére mes données dans 2 tables voilà ce que j'ai fait et ça marche :
$pays = mysql_query("SELECT DISTINCT pays FROM photo LEFT JOIN pays ON photo.id_pays = pays.id") or die(mysql_error()); 

while ($affichage = mysql_fetch_array($pays) )      
{     
 echo '<a href="aff_photo_pays.php?pays='.$affichage['pays'].'">'.$affichage['pays'].'</a>';   
} 

Maintenant pour afficher mes photos par pays c'est un peu plus compliqué. En effet j'ai une page blanche qui s'affiche, pas de message d'erreur, donc peut-être que la solution n'est pas bien loin :
if(isset($_GET["id_pays"])) 
{ 
$image = mysql_query("SELECT image,titre_image,id_pays FROM photo WHERE id_pays='".$_GET["id_pays"]."'") or die(mysql_error()); //*/WHERE pays=".$_GET["id_pays"]) while ($affichage = mysql_fetch_array($image) )       
{     
    echo '<img src="upload/'.$affichage['image'].'" width="220" height="165">';    
    echo "<br />";    
    echo $affichage['titre_image']; 

Si vous pouvez me dire où se trouve l'erreur
Merci

Avatar du membre
ViPHP
ViPHP | 3008 Messages

07 nov. 2008, 10:48

mysql_fetch_array manquant dans ton second code. Regarde comment tu as fait pour le premier, fait pareil pour le second.

Eléphant du PHP | 287 Messages

07 nov. 2008, 11:36

Mon code c'est ça, et j'ai mis mysql_fetch_array :
/*requete mysql*/
if(isset($_GET["id_pays"]))
{ 
$image = mysql_query("SELECT image,titre_image,id_pays FROM photo WHERE id_pays='".$_GET["id_pays"]."'") or die(mysql_error());

while ($affichage = mysql_fetch_array($image) )     
{    
    echo '<img src="upload/'.$affichage['image'].'" width="220" height="165">';   
    echo "<br />";   
    echo $affichage['titre_image'];   
    echo "</p>";     
} 
} 
else
{ 
} 

Avatar du membre
ViPHP
ViPHP | 3008 Messages

07 nov. 2008, 11:52

Je ne comprend pas pourquoi tu colles un mauvais code au lieu de coller directement le code que tu as fait, on perd quand même du temps tu ne trouves pas ?

Si tu n'as rien, c'est peut-être que ta requête ne donne aucun résultat. Vérifies.

Eléphant du PHP | 287 Messages

07 nov. 2008, 12:09

J'ai changé mon code !
Maintenant toutes mes photos s'affichent sans faire de distinction par pays
/*requete mysql*/
$image = mysql_query("SELECT `id_pays` , `titre_image` , `image` FROM photo") or die(mysql_error()); 

while ($affichage = mysql_fetch_array($image) )     
{    
    echo '<img src="upload/'.$affichage['image'].'" width="220" height="165">';   
    echo "<br />";
    echo $affichage['titre_image'];   
    echo "</p>";     
} 

Avatar du membre
ViPHP
ViPHP | 3008 Messages

07 nov. 2008, 12:37

Pfiou si tu l'as changé il faut le dire et soulever le nouveau problème ! lol N'attend pas qu'on te le demande quand même.

A quoi correspond ta requête à ton avis ?

Eléphant du PHP | 287 Messages

07 nov. 2008, 12:47

Là je comprends bien que ma requête va m'afficher toutes les photos
Si je saisis le truc il faut que je récupère dabord les photos qui ont l'id du pays qui m'intéresse

Avatar du membre
ViPHP
ViPHP | 3008 Messages

07 nov. 2008, 12:50

C'est dans cette requête que tu dois faire ta jointure si tu veux relier la table PAYS avec la table PHOTO.

Ensuite tu sélectionnes toutes les images où id_pays de PHOTO = id_pays de PAYS et le tour est joué.

Eléphant du PHP | 287 Messages

07 nov. 2008, 14:43

Un truc du genre :
$image = mysql_query("SELECT DISTINCT image FROM photo LEFT JOIN pays ON photo.image = pays.id") or die(mysql_error());

Avatar du membre
ViPHP
ViPHP | 3008 Messages

07 nov. 2008, 14:56

Bé tu as dit que la jointure que tu as fait marchait (dans ton premier post)...

photo.image, où est la correspondance avec pays.id ?

Eléphant du PHP | 287 Messages

07 nov. 2008, 16:47

Ma première jointure fonctionne impécable puisque j'affiche les pays pour lesquels j'ai des photos
J'ai donc fait un lien vers une autre page où j'affiche les photos en fonction du pays...
Mais si je fait une jointure indentique à la première je drirai qu'il est logique que toutes les photos s'affichent et c'est le cas...
Quand je vais sur : http://localhost/****/aff_photo_pays.ph ... etherlands je ne voudrais que les photos de Netherlands, ben j'ai tout.
Ne faut-il pas de faire le requête récupérer la données "pays" ?
J'avoue que pour débuter j'ai peut-être pas choisi la facilité

Avatar du membre
ViPHP
ViPHP | 3008 Messages

07 nov. 2008, 18:31

Il faut faire une requête avec une jointure. Si tu as saisis ce que tu as fait pour ta première requête, celle-ci est pareil à peu de chose près.

Ensuite tu rajoutes la clause "AND" pour récupérer la valeur pays avec $_GET['pays']