Mysql выберите запрос, используя значение из выпадающего списка PHP
Я начал программировать на php, и у меня возникли небольшие сомнения.
Я пытаюсь сделать поиск в базе данных, используя значение из раскрывающегося списка.
Проблема в том, что в запросе всегда используется последнее значение раскрывающегося списка.
Кто-нибудь может помочь мне найти ошибку?
Почему исследование, где предложение всегда является последним значением раскрывающегося списка?
Код
<tr><td>Technical:</td><td>
<select>
<?php
$query = "SELECT idTechnical, name FROM technicals";
$result2 = mysql_query($query);
$options="";
while($row=mysql_fetch_array($result2)){
$id=$row["idTechnical"];
$thing=$row["name"];
echo "<OPTION VALUE=$id>$thing</option>";
}
?>
</select>
<?php
if (isset($_POST['Next'])) {
if($_REQUEST['Next']=='Search') {
{
$sql="select idTask, descTask, deadline, idTechnical from tasks where idTechnical = '$id' order by deadline desc";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
}
}
}
?>
Я выбираю любое значение из выпадающего списка, но использует только последнее значение в предложении, где:S
1 ответ
Вот что я бы сделал для формы (при условии, что у вас есть правильный тег формы с атрибутом действия, указывающим на правильный скрипт PHP):
<tr>
<td>Technical:</td>
<td>
<select name="technical">
<?php
$query = "SELECT idTechnical, name FROM technicals";
$result2 = mysql_query($query);
$options="";
while($row=mysql_fetch_array($result2)){
echo '<option value='.$row["idTechnical"].'>
'.$row["name"].'
</option>';
}
?>
</select>
</td>
Затем в сценарии PHP:
$sql='SELECT
idTask,
descTask,
deadline,
idTechnical
FROM tasks
WHERE idTechnical = '.$_REQUEST['technical'].'
ORDER BY deadline DESC';
$result=mysql_query($sql);
$count=mysql_num_rows($result);
Это должно сделать это для вас.
Но, пожалуйста, обратите внимание: приведенный выше сценарий представляет собой угрозу безопасности, поскольку оставляет дверь открытой для внедрения SQL-кода.
Лучший способ сделать это - использовать оператор PDO Prepared, например:
$db = new PDO('mysql:host=CHANGE_THIS_TO_YOUR_HOST_NAME;
dbname=CHANGE_THIS_TO_YOUR_DATABASE',
'CHANGE_THIS_TO_YOUR_USERNAME',
'CHANGE_THIS_TO_YOUR_PASSWORD');
$sql='SELECT
idTask,
descTask,
deadline,
idTechnical
FROM tasks
WHERE idTechnical = :id
ORDER BY deadline DESC';
$query = $db->prepare($sql);
$query->bindValue(':id', $_REQUEST['technical']);
$query->execute();
$count = $query->rowCount();
Если вы только начинаете работать с PHP, я настоятельно рекомендую вам потратить некоторое время на ознакомление с запросами к базе данных PDO. Удачи и счастливого кодирования!