Faire un lien

Eléphanteau du PHP | 21 Messages

03 juil. 2008, 16:15

Toujours pour le même site que je suis en train de construire j'ai créé une page où j'affiche une liste de pays dans lesquels il y a des images
$image = mysql_query("SELECT DISTINCT pays FROM photo") or die(mysql_error()); 

while ($affichage = mysql_fetch_array($pays) )   
{  
    echo $affichage['pays']; 
    echo "<br>"; 
} 
J'ai créé une page qui affiche les images par pays
$image = mysql_query("SELECT image,titre_image FROM photo") or die(mysql_error()); 
 
while ($affichage = mysql_fetch_array($image) )   
{  
    echo '<img src="upload/'.$affichage['image'].'" width="100" height="100">'; 
    echo "<br />"; 
    echo $affichage['titre_image']; 
    echo "</p>"; 
} 
Mon souci c'est que je n'arrive pas à faire de lien entre les deux
sur ma page pays, j'ai écrit:
echo '<a href="aff_photo.php?image='.$affichage['image'].'</a>';

Du coup j'ai une page blanche à la place demon affichage des pays

Mammouth du PHP | 1353 Messages

03 juil. 2008, 16:39

Je ne suis pas sur de comprendre l'architecture mais j'imagine quelque chose comme ca :

une page de pays (pays.php par exemple) qui affiche la liste des pays avec un lien vers les images de ce pays. Ensuite une page aff_photo.php qui affiche les photos du pays sélectionné.

Je vais prendre l'exemple d'une page pays qui pointe vers la page photos et l on affiche que les photos du pays, apres si c est l inverse que tu veux faire ca sera exactement le meme principe

page pays :
$image = mysql_query("SELECT DISTINCT pays FROM photo") or die(mysql_error());  

while ($affichage = mysql_fetch_array($pays) )    
{   
    echo '<a href="aff_photo.php?pays='.$affichage['pays'].'">'.$affichage['pays'].'</a>'; 
    echo "<br>";  
}
Ensuite sur la page des images j'aurai donc :
if(isset($_GET["pays"])) //Si un pays est defini dans l'url, type pays=france
{ //alors
$image = mysql_query("SELECT image,titre_image FROM photo WHERE pays='".$_GET["pays"]."'") or die(mysql_error()); //on ne prend les images QUE de ce pays, d'ou le WHERE
while ($affichage = mysql_fetch_array($image) )    
{   
    echo '<img src="upload/'.$affichage['image'].'" width="100" height="100">';  
    echo "<br />";  
    echo $affichage['titre_image'];  
    echo "</p>";  
}
}
else //si aucun pays n'est defini dans l'url
{
//ce que tu veux, soit tu affiches toutes les photos, soit tu mets un message d'erreur
}
Libre à toi d'adapter pour faire dans l autre sens ou dans les deux... (ne met pas ce code tel quel ca risque de ne pas faire ce que tu veux, essaye de comprendre le raisonnement...)
Modifié en dernier par guilt92 le 03 juil. 2008, 17:12, modifié 3 fois.
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphanteau du PHP | 21 Messages

03 juil. 2008, 16:51

voilà mes fichiers :
Ma page pour afficher les pays
<?php
/*connexion BDD en local*/
mysql_connect("localhost", "root", "");
mysql_select_db('vol');

/*requete mysql*/
$pays = mysql_query("SELECT DISTINCT pays FROM photo") or die(mysql_error());

/*Avec cette boucle, on liste*/
while ($affichage = mysql_fetch_array($pays) )     
{    
    echo '<a href="aff_photo.php?pays='.$affichage['pays'].'">'.$affichage['pays'].'</a>';  
    echo "<br>"; 
}

/* deconnexion de MySQL*/
mysql_close();	
	  
?>
Ma page pour afficher les images :
<?php

$pays=$_GET['pays'];

/*connexion BDD en local*/
mysql_connect("localhost", "root", "");
mysql_select_db('vol');

/*requete mysql*/
$image = mysql_query("SELECT DISTINCT image,titre_image FROM photo") or die(mysql_error());

/*Avec cette boucle, on liste*/
while ($affichage = mysql_fetch_array($image) )  
{ 
	echo '<img src="upload/'.$affichage['image'].'" width="100" height="100">';
	echo "<br />";
	echo $affichage['titre_image'];
	echo "</p>";
}

/* deconnexion de MySQL*/
mysql_close();	
	  
?>
Le hic c'est que toutes mes images s'affichent

Mammouth du PHP | 1353 Messages

03 juil. 2008, 16:57

Regarde les différences entre ton code et mon code donné dans le message précédent pour l'affichage des images, notamment au niveau du $_GET et de la clause WHERE de la requete et tu auras ta réponse....

Il n'est pas utile d'avoir une variable pays= dans ton url si tu ne l'utilises pas...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphanteau du PHP | 21 Messages

03 juil. 2008, 17:08

J'ai sélectionné "Allemagne" pour mes images et voilà :
Unknown column 'Allemagne' in 'where clause'

Mammouth du PHP | 1353 Messages

03 juil. 2008, 17:13

Tu as bien mis

Code : Tout sélectionner

WHERE pays='".$_GET["pays"]."'"
et non pas WHERE $_GET["pays"] ?

Fais voir la requete stp
Tell me and I forget. Teach me and I remember. Involve me and I learn.