Liste déroulante PHP/MySQL

informatick -  
 ric -
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>

3 réponses

  1. ric
     
    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
    1. chmanu Messages postés 166 Statut Membre 28
       
      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
  2. yann
     
    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
  3. ric
     
    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