Variable dans menu déroulant php

Bonjour a tous
ma question va vous sembler bête comme chou
mais impossible de trouver la réponse après des heures d'essai .....

voici la portion de code qui me pose problème :

$form2="
<center>
<table>
<form method=\"POST\">
<tr><td><b>Sous Catégorie : </b>
<select name=sscategorie>
<option selected value=\"0\">choisissez une sous catégorie</option>
$i=0;
while ($i<$nbscat)
{
$uid2= $categorie_tab2[$i]['uid'];
$nomdescat2= $categorie_tab2[$i]['nom'];
<option value=\"$uid2\">$nomdescat2</option>
$i=$i+1;
}
</select></td></tr>
<tr><td style=\"text-align:center;\"><input type=submit name=go2 value=\"Poster votre annonce\"></td></tr>
</form>
</table>
</center>
";

donc ma question est simple comment faire pour que la variable $nomdescat2 s'affiche dans le menu déroulant
j'ai essayé sans succés :

\"$nomdescat2\"
".$nomdescat2."
'$nomdescat2'
...

dites moi comment faire car la j'explose

merci d'avance
Configuration: Windows Vista
Firefox 2.0.0.12

3 réponses

  1. J'écrirais plutôt la lecture de la base comme ça :

    require('connection/start.php');
    $requete5 = mysql_query(
    "SELECT * FROM categorie where attachement='"
    . $categorieb . "'")
    or die("le SELECT ne marche pas" );
    $nbscat = mysql_affected_rows();
    while ($donnees5 = mysql_fetch_array($requete5))
    {
    $categorie_tab2[] = array( 'nom' => $donnees3['nom'],
    'uid' => $donnees3['uid'] );
    }
    require('connection/stop.php');
    echo '<b>...'; var_dump( $categorie_tab2);

    1. ajouté des quotes autour de $categorieb après le = du SELECT : si ta colonne attachement est un string c'est indispensable
    2. ajouté un die pour vérifier que le query se déroule bien
    3. modifié l'initialisation du tableau $categorie_tab2 : je préfère ainsi
    4. ajouté un var_dump pour vérifier que le tableau est bien initialisé

    Qu'est-ce-que ça donne ?
    1. oui effectivement c'est plus clair je l'accorde mais le reste de mon code m'oblige a essayer comme ceci
      car en essayant ton code (chose que j'avais deja essayé seul ca merde et je ne sais pas trop pourquoi

      ce qui va autour :

      ...

      if($ok==1)
      {
      require('connection/start.php');
      $requete5 = mysql_query("SELECT * FROM categorie where attachement=$categorieb ");
      $nbscat = mysql_affected_rows();
      $i=0;
      while ($donnees5 = mysql_fetch_array($requete5))
      {
      $categorie_tab2[$i]['nom']=$donnees3['nom'];
      $categorie_tab2[$i]['uid']=$donnees3['uid'];
      $i=$i+1;
      }
      require('connection/stop.php');
      ?>
      <center>
      <form method="POST">
      <table>
      <tr>
      <td><b>Sous Catégorie : </b>
      <select name=sscategorie>
      <option selected value="0">choisissez une sous catégorie</option>
      <?php
      $i=0;
      while( $i < $nbscat )
      {
      $uid2 = $categorie_tab2[$i]['uid'];
      $nomdescat2 = $categorie_tab2[$i]['nom'];
      echo '<option value="' . $uid2 . '">' . $nomdescat2 . '</option>';
      $i=$i+1;
      }
      ?>
      </select>
      </td>
      </tr>
      <tr>
      <td style="text-align:center;">
      <input type=submit name=go2 value="Poster votre annonce">
      </td>
      </tr>
      </table>
      </form>
      </center>
      <?php
      }

      ...

      voila si ca peu aider

      comme ceci les catégorie proposé sont blanche (rien ecrit)

      edit : je suis un boulet , mauvaise variable voir ce qui est surligné en gras ^^
      ben quoi je suis un peu fatiguer ^^

      en tout cas merci de tes reponses
      1. Bonjour

        A moins que tu ais une raison fondamentale de mettre ton code dans une variable php, je te recommanderais de faire un script comme ci-dessous :

        <center>
        <form method="POST">
        <table>
        <tr>
        <td><b>Sous Catégorie : </b>
        <select name=sscategorie>
        <option selected value="0">choisissez une sous catégorie</option>
        <?php
        $i=0;
        while( $i < $nbscat )
        {
        $uid2 = $categorie_tab2[$i]['uid'];
        $nomdescat2 = $categorie_tab2[$i]['nom'];
        echo '<option value="' . $uid2 . '">' . $nomdescat2 . '</option>';
        $i=$i+1;
        }
        ?>
        </select>
        </td>
        </tr>
        <tr>
        <td style="text-align:center;">
        <input type=submit name=go2 value="Poster votre annonce">
        </td>
        </tr>
        </table>
        </form>
        </center>

        Ceci me sembme plus orthodoxe.