2016-10-25 3 views
1

Привет ребята У меня есть проблемы с MySQL, как и команды предела при использовании вместе они возвращают 0 нуль Я попробовал это в моем PHP, то я иду, чтобы проверить его в PHPMyAdmin я получаю тот же результат, вот кодКак не работает с лимитом?

//mysql 

SELECT * FROM `items` WHERE name like '%php%' LIMIT 9,9; //this return null 
SELECT * FROM `items` WHERE name like '%php%' LIMIT 9 OFFSET 9; //this return null 

SELECT * FROM `items` WHERE name like '%php%';//this return some results 

//this is weird please help here is the php code that I use 


//php 

$db = DB::getInstance(); 

$results = $db->query("SELECT * FROM `items` WHERE name LIKE ? LIMIT {$start},9",array("'%{$search}%'"));//the query function does the bindvalue 

//$start come form $_GET['page']; 
//$start equation // $start = ($_GET['page'] * $perpage) - $perpage 
//the $perpage is always 9 cause I want to display 9 always or less 
//and for sure I check for them if they were set , empty , and escape them etc... 

$results = $results->results(); 

printItems($results);//a function that print items in a special way 
+3

«это возвращает некоторые результаты» - сколько? –

+0

Любое меньше 9, и вы не получите никаких результатов, поскольку вы установили смещение на 9. –

+0

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

ответ

0

Вы не говорите, сколько результатов вы получите, когда у вас нет предела, но я предполагаю, что он меньше 9?

LIMIT 9,9 или LIMIT 9 OFFSET 9 устанавливает предел 9 Всего результатов, но начинает искать от результата номера 9. Если результат меньше 9, вы получите 0 результатов. Я предполагаю, что вы неправильно поняли смещение части предложения предела (которые не нужны).

Удалить OFFSET -part, и вы получите результат обратно, даже с LIMIT подарком.

0

Убедитесь, что у вас достаточно данных, которые удовлетворяют LIMIT 9, 9

LIMIT 9, 9 средство извлечения строк от 10 до 18

+0

Да, я знаю, что запись, на которую я нацелен, находится в строке 10, поэтому она должна появиться. Кстати, я решил проблему, я не знаю, что это такое, я просто решил ее каким-либо образом. –

+0

Можете ли вы вставить свое решение? –

+0

$ db = DB :: getInstance(); \t \t $ sql = "SELECT * FROM items WHERE name LIKIT {$ start}, 9"; \t \t $ results = $ db-> query ($ sql, array ("% {$ search}%")); \t \t $ results = $ results-> results(); \t \t printItems ($ results); –

Смежные вопросы