Member 13637584 Ответов: 1

Как вы можете ограничить то, что вы отображаете MYSQL


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

То, что я пытаюсь сделать, - это отображать только 3 рецепта за один раз. Я попытался сделать SQL-подсчет для подсчета строк, но, похоже, это не работает, только количество строк, которое я могу получить, относится к одному элементу, например, один элемент имеет количество строк 3. Но они мне нужны для всех вещей.
Я тоже попробовал ограничить sql и ничего не вышло

Есть ли более простой способ сделать это, чем приведенный ниже? используя цикл while, который проходит через все ключевые слова и дисплеи, однако мне нужно что - то еще-мне нужно отобразить 3 элемента, а затем позже....если что-то произойдет, отобразите еще 1??

Что я уже пробовал:

    if ($$meal == '1') //whether the user selected the keyword. (1=True)
        {
        $dbQuery = $conn->prepare("select * from Meal where Category='meal' AND Keyword = '" . ($$Keyword) . "'"); //get all recipes where keyword = word user selected
        $dbQuery->execute();
	

    while ($dbRow=$dbQuery->fetch(PDO::FETCH_ASSOC)) 
        {
            echo "//all infromation on this";
		}
				echo $dbQuery->rowCount()."\n";
    } 
}

Member 13637584

Спасибо за эти ссылки.

1 Ответов

Рейтинг:
0

Wendelius

Если вы имеете в виду, что хотите ограничить количество строк до трех, например, то вы можете использовать ключевое слово LIMIT. Взгляните на это PHP ограничивает выбор данных из MySQL[^]

Опять же, если вы имеете в виду, что хотите использовать 3 ключевых слова одновременно, то вы можете использовать оператор IN, например

SELECT * 
FROM Meal 
WHERE Category='meal' 
AND Keyword IN ('keyword1','keyword2','keyword3')


Member 13637584

Привет, я попробовал предел 5 с помощью SQL-оператора, но он, похоже, не изменил его? Есть ли способ проверить это или что-то еще, почему это не так?

Wendelius

Можете ли вы опубликовать примерные данные и пример того, каков ожидаемый результат?

Wendelius

Основываясь на вашем примере, не рассчитывайте счет. Это даст вам только одну строку, общее количество строк, удовлетворяющих условиям.
Если вы хотите получить первые три строки, используйте что-то вроде

Выберите rID, column2, column3, ...
Из рецептов
Где категория = "завтрак"
Предел 3

Если вам нужно получить строки в каком-то определенном порядке, добавьте предложение ORDER BY