Я пытаюсь создать веб-сайт, но мой поисковый запрос подстановки продолжает давать мне проблемы.
Он не показывает ошибок, но результат выглядит пустым. Вы можете посмотреть его прямо здесь, на этом сайте: luke.dx.am/Search.php
Это мой код для панели поиска.
<!-- Custom Search --> <form action="Search.php" method="post"> <input type="text" name="search" placeholder="Search"/> <input type="submit" value=">>"/> </form>
Вот мой код, который выполняет поисковый запрос.
<?php $output = ''; $searchq = ''; $search_query = ''; $search_results = ''; $result = ''; if(isset($_POST['search'])) { $searchq = $_POST['search']; $searchq = preg_replace("#[^0-9a-z]#i","",$searchq); //Query for the search engine $search_query = "SELECT Item.Item, Category.Category, Colour.Colour, Description.Description, products.Price, products.Stock, products.date, Sexs.Sex, Sizes.Size, Designers.Designer, Designers.Email, Designers.Phone, Designers.Address, Image.Image FROM products INNER JOIN Category ON Category.CatagoryCode=products.CatagoryCode INNER JOIN Colours ON Colour.ColourCode=products.CatagoryCode INNER JOIN Description ON Description.DescriptionCode=products.DescriptionCode INNER JOIN Designers ON Designers.DesignerCode=products.DescriptionCode INNER JOIN Sexs ON Sexs.SexCode=products.SexCode INNER JOIN Image ON Image.ImageCode=products.ItemCode INNER JOIN Item ON Item.ItemCode=products.ItemCode INNER JOIN Sizes ON Sizes.SizeCode=products.SizeCode WHERE Item.Item LIKE '%$searchq%' OR Category.Category LIKE '%$searchq%' OR Colour.Colour LIKE '%$searchq%' OR Description.Description LIKE '%$searchq%' OR Sexs.Sex LIKE '%$searchq%' OR Sizes.Size LIKE '%$searchq%' OR Designers.Designer LIKE '%$searchq%'"; $search_results=mysqli_query($con, $search_query); if($result == FALSE) { ?><p>Error</p><?php die(mysql_error()); // TODO: better error handling }else{ //Runs in a while loop while($output=mysqli_fetch_array($result)) { ?>
в<?php $output = ''; $searchq = ''; $search_query = ''; $search_results = ''; $result = ''; if(isset($_POST['search'])) { $searchq = $_POST['search']; $searchq = preg_replace("#[^0-9a-z]#i","",$searchq); //Query for the search engine $search_query = "SELECT Item.Item, Category.Category, Colour.Colour, Description.Description, products.Price, products.Stock, products.date, Sexs.Sex, Sizes.Size, Designers.Designer, Designers.Email, Designers.Phone, Designers.Address, Image.Image FROM products INNER JOIN Category ON Category.CatagoryCode=products.CatagoryCode INNER JOIN Colours ON Colour.ColourCode=products.CatagoryCode INNER JOIN Description ON Description.DescriptionCode=products.DescriptionCode INNER JOIN Designers ON Designers.DesignerCode=products.DescriptionCode INNER JOIN Sexs ON Sexs.SexCode=products.SexCode INNER JOIN Image ON Image.ImageCode=products.ItemCode INNER JOIN Item ON Item.ItemCode=products.ItemCode INNER JOIN Sizes ON Sizes.SizeCode=products.SizeCode WHERE Item.Item LIKE '%$searchq%' OR Category.Category LIKE '%$searchq%' OR Colour.Colour LIKE '%$searchq%' OR Description.Description LIKE '%$searchq%' OR Sexs.Sex LIKE '%$searchq%' OR Sizes.Size LIKE '%$searchq%' OR Designers.Designer LIKE '%$searchq%'"; $search_results=mysqli_query($con, $search_query); if($result == FALSE) { ?><p>Error</p><?php die(mysql_error()); // TODO: better error handling }else{ //Runs in a while loop while($output=mysqli_fetch_array($result)) { ?>
Извините за абсолютную стену кода.
Вам нужно исправить свой код. Вы получаете результат в $ search_results, а затем проверяете его в $ result.
$search_results=mysqli_query($con, $search_query); if($result == FALSE) { ...
Должно быть
$search_results=mysqli_query($con, $search_query); if($search_results == FALSE) {...
Сначала примените имя к своей кнопке отправки.
<input name="submit" type="submit" value=">>"/>
Вторая проверка, чтобы проверить, если он iset (щелкнул), затем обработайте форму.
<?php $search_results=mysqli_query($con, $search_query); if(isset($_POST['submit'])){
Проверить результаты, подобные этому, не нужно использовать $ result == FALSE. ! это как сказать не (если не результаты)
if(!$search_results){ ?><p>Error</p><?php die(mysql_error()); // TODO: better error handling }else{
// Выполняется в цикле while
while($output= $search_results->fetch_assoc()) { $outputA = $output['tableNamea']; $outputB = $output['TanbeNameb']; }
Все это
<?php $search_results=mysqli_query($con, $search_query); if(isset($_POST['submit'])){ if(!$search_results){ ?><p>Error</p><?php die(mysql_error()); // TODO: better error handling }else{ while($output= $search_results->fetch_assoc()) { $outputA = $output['tableNamea']; $outputB = $output['TanbeNameb']; } ?>