борясь с моим назначением веб-дизайна. Я слежу за учебным пособием, чтобы добавить функцию поиска для своего сайта, но я получаю следующую ошибку:
Предупреждение: mysqli_num_rows () ожидает, что параметр 1 будет mysqli_result, boolean задан в /search.php в строке 31
строка 31 является (или была)
<pre>if(mysqli_num_rows($results) >= 1)</pre>
Это была оригинальная ошибка. в соответствии с инструкциями в комментариях, я с тех пор пересмотрел код:
<pre> <?php //capture search term and remove spaces at its both ends if the is any $searchTerm = trim($_GET['keyword']); //check whether the name parsed is empty if($searchTerm == "") { echo "Enter the name/brand of what you're looking for."; exit(); } //database connection info $host = "localhost"; $db_name = "sookehhh_shopsy_db"; $username = "sookehhh_shopsy"; $password = "xxxx"; //connecting to server and creating link to database $link = mysqli_connect($host, $username, $password, $db_name) or die('Could not connect: ' . mysqli_connect_error()); //MYSQL search statement $query = "SELECT * FROM sookehhh_shopsy_db WHERE name LIKE '%" . mysqli_real_escape_string($link, $searchTerm) . "%'"; // original query$query = "SELECT * FROM sookehhh_shopsy_db WHERE name LIKE '%$searchTerm%'"; $results = mysqli_query($link, $query); //added suggestion below - not sure if correct place? if (!$result) { die(mysqli_error($link)); } /* check whethere there were matching records in the table by counting the number of results returned */ if(mysqli_num_rows($results) >= 1) { $output = ""; while($row = mysqli_fetch_array($results)) { $output .= "Product Name: " . $row['name'] . "<br />"; $output .= "Price: " . $row['price'] . "<br />"; } echo $output; } else echo "There was no matching record for that item " . $searchTerm; ?> </pre>
внесли необходимые изменения и обновили еще раз –
теперь единственное сообщение об ошибке, которое я получаю здесь, – «Таблица» sookehhh_shopsy_db.sookehhh_shopsy_db «не существует»
Я предполагаю, что мне нужно изменить имя пользователя, возможно, потому, что это слишком похоже?
Anywho, спасибо за вашу помощь до сих пор, и я извиняюсь за свое полное невежество.
Я пытался научить себя, но, к сожалению, время – это роскошь, которой я просто не располагаю в данный момент.
Проблема заключается в том, что ваш запрос возвратил false
значение. В вашем запросе была ошибка. После вашего запроса вы можете сделать следующее:
if (!$result) { die(mysqli_error($link)); }
Или вы можете объединить его с вашим запросом:
$results = mysqli_query($link, $query) or die(mysqli_error($link));
Это выведет вашу ошибку.
Также … вам нужно санировать ваш вход. Вы не можете просто ввести пользовательский ввод и поместить его в запрос. Попробуй это:
$query = "SELECT * FROM shopsy_db WHERE name LIKE '%" . mysqli_real_escape_string($link, $searchTerm) . "%'";
В ответ на: Таблица 'sookehhh_shopsy_db.sookehhh_shopsy_db' не существует
Вы уверены, что имя таблицы sookehhh_shopsy_db? может быть, это действительно как пользователи или что-то в этом роде.