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

Я пытаюсь заполнить раскрывающийся список из результатов запроса 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> 

Поверь мне это работает 🙂