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. 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é !!?
    1. S'il contient du code php tu doit l'enregistrer en fichier.php
      1. 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
      2. 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 :)
      3. 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.