mysql — Не функционирующий php подстановочный поисковый запрос

Я пытаюсь создать веб-сайт, но мой шаблонный поисковый запрос продолжает вызывать у меня проблемы.

Это не показывает никаких ошибок, но результат кажется пустым.
Вы можете посмотреть его в прямом эфире здесь на этом сайте: 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))
{
?>

Извините за абсолютную стену кода.

-2

Решение

Вам нужно исправить свой код. Вы получаете результат в $ search_results, а затем проверяете его в $ result.

$search_results=mysqli_query($con, $search_query);
if($result == FALSE) { ...

Должно быть

$search_results=mysqli_query($con, $search_query);
if($search_results == FALSE) {...
1

Другие решения

Сначала примените имя к своей кнопке отправки.

<input name="submit" type="submit" value=">>"/>

Вторая проверка, чтобы видеть, установлено ли это (щелкнуло) тогда, обрабатывает форму.

<?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'];
}
?>
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector