9

Mysqlテーブルのファイルされた値をselectboxに表示したい。次のコードを表示してみました。ただし、通常は、選択ボックスではなく、エコー関数で指定されたフィールド値を表示します。どこを間違えたのかわかりません。

 $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>

また、フィールド値は昇順で表示する必要があります。達成する方法..

4

6 に答える 6

17
<?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:補足として、関数の使用をやめてくださいmysql_*。理由については、このスレッドをご覧ください。

于 2013-01-17T05:56:34.650 に答える
2

このように簡単にできます

$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>
于 2013-01-17T05:55:30.827 に答える
0

選択ボックスにオプションを表示するには、whileループを使用する必要があります。これを試して ...

 $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>
于 2013-01-17T05:55:48.243 に答える
0
<?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>

于 2013-01-17T06:02:53.790 に答える
0
<?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>
于 2017-08-24T09:55:40.477 に答える
0

このタスクのコードブロックを凝縮するためのヒントがいくつかあります。受け入れられた回答の下でコメントするには多すぎます。

テストされたコード:

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>";
}
  • このif行は$con、1つのステップで、誤った戻り値を宣言およびチェックしています。
  • 生の接続エラーやクエリエラーをユーザーに提供しないでください。開発中は問題ありませんが、サーバーが提供する重大なエラーや情報エラーに見知らぬ人がアクセスすることは望ましくありません。これは、セキュリティの基本的なベストプラクティスです。
  • このelseif行は$result、1つのステップで、誤った戻り値を宣言およびチェックしています。
  • ブロックは、elseSELECTクエリが成功した結果として生成された0行以上のデータを処理します。
  • mysqliの結果は「トラバース可能」です。つまり、を使用して反復しforeach()、連想キーを介して行データに直接アクセスできます。 PHPマニュアルリファレンス 別のStackOverflow投稿
  • 補間を介して配列要素をリテラル文字列に書き込む場合は、要素を中括弧で囲むことをお勧めします(必ずしも必要ではありません)。これにより、IDEで役立つ強調表示がトリガーされ、配列に続く文字が誤って変数名自体に結合されないようになります。
  • 開始タグと終了タグの間で値がテキストと異なる場合にのみvalue、タグ内に属性を書き込む必要があります( )。冗長属性を省略した場合、フォームの送信とjavascriptの実装はすべて同じように機能します。<option><option>the text in here</option>value
  • テキストではなく選択フィールドに別の値を送信する場合、構文は次のようになります。

    echo "<option value=\"{$row['Emp_id']}\">{$row['Emp_name']}</option>";
    
  • selected既存の変数(例$selected_id)に基づいてオプションの1つに属性を記述したい場合は、次のようになります。

    echo "<option" , ($row['Emp_id'] == $selected_id ? " selected" : "") , ">{$row['Emp_name']}</option>";
    
  • 前の2つのプロセスを組み合わせたい場合は、次のようになります。

    echo "<option value=\"{$row['Emp_id']}\"" , ($row['Emp_id'] == $selected_id ? " selected" : "") , ">{$row['Emp_name']}</option>";
    
于 2019-01-22T22:08:55.550 に答える