Code php qui s'affiche mal à l'écran

Bonjour,
J' ai reçu à l'écran ce code: ".$prod."\n"; } echo ""; echo ""; ?> après avoir exécuté ce programme php:

<html>
<body>
<h2>selectionner le produit </h2>
<?php
$rq="SELECT DISTINCT prod
FROM stock
WHERE temp3='$test' ";
$result=mysql_query($rq) or die ("requete impossible");
echo "<form action='ajoutstocke.php' method='POST'><select name='prod'>\n";

while ($ligne=mysql_fetch_array($result))
{
//extract($ligne);
if ($prod!=NULL)

echo "<option value='".$prod."'>".$prod."\n";

}
echo "</select>";
echo "<input type=\"submit\" value=\"valider\"></form>";
?>
</body>
</html>

quelle est l'erreur?

6 réponses

  1. Bonjour,
    Ton code est incomplet , t'as oublié de fermer la balise option,
    echo "<option value='".$prod."'>".$prod."</options>";
    1. Bonjour,

      echo "<option value='".$prod."'>".$prod."\n";

      les doubles cotes ici sont doublées.
      1. Bonjour,

        je pense que le probleme est à ce niveau là : echo "<option value='".$prod."'>".$prod."\n";
        essaye cette ligne :
        echo "<option value='$prod'>".$prod."\n";
        j'ai juste enlevé les doubles cotes ^^

        ça doit marcher normalement
        1. ah une autre chose , tu a oublié de fermer la balise <option>, il faut rajouter </option> à la fin de la meme ligne :)
      2. Bonjour,

        Voici votre code réécrit "proprement":
        - la préparation des données est effectuée en amont du code HTML
        - HTML utilise PHP comme moteur de template

        <?php
        // extraction liste produits depuis la base de données
        $rq = "SELECT DISTINCT prod "
                . "FROM stock "
                . "WHERE temp3='$test' ";
        $result = mysql_query($rq) or die("requete impossible");
        
        // création liste produits dans un tableau
        $listeProds = array();
        while ($ligne = mysql_fetch_array($result)) {
            //extract($ligne);
            if (!empty($prod)) {
                $listeProds[] = $prod;
            }
        }
        ?>
        <html>
        <body>
            <h2>selectionner le produit </h2>
            <form action='ajoutstocke.php' method='POST'>
                <select name='prod'>
                    <?php foreach($listeProds AS $key => $val): ?>
                    <option><?php echo $val; ?>
                    <?php endforeach; ?>
                </select>
                <input type="submit" value="valider">
            </form>
        </body>
        </html>


        A+
        1. j'oublais, corriger la ligne <option>:

          <option><?php echo $val; ?></option>
        2. Et puis j'enregistre comme quoi parmi les deux suivant: ajoutstock.php ou ajoutstock.html
        3. je l'ai tester et enregistrer en tant que fichier html et cela a marché. Mais pourquoi sous le fichier php cela ne s'affiche pas
      3. S'il contient du code php tu doit l'enregistrer en fichier.php
        1. Si tu l'enregistre en .html, ton code php ne sera pas exécuté, et ta liste déroulante sera toujours vide.
          C'est quoi la variable $test, tu ne l'as pas déclaré !!?