web-dev-qa-db-fra.com

Afficher les valeurs des champs de la table Mysql dans la zone de sélection

Je veux afficher la table Mysql Valeurs archivées dans la zone de sélection. J'ai essayé le code suivant pour afficher . Mais il affiche normalement les valeurs de champ spécifiées en fonction d'écho et non dans la zone de sélection. Je ne sais pas où je me trompe.

 $con = mysql_connect("localhost","root","root");
 $db = mysql_select_db("Time_sheet",$con);
 $get=mysql_query("SELECT Emp_id FROM Employee");
 while($row = mysql_fetch_assoc($get))
{
echo ($row['Emp_id']."<br/>");
}

<html>
<body>
<form>
 <select> 
<option value = "<?php echo($row['Emp_id'])?>" ><?php echo($row['Emp_id']) ?></option>
</select>
</form>
</body>
</html>

De plus, les valeurs de champ doivent être affichées dans l'ordre croissant. Comment atteindre .. 

8
<?php
$con = mysql_connect("localhost","root","root");
 $db = mysql_select_db("Time_sheet",$con);
 $get=mysql_query("SELECT Emp_id FROM Employee ORDER BY Emp_id ASC");
$option = '';
 while($row = mysql_fetch_assoc($get))
{
  $option .= '<option value = "'.$row['Emp_id'].'">'.$row['Emp_id'].'</option>';
}
?>
<html>
<body>
<form>
 <select> 
<?php echo $option; ?>
</select>
</form>
</body>
</html>

PS: Sur une note de bas de page, veuillez ne plus utiliser les fonctions mysql_*. Jetez un coup d'oeil à this thread pour les raisons.

15
asprin

Vous pouvez facilement le faire comme ça

$con = mysql_connect("localhost","root","root");
$db = mysql_select_db("Time_sheet",$con);
$get=mysql_query("SELECT Emp_id FROM Employee");

<html>
<body>
<form>
    <select> 
    <option value="0">Please Select</option>
        <?php
            while($row = mysql_fetch_assoc($get))
            {
            ?>
            <option value = "<?php echo($row['Emp_id'])?>" >
                <?php echo($row['Emp_id']) ?>
            </option>
            <?php
            }               
        ?>
    </select>
</form>
</body>
</html>
2
Muhammad Raheel

Vous devez utiliser la boucle while pour afficher l'option dans la zone de sélection. essaye ça ... 

 $con = mysql_connect("localhost","root","root");
 $db = mysql_select_db("Time_sheet",$con);
 $get=mysql_query("SELECT Emp_id FROM Employee order by Emp_id");

 <html>
 <body>
  <form>
    <select>
    <?php
     while($row = mysql_fetch_assoc($get))
     {
    ?>
      <option value="<?php echo $row['Emp_id']; ?>"><?php echo $row['Emp_id']; ?></option>
    <?php
     }
    ?>
    </select>
  </form>
 </body>
 </html>
0
Suhel Meman

Il existe quelques astuces à offrir qui condenseront le bloc de code pour cette tâche - trop pour simplement commenter sous la réponse acceptée.

Code testé:

if (!$con = new mysqli("localhost", "root", "root", "Time_sheet")) {
    echo "Database Connection Error: " , $con->connect_error;  // don't show actual error in "production" stage
} elseif (!$result = $con->query("SELECT Emp_id FROM Employee ORDER BY Emp_id")) {
    echo "Syntax Error: " , $con->error;  // don't show actual error in "production" stage
} else {
    echo "<select>";
    foreach ($result as $row) {
        echo "<option>{$row['Emp_id']}</option>";
    }
    echo "</select>";
}
  • La ligne if permet à la fois de déclarer $con et de rechercher une valeur de retour Falsey en une étape.
  • Ne fournissez jamais d'erreurs de connexion brutes ou de requêtes à vos utilisateurs. Cela convient au cours du développement, mais vous ne voulez pas que des étrangers aient accès aux erreurs critiques/informatives fournies par votre serveur. Il s'agit d'une meilleure pratique de base pour la sécurité.
  • La ligne elseif permet à la fois de déclarer $result et de rechercher une valeur de retour Falsey en une étape.
  • Le bloc else traitera zéro ou plusieurs lignes de données générées à la suite de la réussite de la requête SELECT.
  • Le résultat de mysqli est "traversable", ce qui signifie que vous pouvez le parcourir à l'aide de foreach() et bénéficier d'un accès direct aux données de la ligne via des clés associatives. PHP Référence du manuelUn autre message StackOverflow
  • Lors de l'écriture d'un élément de tableau dans une chaîne littérale via une interpolation, il est recommandé (bien que pas toujours nécessaire) de placer l'élément entre accolades. Cela déclenchera souvent une mise en évidence utile dans les IDE et garantira que les caractères qui suivent le tableau ne sont pas accidentellement couplés au nom de la variable elle-même.
  • Vous devez UNIQUEMENT écrire un attribut value à l'intérieur de la balise <option> SI la valeur est différente de texte entre les balises d'ouverture et de fermeture (<option>the text in here</option>). Les soumissions de formulaire et les implémentations javascript fonctionneront de la même manière si vous omettez l'attribut redondant value.
  • Si vous ne souhaitez PAS soumettre une valeur différente dans le champ de sélection plutôt que le texte, voici à quoi la syntaxe peut ressembler:

    echo "<option value=\"{$row['Emp_id']}\">{$row['Emp_name']}</option>";
    
  • Si vous souhaitez écrire un attribut selected sur l'une des options en fonction d'une variable préexistante (par exemple, $selected_id), il peut ressembler à ceci:

    echo "<option" , ($row['Emp_id'] == $selected_id ? " selected" : "") , ">{$row['Emp_name']}</option>";
    
  • Si vous voulez combiner les deux processus précédents, cela peut ressembler à ceci:

    echo "<option value=\"{$row['Emp_id']}\"" , ($row['Emp_id'] == $selected_id ? " selected" : "") , ">{$row['Emp_name']}</option>";
    
0
mickmackusa
<?php
  $con = mysql_connect("localhost","root","root");
  $db = mysql_select_db("Time_sheet",$con);
  $get=mysql_query("SELECT Emp_id FROM Employee");
  ?>
 <html>
 <body>
    <form>
        <select> 
         <?php
             while($row = mysql_fetch_assoc($get)){?>
                <option value = "<?php echo($row['Emp_id'])?>" ></option>
                <?php } ?>
        </select>
    </form>
    </body>

0
Deepak Srinivasan
<?php
 $con = mysql_connect("localhost","root","root");
 $db = mysql_select_db("Time_sheet",$con);
 $res=mysql_query("SELECT Emp_id FROM Employee");
?>

<html>
 <body>
  <form>
   <select>
    <?php
      while ($row = $res->fetch_assoc()) 
      {
        echo '<option value=" '.$row['id'].' "> '.$row['name'].' </option>';
      }
    ?>
    </select>
   <form>
  </body>
 </html>
0
rashedcs