Заполните раскрывающийся список из таблицы mySQL в PHP

Я пытаюсь заполнить раскрывающийся список из результатов запроса mySQL в Php. Я искал примеры в Интернете, и я пробовал их на своей веб-странице, но по какой-то причине они просто не заполняют мой раскрывающийся список. Я пытался отлаживать код, но на сайтах, на которых я смотрел, это не объяснялось, и я не мог понять, что каждая строка кода. Любая помощь будет большой:)

Здесь мой запрос: Select PcID from PC;

Ответы

Ответ 1

Вам нужно убедиться, что если вы используете тестовую среду, такую ​​как WAMP, укажите свое имя пользователя как root. Вот пример, который подключается к базе данных MySQL, выдает запрос и выводит теги <option> для окна <select> из каждой строки таблицы.

<?php

mysql_connect('hostname', 'username', 'password');
mysql_select_db('database-name');

$sql = "SELECT PcID FROM PC";
$result = mysql_query($sql);

echo "<select name='PcID'>";
while ($row = mysql_fetch_array($result)) {
    echo "<option value='" . $row['PcID'] . "'>" . $row['PcID'] . "</option>";
}
echo "</select>";

?>

Ответ 2

Ниже приведен код для раскрывающегося списка с помощью MySql и PHP:

<?
$sql="Select PcID from PC"
$q=mysql_query($sql)
echo "<select name=\"pcid\">"; 
echo "<option size =30 ></option>";
while($row = mysql_fetch_array($q)) 
{        
echo "<option value='".$row['PcID']."'>".$row['PcID']."</option>"; 
}
echo "</select>";
?>

Ответ 3

Так как mysql_connect устарел, подключитесь и запросите вместо этого с mysqli:

$mysqli = new mysqli("hostname","username","password","database_name");
$sqlSelect="SELECT your_fieldname FROM your_table";
$result = $mysqli -> query ($sqlSelect);

И затем, если у вас более одного списка опций с одинаковыми значениями на одной странице, поместите значения в массив:

while ($row = mysqli_fetch_array($result)) {
    $rows[] = $row;
}

И затем вы можете зацикливать массив несколько раз на одной странице:

foreach ($rows as $row) {
    print "<option value='" . $row['your_fieldname'] . "'>" . $row['your_fieldname'] . "</option>";
}

Ответ 4

Через некоторое время исследований и разочарований.... Я смог сделать это

     <?php $conn = new mysqli('hostname', 'username', 'password','dbname') or die ('Cannot connect to db') $result = $conn->query("select * from table");?>

//insert the below code in the body


    <table id="myTable"> <tr class="header"> <th style="width:20%;">Name</th>
    <th style="width:20%;">Email</th>
       <th style="width:10%;">City/ Region</th>
        <th style="width:30%;">Details</th>
  </tr>
  <?php
   while ($row = mysqli_fetch_array($result)) {

               echo "<tr>";
               echo "<td>".$row['username']."</td>";
               echo "<td>".$row['city']."</td>";
                echo "<td>".$row['details']."</td>";
               echo "</tr>";
           }

     ?>
</table>

Поверьте мне, что это работает:)

Ответ 5

Нет необходимости делать это:

while ($row = mysqli_fetch_array($result)) {
    $rows[] = $row;
}

Вы можете прямо сделать это:

while ($row = mysqli_fetch_array($result)) {
        echo "<option value='" . $row['value'] . "'>" . $row['value'] . "</option>";
    }

Ответ 6

В начале сначала настройте соединение с базой данных следующим образом:

<?php
$mysqli = new mysqli("localhost", "username", "password", "database") or die($this->mysqli->error);
$query= $mysqli->query("SELECT PcID from PC");
?> 

Затем включите следующий код в HTML внутри формы

<select name="selected_pcid" id='selected_pcid'>

            <?php 

             while ($rows = $query->fetch_array(MYSQLI_ASSOC)) {
                        $value= $rows['id'];
                ?>
                 <option value="<?= $value?>"><?= $value?></option>
                <?php } ?>
             </select>

Однако, если вы используете материализацию css или любого другого из поля css, убедитесь, что поле select не скрыто или отключено.