создать выпадающий список, как это:SQL запросы на основе выбора выпадающего меню
<header>
<h3 align="center"> Highway State </h3>
</header>
<section>
<article>
<hgroup>
</hgroup>
<p align="center">
<form style="text-align:center" method="post" action="">
<select name="dropdown1">
<?php echo query1(); ?>
</select>
<input type="submit" value="Submit" />
</form>
</p>
</article>
где Query1() является
function query1()
{
$myHTMLData = '';
$c=connect();
$myData=mysqli_query($c, "SELECT DISTINCT highway_state FROM highways_highway ORDER BY highway_state");
while($record = mysqli_fetch_array($myData))
{
$myHTMLData .= '<option value="' . $record['highway_state'] . '">' . $record['highway_state'] . '</option>' ;
}
return $myHTMLData;
}
Так что я делаю наполнение выпадающего меню состояний.
Мой вопрос теперь, как мне сделать SQL запрос как SELECT, ID, EXIT_NAME FROM highways_exit WHERE highway_ID = (SELECT ID FROM highways_highway WHERE highway_state = * dropdown1 *)
* dropdown1 * - это то, где я хочу, чтобы запрос основывался на выборе в dropdown1. Как это сделать?
ТАКЖЕ: Как отобразить этот запрос на веб-странице, когда человек нажимает кнопку отправки?
Моя попытка решения (написано в index.php)
<header>
<h3 align="center">Exit Name</h3>
</header>
<section>
<table border='1' align="center">
<tr>
<th>Exit Name</th>
<th>Exit ID</th>
</tr>
<?php
$c=connect();
$hstate = $_POST['dropdown1'];
$hname = $_POST['dropdown2'];
$hdir = $_POST['dropdown2pt5'];
$result=mysqli_query($c, "SELECT exit_name, id FROM highways_exit WHERE highway_ID = (SELECT id FROM highways_highway WHERE highway_state = ('" . $hstate . "') AND highway_name = ('" . $hname . "') AND highway_dir = ('" . $hdir . "')) ");
while($row = mysqli_fetch_array($result))
{
$arrexit = $row['exit_name'];
$arrid = $row['id'];
echo "<tr><td>$arrexit</td><td>$arrid</td></tr>";
}
?>
</table>
</section>
<footer>
<f1 align="center"></f1>
</footer>
Правильно ли это для использования пунктов меню? Это и объект меню находятся на index.php, есть ли способ заставить это работать так, что он будет принимать элементы меню и создавать эту таблицу при обновлении/отправке?
так что-то вроде следующей работы? $ myVal = $ _POST ['dropdown1']; newquery ($ myVal); Затем функция newquery ($ myval) { $ myHTMLData = ''; $ c = connect(); $ myData = mysqli_query ($ c, "SELECT ID, exit_name FROM highways_exit WHERE highway_ID = (SELECT ID FROM highways_highway WHERE highway_state = $ myVal)"); } –
Вы можете сделать что-то вроде $ SQL = "SELECT ID, EXIT_NAME FROM highways_exit WHERE highway_ID = (SELECT ID FROM highways_highway WHERE highway_state = '" [dropdown1 '] + "'" $ _POST.'; Но пожалуйста Помните, что SQL-инъекция должна быть дезинфицирована, прежде чем вводить ее в запрос. – ysrb
Есть ли причина, по которой «dropdown1» может вызвать инъекцию, если это просто раскрывающееся меню, заполненное самой базой данных? –