Заполните раскрывающийся список из таблицы 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 не скрыто или отключено.