Page 1 sur 1

Faire un lien

Posté : 03 juil. 2008, 16:15
par Romuald63
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

Posté : 03 juil. 2008, 16:39
par guilt92
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...)

Posté : 03 juil. 2008, 16:51
par Romuald63
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

Posté : 03 juil. 2008, 16:57
par guilt92
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...

Posté : 03 juil. 2008, 17:08
par Romuald63
J'ai sélectionné "Allemagne" pour mes images et voilà :
Unknown column 'Allemagne' in 'where clause'

Posté : 03 juil. 2008, 17:13
par guilt92
Tu as bien mis

Code : Tout sélectionner

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

Fais voir la requete stp