IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] probleme de logique variable GET


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    	?>

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Il faut prévoir une condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut
    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

  4. #4
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    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 !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    	?>

  6. #6
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Je me suis trompé dans la condition, c'est if(isset() et pas if(!isset()

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Points : 81
    Points
    81
    Par défaut
    Sa marche nikel je n'ai plus qu'a faire la même chose pour mes autres critéres,
    Merci pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PL/SQL]probleme affectation de variable dans une requete
    Par <% Bastien %> dans le forum SQL
    Réponses: 9
    Dernier message: 17/04/2007, 18h40
  2. [SQL] probleme de logique sql
    Par digger dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/07/2006, 18h53
  3. Réponses: 2
    Dernier message: 28/06/2006, 15h56
  4. [SQL] probleme d'affichage contenu de variables
    Par taka10 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 02/06/2006, 15h03
  5. [Variable d'environement SQL] Probleme de config
    Par duelooser dans le forum Oracle
    Réponses: 2
    Dernier message: 16/12/2005, 09h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo