Page 1 sur 1

Récupérer informations menu déroulant

Posté : 06 oct. 2011, 17:39
par TRUNCKS
Bonjour à vous,

J'ai une bdd qui est structurée comme ceci:

Catégories ( ID_categorie, nom_catégorie )
Produits ( ID_produit, nom_produit, #id_catégorie ) --> Table liée aux catégories.

J'ai une petite liste déroulante qui liste les catégories de manière dynamique:

<?php $conn = mysql_connect($hostname_localhost, $username_localhost, $password_localhost) or trigger_error(mysql_error(),E_USER_ERROR);
 
mysql_query("SET CHARACTER SET 'utf8';")or die(mysql_error()); 
 
mysql_select_db($database_localhost, $conn); 


 //requête SQL:
$sql = "SELECT *
        FROM categories";
 
//exécution de la requête:
$requete = mysql_query($sql) or die( mysql_error());?>

<p><b>Ajouter un produit dans:</b></p>  
<form action="produits.php" method="post">  
<select name="categories">  
<?php
while ($result = mysql_fetch_array($requete)) {
?>
<option value="choix"><?php echo nl2br($result['nom_categorie']); ?></option>  
<?php
}
?>
    </select>  
<input type="submit" value="Valider">  

</form>

Mon soucis est que, j'aimerai dans une autre page, après la validation, récupérer tous les produits selon que qui aura été sélectionner comme catégorie dans le menu déroulant.

Seulement je ne sais pas trop comment récupérer ça :(

Re: Récupérer informations menu déroulant

Posté : 06 oct. 2011, 19:26
par moogli
salut,

tu ne génère pas comme il faut le select :) (enfin pour faire bien)

<option value="choix"><?php echo nl2br($result['nom_categorie']); ?></option>
<select name="categories">  
<?php
while ($result = mysql_fetch_array($requete)) {
echo '<option value="'.$result['ID_categorie'].'">',$result['nom_categorie'],'</option>';
}
?>
sur la page cible tu récupère $_POST['categories'] et réalise une requete select avec (select * from Produits where id_categorie = $_POST['ID_categorie'] )

@+

Re: Récupérer informations menu déroulant

Posté : 07 oct. 2011, 09:45
par TRUNCKS
Merci à toi pour la réponse,

par contre j'ai une erreur de syntaxe sur la requête sql, on dirait que cela vient des ' et " :(

Re: Récupérer informations menu déroulant

Posté : 07 oct. 2011, 14:48
par frexios
Sa aurait été mieux si tu avais collé l'erreur ainsi que la ligne qui pose problème.

Remplace :
',$result['nom_categorie'],'
par :
'.$result['nom_categorie'].'

Re: Récupérer informations menu déroulant

Posté : 07 oct. 2011, 15:01
par Mazarini
Pour info echo supporte plusieurs paramètres ; donc on peut utiliser les "." (un seul paramètre) ou les "," (plusieurs paramètres) indifféremment.

la commande SHOW CHARACTER SET permet de voir les valeurs possible (si erreur MySQL 1115)

Re: Récupérer informations menu déroulant

Posté : 07 oct. 2011, 16:07
par xTG
Sa aurait été mieux si tu avais collé l'erreur ainsi que la ligne qui pose problème.

Remplace :
',$result['nom_categorie'],'
par :
'.$result['nom_categorie'].'
Il est possible en fait de concaténer avec la virgule en PHP. :)

Re: Récupérer informations menu déroulant

Posté : 07 oct. 2011, 17:03
par moogli
Sa aurait été mieux si tu avais collé l'erreur ainsi que la ligne qui pose problème.

Remplace :
',$result['nom_categorie'],'
par :
'.$result['nom_categorie'].'
D'ailleurs d'après mes dernières lectures sur le sujet (il y a longtemps) la virgule serait plus rapide que le point, ceci dit est est réservée à l'affichage.
Merci à toi pour la réponse,

par contre j'ai une erreur de syntaxe sur la requête sql, on dirait que cela vient des ' et " :(

et oui le message d’erreur est obligatoire pour que l'on puisse t'aider :mrgreen:


@+