Clause where dans un lien?

Résolu
Sfc2000 -  
 Sfc2000 -
Bonjour,

J'aurais aimer savoir si on pouvais utiliser la clause WHERE dans un lien.

J'ai beaucoup de donnée qui son classé avec ENUM dans ma base et au lieu de faire 50 pages avec une clause where j'aimerais que mon lien resort mon tri, est ce possible?

Merci d'avance pour votre aide.
A voir également:

7 réponses

Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
tu peux rajoute run parametre dans l'url (genre page.php?tri=par_date)
et récuperer la valeur en faisant $_GET["tri"] (en php)

ne mets pas directement du SQL dans ton lien, ce serait une énorme faille de sécurité (injections SQL)
0
Sfc2000
 
Je suis assez nul en php j'ai tous appris par moi même et a part les choses basique...

Je vais poser une question surement très basique mais je le mets ou le $_GET["tri"], sur mon lien dans ma page?
0
Sfc2000
 
Ok merci du conseil, donc c'est pas possible de faire comme ca sans avoir une bonne securité?

Aurais tu une autre suggestion pour mon problème?
0
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
comme je te l'ai dis, tu fais un passage de paramtetre dans l'url, et ensuite, tu ponds un bout de code genre:
if(isset($_GET["tri"]))
{
    if ($_GET["tri"]=="par_date")
    {
        $requete.=" ORDER by date";
    }
}
0
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
le $_GET c'est pas sur le lien que tu le mets. ton lien dessemblera à page.php?tri=par_date
le $_GET sera dans le fichier page.php
0
Sfc2000
 
Pour le liens ok.

Mais c est au niveau de ma page que ca pose problème...

echo "<table width='100%' heigth='100%' border='0' cellspacing='0' cellpadding='0'>";
					$table="LiensPhoto";
					$str_LiensPhoto = "SELECT * FROM LiensPhoto
					ORDER BY Titre ASC
					LIMIT 0, 300";

					$result_LiensPhoto =mysql_query ($str_LiensPhoto);
					while ($LiensPhoto =mysql_fetch_object($result_LiensPhoto))
					{
						echo "<tr valign='top'>";
						echo "<td align='left'></td>";
						echo "<td width='5'></td>";
						echo "<td class='texte' width='150'><b><a href='home.php?idp=".$LiensPhoto->Lien."' class='liens'>".$LiensPhoto->Titre."</a></td><td class='texte'>[".$LiensPhoto->NbPhotos." photos]</td></tr>";
						
$total_ke+=$LiensPhoto->NbPhotos;


						}
						echo "</table>";






C'est ou je ne sais pas ou mettre le if et le get malheureusement et tous ces bouquin acheté ne maide pas :-/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
tu voudrais quoi comme différents tris ? parce que la tu as deja un" order by".. tu voudrais avoir plusieurs "order by "différents ?
0
Sfc2000
 
En fait ce que je voudrais c'est faire afficher une page contenant mes photos de Londres par exemple, une autre avec mes photos kenya sans devoir créer une page avec un where pour chaque lieu.

Londres et Kenya sont des ENUM dans ma base, ex.: (WHERE ('Lieu=kenya')
0
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
$where='';
if(isset($_GET["Lieu"]))
{
    if ($_GET["Lieu"]=="kenya" || $_GET["Lieu"]=="londres" )
    {
        $where=" WHERE lieux = 'kenia' ";
    }
}

					$str_LiensPhoto = "SELECT * FROM LiensPhoto
                                        ".$where."
					ORDER BY Titre ASC
					LIMIT 0, 300";


tu pourrais aussi faire
$where='';
if(isset($_GET["Lieu"]))
{
    $where = " WHERE lieu ='".$_GET["Lieu"]."' ";
}
					$str_LiensPhoto = "SELECT * FROM LiensPhoto
                                        ".$where."
					ORDER BY Titre ASC
					LIMIT 0, 300";

mais j'ai peur qu'il puisse y avoir des injections SQL. Je pense pas que le risque soit grand...
0
Sfc2000
 
Eh ben merci beaucoup pour ton aide j'ai ce qu il me faut.

Merci encore.

Salutations
0