Requête php/mysql menu déroulant

alban270 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
alban270 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour tout le monde,

J'ai besoin d'un peu d'aide concernant l'affichage d'une requête, réponse à un menu déroulant.

Deux éléments me causent souci.

1- Le menu déroulant s'affiche mais contient plusieurs fois le nom du même auteur.
2- Je n'obtiens à l'affichage qu'un titre au lieu de la liste complète des titres de l'auteur.

Aucun affichage d'erreur du serveur.
Il doit manquer quelque chose quelquepart, probablement mais je ne trouve pas.

Voici le code source :

<?php

// ouverture base
mysql_connect("localhost", "root", "");
mysql_select_db("livres");

// menu déroulant sélection sur l'auteur *********************
echo '<p> Affichage des choix :</p>';
echo '<form method="GET" action="'.$_SERVER['PHP_SELF'].'">';
echo ' <select name="choix" id="menu" style="font-family:arial;" style="font-size:11px;" >';

$resultat=mysql_query("select NOMAUT from livres") or die ("Requête non executée.");
while ($ligne=mysql_fetch_array($resultat))
{


echo '<option>'.$ligne["NOMAUT"].'</option>';
}
echo '</select>';
echo '<input type="submit" style="font-family:arial;" style="font-size:11px;" value="Afficher" name="go">';
echo '</form>';

//si bouton submit cliqué
if(isset($_GET['go'])){

// verification valeur get existante
if(!$_GET['choix']){
exit;
}

//si existe
else{
//exploitation variable $choix dans une requête
$choix = $_GET['choix'];
//

//// requête
$resultat2 = mysql_query("SELECT * FROM livres WHERE NOMAUT='".$choix."'") or die ("Requête non executée.");
$ligne2 = mysql_fetch_array($resultat2);

{
?>

// Affichage sous forme de tableau
<?php echo "<div align=\"center\"><center>
<table border=\"1\" >
<tr>

<td width=100 align=left >"; ?>
<?php echo $ligne2['NOMAUT'];?>
<?php echo "</td>


<td width=200 align=left>"; ?>
<?php echo $ligne2['TITRE'] ;?>
<?php echo "</td>

</table>
</center></div>"; ?>


<?php
}

mysql_close();
}
}

?>

********************

Par avance, merci.
Alban.

A voir également:

2 réponses

ReDLoG
 
Bonsoir,
J'ai un peu arrangé ton script mais je ne l'ai pas testé, la flemme de reproduire la table MySQL :
<?php
// ouverture base
mysql_connect("localhost", "root", "");
mysql_select_db("livres");
// menu déroulant sélection sur l'auteur *********************
echo '<p>Affichage des choix :</p>';
echo '<form method="GET" action="'.$_SERVER['PHP_SELF'].'">';
echo '<select name="choix" id="menu" style="font-family: arial, sans-serif; font-size: 11px;">';
$resultat=mysql_query("select NOMAUT from livres") or die ("Requête non executée :".mysql_error());
while($ligne=mysql_fetch_assoc($resultat)) {
	echo '<option>'.$ligne["NOMAUT"].'</option>';
}
echo "</select>\n<input type=\"submit\" style=\"font-family: arial, sans-serif; font-size: 11px;\" name=\"go\" value=\"Afficher\" />\n</form>\n";
mysql_free_result($resultat);
//si bouton submit cliqué
if(isset($_GET['go'])) {
	// verification valeur get existante
	if(!$_GET['choix']) {
		exit;
	} else {
		//exploitation variable $choix dans une requête
		$choix=$_GET['choix'];
		$resultat2=mysql_query("SELECT NOMAUT,TITRE FROM livres WHERE NOMAUT='".$choix."'") or die ("Requête non executée : ".mysql_error());
		// Affichage sous forme de tableau 
		echo "<div style=\"text-align: center;\">\n<table border=\"1\">\n";
		while($ligne2=mysql_fetch_assoc($resultat2)) {
			echo "<tr><td style=\"width: 100px; text-align: left;\">".$ligne2['NOMAUT']."</td>\n";
			echo "<td style=\"width: 200px; text-align: left;\">".$ligne2['TITRE']."</td>\n</tr>\n";
		}
		echo "</table>\n</div>\n";
		mysql_free_result($resultat2);
	}
}
mysql_close();
?>
0
alban270 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Merci pour l'aide, ça fonctionne.
J'ai encore beaucoup à apprendre ;o)

Sujet résolu.

Bon w.e à tous.
0