Select d'un ancien Select

xander18
Invité n'ayant pas de compte PHPfrance

23 févr. 2013, 19:18

Bonjour, je voudrais récupéré un select d'un ancien select j'ai essayé ceci mais sa ne fonctionne pas quelqu'un aurais une idée ?
	<?php 				
	//connection au serveur
	include ('includes/connexion_bdd.php'); 
	?>
	<div id="consoles">
	<label for="consoles">Le produit est une console ? si non sur quel support est le produit * :</label>
		<select class="input	" name="id_consoles" required>
		<?php 
			$prec = $bdd->query('SELECT consoles.nom, consoles.id_consoles, produits.id_produits, produits.id_consoles FROM consoles, produits WHERE consoles.id_consoles=produits.id_consoles AND produits.id_produits = $id');
			$pdonnees = $prec->fetch();
		?>
		<option value="<?php echo $pdonnees['produits.id_consoles']; ?>" selected><?php echo $pdonnees['consoles.nom']; ?></option>
			<?php
				// ici je récupère les consoles
				//connection au serveur
				$res = $bdd->query ('SELECT nom, id_consoles FROM consoles');
				
				while ($donnees = $res->fetch())
				{
				?> <option value=<?php echo $donnees['id_consoles'] ;?>> <?php echo $donnees['nom'] ;?> </option><?php 
				}
				$res->closeCursor();
			?>
		</select>
	</div>
Ma base de donnée a une table produits avec un cham id_consoles qui est join a id_consoles de la table Consoles

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

23 févr. 2013, 20:44

salut,


peux tu être plus clair ?

on ne sais pas de quelle requête tu parle.

mais au vu de ton code je dirais de virer l'option selected (avant le while) et d'ajouter dans le while une condition pour afficher dans l'option selected si les id sont identique.
                        <?php
                                // ici je récupère les consoles
                                //connection au serveur
                                $res = $bdd->query ('SELECT nom, id_consoles FROM consoles');
                                while ($donnees = $res->fetch()) {
                                echo ' <option value="'.$donnees['id_consoles'].'"
                                if( $pdonnees['produits.id_consoles'] == $donnees['id_consoles']) echo ' selected="selected";
                                echo '>'.$donnees['nom'].'</option>';
                                }
                                $res->closeCursor();
?>
@+
Il en faut peu pour être heureux ......

xander18
Invité n'ayant pas de compte PHPfrance

23 févr. 2013, 21:07

Je vais essayé d'être le plus claire possible car c'est un peu complexe comme soucis.
Je commence par ma bdd le problème concerne 2 tables :
la table : Consoles
la table : Produits

Consoles contiens : id_consoles et nom
Produits contiens : id_produits, nom , description, prix .... id_consoles

il y a une jointure entre les 2 id_consoles de produits = id_consoles de consoles

lorsque j'ajoute un produit je lui attribue une console (PS1, PS2 ....) qui se situe dans la table Consoles.
Dans la table produit je récupère uniquement l'id consoles .

A partir de la je voudrais faire un update disons que le produit été sur PS2 et non sur PS1
du coup je récupère tout mes infos de la table produits
et pour récupéré l'ancienne console sur lequel été le produits je doit recup en selected le nom de consoles ou l'id_consoles de consoles = l'id_consoles de produits

xander
Invité n'ayant pas de compte PHPfrance

27 févr. 2013, 00:14

Ta solution semble être la bonne mais j'obtiens une erreur de syntax et un scream error suppression ignored

xander
Invité n'ayant pas de compte PHPfrance

27 févr. 2013, 01:45

voici les erreurs que j'obtiens moogli
( ! ) SCREAM: Error suppression ignored for
( ! ) Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in F:\wamp\www\osg_test\editer_produits.php on line 84

=s et meme si je ferme le 1er echo avec un ; sa m'affiche tj les erreurs

xander
Invité n'ayant pas de compte PHPfrance

28 févr. 2013, 00:33

j'ai résolue le problème voici le code final
	<div id="consoles">
	<label for="consoles">Le produit est une console ? si non sur quel support est le produit * :</label>
		<select class="input	" name="id_consoles" required>
<?php
$res = $bdd->query('SELECT * FROM produits WHERE id_produits = '.$id.'');
$pdonnees = $res->fetch();
$req = $bdd->query('SELECT nom, id_consoles FROM consoles WHERE id_consoles='.$pdonnees['id_consoles'] .'');
$donnees = $req->fetch();
?><option value=<?php echo $donnees['id_consoles'] ;?> selected="selected"> <?php echo $donnees['nom'] ;?> </option>
<?php
$resultat = $bdd->query('SELECT DISTINCT * FROM consoles'); // faire une comparaison pr exclure une répétition sur le nom
while ($cdonnees = $resultat->fetch()) :
?> <option value=<?php echo $cdonnees['id_consoles'] ;?>> <?php echo $cdonnees['nom'] ;?> </option>
<?php endwhile ?>
		</select>
	</div>
Merci de l'aide