Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/08/2007, 15h21   #1
Membre du Club
 
Inscription : juillet 2007
Messages : 238
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 238
Points : 46
Points : 46
Par défaut [SQL] probleme de logique variable GET

bonjour,

Mon cerveau ne peut résoudre un probleme plutôt logique

Ma page index.php affiche le résultat d'une bd,

au dessous de ce résultat j'affiche les genres pour que mes visiteurs puissent filtrer les infos qui les intéresses ...

Chaque genre contient un lien qui renvoi un GET pour modifier le WHERE de ma requete SQL seulement si le visiteur ne sélectionne rien, bien rien ne s'affiche et je n'arrive pas à savoir comment afficher tout les genres au chargement de la page index.php

Voila mon code

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
<?php
	mysql_connect("localhost", "root", ""); // Connexion à MySQL
	mysql_select_db("mabase"); // Sélection de la base coursphp
 
 
	$genre = $_GET['genre']; 
 
$query_genre = mysql_query("SELECT  DISTINCT site_genre FROM  gallery ;"); // Requête Genres
 
$query_affiche = mysql_query("SELECT * FROM gallery WHERE site_genre='$genre' "); // Requête Affiche
 
	// boucle affiche
 
    while ($donnees = mysql_fetch_array($query_affiche) )
	{
    ?>
 
 
	<a href="<?php echo $donnees['site_adress']; ?>" ><img src="contrib/<?php echo $donnees['fichier']; ?>"></a>
 
	<?php
 
	}
 
	echo "<br>";
	echo "<br>";
 
 
	while ($donnees = mysql_fetch_array($query_genre) )
	{
    ?>
	<a href="index.php?genre=<?php echo $donnees['site_genre']; ?>"><?php echo $donnees['site_genre']; ?></a>
	<?php
	}
 
	mysql_close(); // Déconnexion de MySQL
	?>
Overstone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 15h28   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Il faut prévoir une condition :
Code :
1
2
3
4
5
6
7
8
9
10
	$genre = $_GET['genre']; 
$query_genre = mysql_query("SELECT  DISTINCT site_genre FROM  gallery ;"); // Requête Genres
if(!isset( $_GET['genre'] ) && !empty( $_GET['genre']) )
{
$query_affiche = mysql_query("SELECT * FROM gallery WHERE site_genre='$genre' "); // Requête Affiche
}
else
{
$query_affiche = mysql_query("SELECT * FROM gallery"); // Requête Affiche
}
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 15h32   #3
Membre du Club
 
Inscription : juillet 2007
Messages : 238
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 238
Points : 46
Points : 46
Merci de ta réponse rapide par contre ma façon de faire te parait bien ou pas ??? j'ai toujours peur de programmer n'inporte comment
Overstone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 15h37   #4
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Citation:
Envoyé par Overstone
Merci de ta réponse rapide par contre ma façon de faire te parait bien ou pas ??? j'ai toujours peur de programmer n'inporte comment
Là je ne peux pas trop te dire...
Je pense qu'il faut faire attention a commenter les choses et en PHP a bien penser à vérifier dans $_POST et $_GET que les données existent avant de les utiliser (donc isset() et empty())
Ensuite quand tu insères dans une base ou que tu fais une requete il faut toujours utiliser mysql_real_escape_string() pour se protéger des injections SQL.
Ca sera un bon début !
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 15h45   #5
Membre du Club
 
Inscription : juillet 2007
Messages : 238
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 238
Points : 46
Points : 46
j'ai essayé ton code, mais j'affiche bien à l'ouverture ma bd par contre quand je clique sur mes catégories je retombe toujours sur l'ensemble de mes fiches

j'essaye de voir ce qui ne va pas, mais apparament tout est ok !!

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
	mysql_connect("localhost", "root", ""); // Connexion à MySQL
	mysql_select_db("eckopland2"); // Sélection de la base coursphp
 
 
	$genre = $_GET['genre']; 
	$query_genre = mysql_query("SELECT  DISTINCT site_genre FROM  gallery ;"); // Requête Genres
 
	if(!isset( $_GET['genre'] ) && !empty( $_GET['genre']) )
	{
		$query_affiche = mysql_query("SELECT * FROM gallery WHERE site_genre='$genre' "); // Requête Affiche
	}
	else
	{
		$query_affiche = mysql_query("SELECT * FROM gallery"); // Requête Affiche
	}
 
 
	// boucle affiche
 
    while ($donnees = mysql_fetch_array($query_affiche) )
	{
    ?>
 
 
	<a href="<?php echo $donnees['site_adress']; ?>" ><img src="contrib/<?php echo $donnees['fichier']; ?>"></a>
 
	<?php
 
	}
 
	echo "<br>";
	echo "<br>";
 
 
	while ($donnees = mysql_fetch_array($query_genre) )
	{
    ?>
	<a href="index.php?genre=<?php echo $donnees['site_genre']; ?>"><?php echo $donnees['site_genre']; ?></a>
	<?php
	}
 
	mysql_close(); // Déconnexion de MySQL
	?>
Overstone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 16h00   #6
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Je me suis trompé dans la condition, c'est if(isset() et pas if(!isset()
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 16h06   #7
Membre du Club
 
Inscription : juillet 2007
Messages : 238
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 238
Points : 46
Points : 46
Sa marche nikel je n'ai plus qu'a faire la même chose pour mes autres critéres,
Merci pour ton aide
Overstone est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h21.


 
 
 
 
Partenaires

Hébergement Web