MYSQL я могу изменить способ динамического ограничения результатов? - PullRequest
0 голосов
/ 06 апреля 2011

Вместо жесткого запроса: LIMIT 3, я бы хотел, чтобы номер LIMIT менялся каждый раз, когда я нажимаю кнопку.

Это то, что у меня так далеко:

$region=$_GET["region"];

$number=$_GET["limit"];

$con = mysql_connect('localhost') or die(mysql_error());
mysql_select_db('test') or die(mysql_error());

$sql1="SELECT size,price,member FROM buy  WHERE region= '".$region."' LIMIT = '".$number."'  ORDER BY price DESC " 

Я получаю ошибку:

Предупреждение: mysql_fetch_array () ожидает, что параметр 1 будет ресурсом

Таким образом, LIMIT пусто

Итак, у меня есть две кнопки: одна установлена ​​$ number = 3, другая установлена ​​$ number = 10, но я не знаю, как поместить ее в SQL.

Пока работает только опция WHERE region= '".$region."'.

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 06 апреля 2011

Первый - убрать кавычки вокруг номера лимита.

Во-вторых, удалите = перед номером.

Третье - переместить LIMIT после ORDER BY

Я думаю, вот и все:)

$sql1="SELECT size,price,member FROM buy  WHERE region= '".$region."' ORDER BY price DESC LIMIT ".(int) $number 
1 голос
/ 06 апреля 2011

Несколько пунктов здесь:

  • Оператор MySQL LIMIT может принимать как LIMIT, так и OFFSET, это основы, необходимые для подкачки. См. MySQL SELECT Синтаксис
  • Вы уверены, что в URL-адресе установлена ​​переменная лимита? Вы используете $ _GET ['limit'], но если его нет в URL-адресе, у него не будет значения, и это нарушит ваш запрос. Попробуйте отобразить / записать инструкцию SQL, чтобы увидеть, что происходит.
  • В идеале вы также должны очистить все переменные $ _GET и убедиться, что они действительны
...