Выделить выбор по умолчанию из таблицы базы данных

У меня есть таблица («места»), в которой хранятся все возможные места, где может работать волонтер, каждому добровольцу назначается работа по одному месту.

Я хочу создать выделение из таблицы мест.

Сейчас я могу отобразить место проведения каждого добровольца, но я хочу, чтобы он отображал раскрывающийся список, с местом, которое уже выбрано в списке.

<form action="upd.php?id=7"> <select name="venue_id"> <?php //some sort of loop goes here print '<option value="'.$row['venue_id'].'">'.$row['venue_name'].'</option>'; //end loop here ?> </select> <input type="submit" value="submit" name="submit"> </form> 

Например, волонтер с идентификатором 7, присваивается месту встречи_4

 <form action="upd.php?id=7"> <select name="venue_id"> <option value="1">Bagpipe Competition</option> <option value="2">Band Assistance</option> <option value="3">Beer/Wine Pouring</option> <option value="4" selected>Brochure Distribution</option> <option value="5">Childrens Area</option> <option value="6">Cleanup</option> <option value="7">Cultural Center Display</option> <option value="8">Festival Merch</option> </select> <input type="submit" value="submit" name="submit"> </form> Brochure Distribution option will already be selected when it displays the drop down list, because in the volunteers_2009 table, column venue_id is 4. 

Я знаю, что это займет форму цикла for или while, чтобы вывести список мест из таблицы мест

Мой запрос:

 $query = "SELECT volunteers_2009.id, volunteers_2009.comments, volunteers_2009.choice1, volunteers_2009.choice2, volunteers_2009.choice3, volunteers_2009.lname, volunteers_2009.fname, volunteers_2009.venue_id, venues.venue_name FROM volunteers_2009 AS volunteers_2009 LEFT OUTER JOIN venues ON (volunteers_2009.venue_id = venues.id) ORDER by $order $sort"; 

Как заполнить выпадающее окно выбора местами ( volunteers_2009.venue_id , venues.id ) из таблицы мест и предварительно выбрать место в списке?

 $query = "SELECT volunteers_2009.id, volunteers_2009.comments, volunteers_2009.choice1, volunteers_2009.choice2, volunteers_2009.choice3, volunteers_2009.lname, volunteers_2009.fname, volunteers_2009.venue_id, venues.venue_name FROM volunteers_2009 AS volunteers_2009 LEFT OUTER JOIN venues ON (volunteers_2009.venue_id = venues.id) ORDER by $order $sort"; $res = mysql_query($query); echo "<select name = 'venue'>"; while (($row = mysql_fetch_row($res)) != null) { echo "<option value = '{$row['venue_id']}'"; if ($selected_venue_id == $row['venue_id']) echo "selected = 'selected'"; echo ">{$row['venue_name']}</option>"; } echo "</select>"; 

🙂

предполагая, что у вас есть множество мест … лично мне не нравится смешивать sql с другим волшебством.

 function displayDropDown($items, $name, $label, $default='') { if (count($items)) { echo '<select name="' . $name . '">'; echo '<option value="">' . $label . '</option>'; echo '<option value="">----------</option>'; foreach($items as $item) { $selected = ($item['id'] == $default) ? ' selected="selected" : ''; echo <option value="' . $item['id'] . '"' . $selected . '>' . $item['name'] . '</option>'; } echo '</select>'; } else { echo 'There are no venues'; } } 
  <?php $query = "SELECT * from blogcategory"; //$res = mysql_query($query); $rows = $db->query($query); echo "<select name = 'venue'>"; // while (($row = mysql_fetch_row($res)) != null) while ($record = $db->fetch_array($rows)) { echo "<option value = '{$record['CategoryId']}'"; if ($CategoryId == $record['CategoryId']) echo "selected = 'selected'"; echo ">{$record['CategoryName']}</option>"; } echo "</select>"; ?> 
 <!DOCTYPE html> <html> <head> <title>table binding</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> </head> <body> <div id="mydiv" style="width:100px;height:100px;background-color:yellow"> <select id="myselect"></select> </div> </body> </html> <?php include('dbconnection.php'); $sql = "SHOW TABLES FROM $dbname"; $result = mysqli_query($conn,$sql); if (!$result) { echo "DB Error, could not list tables\n"; echo 'MySQL Error: ' . mysqli_error(); exit; } while ($row = mysqli_fetch_row($result)) { echo "<script> var z = document.createElement('option'); z.setAttribute('value', '".$row[0]."'); var t = document.createTextNode('".$row[0]."'); z.appendChild(t); document.getElementById('myselect').appendChild(z);</script>"; } ?> в <!DOCTYPE html> <html> <head> <title>table binding</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> </head> <body> <div id="mydiv" style="width:100px;height:100px;background-color:yellow"> <select id="myselect"></select> </div> </body> </html> <?php include('dbconnection.php'); $sql = "SHOW TABLES FROM $dbname"; $result = mysqli_query($conn,$sql); if (!$result) { echo "DB Error, could not list tables\n"; echo 'MySQL Error: ' . mysqli_error(); exit; } while ($row = mysqli_fetch_row($result)) { echo "<script> var z = document.createElement('option'); z.setAttribute('value', '".$row[0]."'); var t = document.createTextNode('".$row[0]."'); z.appendChild(t); document.getElementById('myselect').appendChild(z);</script>"; } ?>