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 :

while dans un while


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Par défaut while dans un while
    Bonjour,

    J'essai de faire un <select>, ou d'abord on irai chercher dans la base de donnée les marques, puis dans la même base de donnée affiché en dessous les produits de la même marque.

    Pour le moment mon code ressemble à ca mais ca ne fonctionne pas :

    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
     
    	$sql_a = "SELECT * FROM $table_products WHERE products_cat=".$_POST["categories"]." ORDER BY products_brand ASC, products_id ASC"; 
     
    	$res_a = mysql_query($sql_a);
    	while($data_a = mysql_fetch_assoc($res_a))
    	{
    		echo "<option>&nbsp;".$data_a["products_brand"]."</option>";
     
     
    		$sql_b = "SELECT * FROM $table_products WHERE products_cat=".$_POST["categories"].", products_brand=".$data_a['products_brand']." ORDER BY products_model ASC, products_id ASC";
     
    		$res_b = mysql_query($sql_b);
    		while($data_b = mysql_fetch_assoc($res_b))
    		{
    			echo "<option value='".$data_b["products_id"]."'>&nbsp;&nbsp;".$data_b["products_model"]."</option>";
    		}
    	}
    Je sais pas si une boucle dans une boucle ça fais un peu lourd point de vue des requêtes.
    Si il y a des meilleurs idées qui reste pas trop compliqué je suis preneur.

    Il n'y a pas de message d'erreur, mais la deuxième boucle ne fonctionne pas et je me retrouve avec un <select> contenant uniquement la liste des differentes marque sans les produits en dessous.

    kopax

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    On utilise l'opérateur AND et non la virgule pour rajouter des conditions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql_b = "SELECT * FROM $table_products WHERE products_cat=".mysql_real_escape_string($_POST["categories"])." AND products_brand=".mysql_real_escape_string($data_a['products_brand'])." ORDER BY products_model ASC, products_id ASC";
    De plus, tu t'exposes à des failles de sécurité énorme en n'échappant pas les données que tu rentres dans ta requête.

Discussions similaires

  1. [MySQL] while dans une while ?
    Par link.80 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 27/06/2009, 18h09
  2. Réponses: 14
    Dernier message: 13/10/2005, 12h55
  3. insérer les recordset d'un while dans une variable
    Par yoda_style dans le forum ASP
    Réponses: 4
    Dernier message: 31/03/2005, 10h01
  4. [CR8.5] Pbm d'affichage dans un While
    Par .:Tieri:. dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 14/07/2004, 10h17
  5. Réponses: 3
    Dernier message: 25/11/2002, 14h15

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