Ошибка PHP-запроса - PullRequest
       4

Ошибка PHP-запроса

0 голосов
/ 27 апреля 2011

Я использую LIKE для поиска, я пробую его в phpMyAdmin и возвращаю результат, но когда я использую его в php, он возвращает пустой результат.

$search = "ip";
$start = 0;
$query = "SELECT * FROM product WHERE product_name LIKE '%$search%' LIMIT $start,30";
$result = mysql_query($query);
if(empty($result))
    $nrows = 0;
else
    $nrows = mysql_num_rows($result);

Он вернет результат, когда я использую phpMyAdminчтобы выполнить этот запрос, но когда я использую его в php, он возвращает пустое значение.

Обновление:

Извините, ребята,

Я только что узналПроблема в том, что я не подключил базу данных.В любом случае, спасибо за помощь.

Ответы [ 6 ]

2 голосов
/ 04 октября 2016

Попробуйте это

 $query = "SELECT * FROM `product` WHERE `product_name` LIKE '%".$search."%' LIMIT 0, 30";
0 голосов
/ 04 октября 2016
$search = "ip";
$start = '0';
$query = "SELECT * FROM product WHERE product_name LIKE '%".$search."%' LIMIT $start,30";
$result = mysql_query($query)or die(mysql_error());
if(mysql_num_rows($result) == 0){
    $nrows = 0;
} else{
    $nrows = mysql_num_rows($result);
}

//use mysql_num_rows($result) instead of empty($result) because in this situation $result is every time not empty so use inbuilt PHP function mysql_num_rows($result);
0 голосов
/ 27 апреля 2011

Вы можете напрямую использовать mysql_num_rows ()

, но здесь правильный код

$ query = "SELECT * FROM product WHERE product_name LIKE '%". $ Search. "%' LIMIT $старт, 30" ;

0 голосов
/ 27 апреля 2011
$query = "SELECT * FROM product WHERE product_name LIKE '%" . $search . "%' LIMIT " . (int) $start. ",30";
0 голосов
/ 27 апреля 2011

Я не уверен, почему это не работает, так как запрос мне кажется правильным.Я хотел бы предложить вам написать запрос таким образом

$ query = <<<SQL

 SELECT * FROM product WHERE product_name LIKE "%$search%" LIMIT $start,30

SQL;

пожалуйста, обратите внимание, чтоне должно быть пробелов или символов после SQL;

0 голосов
/ 27 апреля 2011

И если единственной целью вашего кода является получение количества продуктов с искомым именем, используйте SELECT COUNT(*) вместо mysql_num_rows() для всех ваших данных. Это уменьшит время запроса и объем данных, которые (излишне) выбираются.

...