Вывести значение из базы данных в поле множественного выбора

Это базовое окно множественного выбора:

<select name="State" size="5" multiple="multiple">

<option value="1">Kedah</option>
<option value="2">Kelantan</option>

</select>

Вопрос заключается не в том, чтобы вручную вводить значение параметра, а как получить данные из базы данных для использования в качестве значения параметра.

Мой БД выглядит так:

    mysql> select sta_id,sta_name
-> from sys_state
-> where sta_status = '1';

+--------+----------------------------------+
| sta_id | sta_name                         |
+--------+----------------------------------+
|     01 | JOHOR                            |
|     02 | KEDAH                            |
|     03 | KELANTAN                         |
|     04 | MELAKA                           |
|     05 | NEGERI SEMBILAN                  |
|     06 | PAHANG                           |
|     07 | PULAU PINANG                     |
|     08 | PERAK                            |
|     09 | PERLIS                           |
|     10 | SELANGOR                         |
|     11 | TERENGGANU                       |
|     12 | SABAH                            |
|     13 | SARAWAK                          |
|     14 | WILAYAH PERSEKUTUAN KUALA LUMPUR |
|     15 | WILAYAH PERSEKUTUAN LABUAN       |
|     16 | WILAYAH PERSEKUTUAN PUTRAJAYA    |
+--------+----------------------------------+

1

Решение

  1. Во-первых, вы должны подключиться к БД PHP Mysql Connection
  2. Следующим шагом будет выборка этих строк и запись данных в переменную (это может быть массив или любой объект, в моем случае это массив) PHP MySQL Data Select:

    $sql = "SELECT sta_id,sta_name FROM sys_state WHERE sta_status = '1'";
    $result = $conn->query($sql);
    $resultData = [];
    if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
    $resultData[$row['sta_id']] = $row['sta_name'];
    }
    }
    
  3. Наконец, напечатайте их на html-странице:

    <select name="State" size="5" multiple="multiple">
    <?php
    foreach ($resultData as $key => $value) {
    echo '<option value="'.$key.'">'.$value.'</option>';
    }
    ?>
    </select>
    
3

Другие решения

Пытаться

<?php $qry = mysql_query("select sta_id,sta_name from sys_state where sta_status = '1'");?>

<select name="State" size="5" multiple="multiple">
<?php while($row = mysql_fetch_assoc($qry)){?>
<option value="<?php echo $row['sta_id'];?>"><?php echo $row['sta_name'];?></option>
<?php }?>
</select>

Заметка : — mysql_* не рекомендуется использовать mysqli_* или же PDO

0

Попробуйте с —

$mysqli = new mysqli("localhost", "user", "password", "database");
$res = $mysqli->query("select sta_id,sta_name from sys_state where sta_status = '1'");

?>
<select name="State" size="5" multiple="multiple">
<?php

while ($row = $res->fetch_assoc()) {
echo "<option value='".$row['sta_id']."'>".$row['sta_name']."</option>";
}
?>
</select>
0

Ну, в принципе вы можете просто echo их

$dsn = "mysql:host=localhost;dbname=x";
$user="root";
$password="";
try{
$connect = new PDO($dsn,$user,$password); // PDO= PHP Data Object
$connect->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){echo $e->getMessage();}$select = $connect->query("select sta_id,sta_name from sys_state where sta_status = '1';");

echo "<select name=\"State\" size=\"5\" multiple=\"multiple\">";

foreach ($select as $temp){echo "<option value=\"1\">".temp["sta_name"]."  </option>";
......
....}
echo "</select>";

$connect=null;// CLOSE CONNECTION

но построение их в функцию было бы лучше

0

Мне удалось сделать это так:

<?php     // MULTI SELECTION$sql1 = " SELECT sta_id,sta_name FROM dof_perkhidmatan.sys_state WHERE sta_status = '1' ";

$result1 =  $db->sql_query($sql1,END_TRANSACTION);

if($db->sql_numrows($result1) > 0)
{

?>

<select id="State" name="State" size="16" multiple="multiple">
<?php

// output data of each row
while($row_select = $db->sql_fetchrow($result1))
{
echo '<option value="'.$row_select['sta_id'].'">'.$row_select['sta_name'].'</option>';
}?>
</select>
<?php
}
?>
0

Попробуйте это, у меня все работало нормально

<?php
<!-- Connect to your database-->

require 'dbconnect.php';

<!--  Fetch required data from the database-->

$sql="SELECT sta_id,sta_name from sys_state WHERE sta_status = '1' ";

$result = mysqli_query($con, $sql);

?>
<select multiple size="6">

<?php while($row = mysqli_fetch_assoc($result)){?>
<option value="<?php echo $row['sta_id']; ?>"> <?php echo $row['sta_name']; ?></option>

<?php
}
?>
</select>
0
<?php $qry = mysql_query("select sta_id,sta_name from sys_state where sta_status = '1'");

$dropdown ='<select name="State" size="5" multiple="multiple">';
while($row = mysql_fetch_assoc($qry)){
$dropdown .='<option value="'.$row['sta_id'].'">'.$row['sta_name'].'</option>';
}
$dropdown .= '</select>';
echo $dropdown;

И это будет отражать выпадающий список с динамическими значениями

0
По вопросам рекламы [email protected]