Хорошо, ребята, может быть, я получу окончательные ответы на эту новую проблему. Этот раздел PHP не возвращает никаких ответов, однако я знаю, что данные есть. Кто-нибудь знает, почему это возвращает текст «Ошибка»?
<html> <head> <title>Search</title> <style type="text/css"> table { background-color: #FCF; } th { width: 150px; text-align: left; } </style> </head> <body> <h1>Search</h1> <form method="post" action="search.php"> <input type="hidden" name="submitted" value="true"/> <label> Search | Category: <select name="category"> <option value="fname">FName</option> <option value="lname">LName</option> </select> </label> <label>Search Criteria: <input type="text" name="criteria"/></label> <input type="submit"/> </form> <?php if (isset($_POST['submitted'])) { // connect to DB include('connect.php'); $category = $_POST['category']; $criteria = $_POST['criteria']; $query = "SELECT * FROM people WHERE category = '$category'"; $result = mysqli_query($dbcon, $query) or die ('Error'); echo "<table>"; echo "<thead>"; echo "<tr>"; echo "<th>First Name</th>"; echo "<th>Last Name</th>"; echo "</tr>"; echo "</thead>"; echo "<tbody>"; if (mysqli_num_rows($result)) { while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { echo "<tr>"; echo "<th>" . $row['fname'] . "</th>"; echo "<th>" . $row['lname'] . "</th>"; echo "</tr>"; } } echo "</tbody>"; echo "</table>"; } ?> </body> </html>
Вероятно, из-за этой строки: $result = mysqli_query($dbcon, $query) or die ('Error');
Если запрос завершился неудачно, сценарий остановится и напечатает сообщение «Ошибка».
Возможно, вы захотите поместить что-то вроде mysqli_error($dbcon)
вместо 'Error'
и в этом конкретном случае я бы рекомендовал повторить запрос, чтобы посмотреть, как он выглядит.
И, пожалуйста, либо избегайте данных POST перед тем, как использовать их в запросе базы данных, либо, скорее, используйте подготовленные заявления!