Liste déroulante PHP/MySQL

Fermé
informatick - 7 juil. 2004 à 21:37
 ric - 8 juil. 2004 à 23:42
Rien ne s'affiche en sortie !!!

Ni message d'erreur, ni résultats (pourtant la base est pleine).

Avez-vous vraiment une idée de solution ?



Voici les fichiers :

///////////////////
Base de données
//////////////////

<?

require("connexion.php");

mysql_query("

CREATE TABLE titre
(

id int(3),
nom varchar(30),
texte varchar (30),
image varchar(30

)") ;

?>


////////////////////
Page connexion.php
///////////////////

<font color="#000000">
<?
if (!mysql_connect("localhost","root",""))
{
echo "erreur access MySQL" ;
exit ;
}
else
{
/*echo "ca marche 1 <br>";*/
}
if (!mysql_select_db("mabase"))
{
echo "erreur access BDD" ;
exit ;
}
else
{
/*echo "ca marche 2<br>";*/
}
?>

</font>


/////////
Index.php
/////////

<html>
<body>
<FORM NAME="formulaire" METHOD="POST" ACTION="pageresultat.php">

<SELECT name="CHOIX" >
<FONT FACE="Palatino linotype" size="3" color="#ffffff">
<?

require ("connexion.php");

$sql="SELECT * FROM titre ORDER BY nom";
$resultat=mysql_query($sql);

while($ligne=mysql_fetch_array($resultat))
{
extract($ligne);

echo("<OPTION VALUE=\"nom\"> $nom</OPTION>");
}

?>

</font>
</SELECT>
<input type="submit" value="Valider">
</FORM>

</body>
</html>

//////////////////////
Page pageresultat.php
/////////////////////


<html>
<body>




<?

require ("connexion.php");


$sql="SELECT * FROM titre WHERE nom=\"".$_POST["CHOIX"]."\"";


$resultat=mysql_query($sql);


while($ligne=mysql_fetch_array($resultat))
{
extract($ligne);
echo ("$texte");



}


?>

</body>
</html>
A voir également:

3 réponses

Bonjour
---------------
CREATE TABLE titre
(

id int(3),
nom varchar(30),
texte varchar (30),
image varchar(30

)") ;
C'est quoi le " final ?
-----------------------
$sql="SELECT * FROM titre ORDER BY nom";
$resultat=mysql_query($sql);
while($ligne=mysql_fetch_array($resultat))
{
extract($ligne);
echo("<OPTION VALUE=\"nom\"> $nom</OPTION>");
}
devient
$sql="SELECT nom FROM titre ORDER BY nom";
$resultat=mysql_query($sql);
while($ligne=mysql_fetch_array($resultat))
{
// extract($ligne);
echo("<OPTION VALUE=\"nom\"> $ligne[nom]</OPTION>");
}
---------------------------
$sql="SELECT * FROM titre WHERE nom=\"".$_POST["CHOIX"]."\"";
$resultat=mysql_query($sql);
while($ligne=mysql_fetch_array($resultat))
{
extract($ligne);
echo ("$texte");
}
devient
$sql="SELECT texte FROM titre WHERE nom=\"".$_POST["CHOIX"]."\"";
$resultat=mysql_query($sql);
while($ligne=mysql_fetch_array($resultat))
{
// extract($ligne);
echo ("$ligne[texte]");
}
--------------------
0
chmanu Messages postés 166 Date d'inscription mardi 15 mai 2001 Statut Membre Dernière intervention 3 septembre 2012 28
8 juil. 2004 à 11:08
C est, je pense, pour fermer la chaine de caracteres de mysql_query().
Sinon, pour debugger, en général, tu fous des echos devant toutes tes fonctions et tu vois assez vite où ca plante.

Chmanu
0
ces erreur sont souvent du a des pb de requete SQL
essaie peut etre d'utiliser des ' plutot que des \" pour concatener tes where

$sql="SELECT * FROM titre WHERE nom=\"".$_POST["CHOIX"]."\"";

=====>

$sql="SELECT * FROM titre WHERE nom= ' ".$_POST["CHOIX"]." ' ";
0
mysql_query("CREATE TABLE titre
(id int(3),
nom varchar(30),
texte varchar (30),
image varchar(30))");

Il manquait une parenthèse avant le " final.

D'accord avec Yann pour les apostrophes.
0