У меня возникли проблемы с созданием вывода из запроса sql через php. Когда я выполняю запрос «SELECT * from projectdb WHERE name = 'Crys' or ID = 14142» на phpmyadmin, он возвращает допустимые результаты, но попытка сделать это путем передачи значения сообщения дает пустую таблицу. См. Код ниже:
<html>
<title>Search result</title>
<body>
<table border = "1px">
<tr>
<td>name</td>
<td>ID</td>
<td>position</td>
<td>job scope</td>
<td>contact_no</td>
<td>days_off</td>
<td>wages</td>
</tr>
<?php
if (isset($_POST['value']))
{
$ID=$_POST['staff ID'];
$name=$_POST['staff name'];
$admincon =mysqli_connect("localhost","root","","projectdb");
/* Query I need to execute and print in table*/
$sqlsrch2 =mysqli_query($admincon, "select * from staff where name='".$name."' or ID='".$ID."'");
while($result=mysqli_fetch_assoc($sqlsrch2)){
?>
/* table where results needs to be printed */
<tr>
<td><?php echo $result['name'];?></td>
<td><?php echo $result['ID'];?></td>
<td><?php echo $result['position'];?></td>
<td><?php echo $result['job_scope'];?></td>
<td><?php echo $result['contact_no'];?></td>
<td><?php echo $result['days_off'];?></td>
<td><?php echo $result['wages'];?></td>
</tr>
<?php
}
}
?>
</table>
</body>
</html>Несколько замечаний:
Спасибо за это, Найджел. SQL-запрос, который я пытаюсь отобразить, выглядит примерно так: SELECT * FROM staff WHERE name = "Crys" или ID = 14142 "Crys" - допустимая запись в таблице персонала моей базы данных, как и номер ID 14142, который откуда я знаю, что я что-то делаю неправильно в своем коде. Кстати, имя базы данных - projectdb.
О ваших заметках: Безопасность ВСЕГДА является проблемой ... как новичок, у вас есть отличный шанс научиться этому правильно - пожалуйста, сделайте это!
Я бы попробовал что-то вроде этого, echo sqlsrch2; напишите этот статус после оператора $ sqlsrch2 = mysqli_query (...);. затем посмотрите результат, если в этом запросе есть значение переменной post. это необходимо для проверки того, содержит ли ваш запрос заданные значения, которые вы передаете в качестве параметров.
Спасибо, Нади. Я только что это сделал, и мне кажется, что в запрос в качестве параметров не передается никакого значения. Что я могу сделать, чтобы исправить это?
@AdaOzy Где для этого форма? Кстати, здесь нужно использовать @the_member_name. Другой участник, возможно, не получил ваш комментарий к ним.
Спасибо за комментарий @FunkFortyNiner. Я несколько понял, что в именах значений, которые я использовал, были пробелы, например. value = 'имя сотрудника', которое, казалось, вызвало проблему. Замена на "_" устранила проблему, и теперь результаты отображаются правильно :). Всем спасибо!
Может быть, теперь я могу думать о безопасности, как советовал @LarsStegelitz lol
Добро пожаловать. Вы можете использовать trim(), чтобы избавиться от пробелов.






Если у вас когда-нибудь возникнут подобные проблемы, попробуйте отобразить SQL-запрос, который он фактически использует в вашем PHP-коде. Здесь показаны используемые переменные и их значения.