Я пытаюсь заполнить раскрывающийся список из результатов запроса mySQL в Php. Я искал примеры в Интернете, и я пробовал их на своей веб-странице, но по какой-то причине они просто не заполняют мой раскрывающийся список. Я пытался отлаживать код, но на сайтах, на которых я смотрел, это не объяснялось, и я не мог понять, что каждая строка кода. Любая помощь будет большой 🙂
Вот мой запрос: Select PcID from PC;
Вам нужно будет убедиться, что если вы используете тестовую среду, например 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>"; ?>
Ниже приведен код для раскрытия с использованием 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>"; ?>
Поскольку 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>"; }
Нет необходимости делать это:
while ($row = mysqli_fetch_array($result)) { $rows[] = $row; }
Вы можете прямо сделать это:
while ($row = mysqli_fetch_array($result)) { echo "<option value='" . $row['value'] . "'>" . $row['value'] . "</option>"; }
Наверх сначала настройте соединение с базой данных следующим образом:
<?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 не скрыто или отключено.
Через некоторое время исследований и разочарований …. Я смог это сделать
<?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>
Поверь мне это работает 🙂