Requête php/mysql menu déroulant

Fermé
alban270 Messages postés 2 Date d'inscription vendredi 30 mars 2012 Statut Membre Dernière intervention 31 mars 2012 - 30 mars 2012 à 16:03
alban270 Messages postés 2 Date d'inscription vendredi 30 mars 2012 Statut Membre Dernière intervention 31 mars 2012 - 31 mars 2012 à 08:02
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

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 vendredi 30 mars 2012 Statut Membre Dernière intervention 31 mars 2012
31 mars 2012 à 08:02
Bonjour,

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

Sujet résolu.

Bon w.e à tous.
0