#php #sql #arrays
#php #sql #массивы
Вопрос:
у меня есть скрипт, который берет данные из базы данных и отображает их на странице.
Он сортирует строки по идентификационному номеру и отображает их в этом порядке
вот сценарий
// get the info from the db
$sql = "SELECT showtime, html FROM showfeed ORDER BY showtime ASC LIMIT $offset, $rowsperpage";
$result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR);
// while there are rows to be fetched...
while ($list = mysql_fetch_assoc($result))
{
// echo data
echo $list['html'] . "<hr />";
} // end while
что я хочу сделать, так это отфильтровать эти данные так, чтобы, если идентификационный номер строки меньше заданного числа, он не отображался. И если оно больше определенного числа, оно будет отображаться нормально.
Комментарии:
1. О каком идентификаторе вы говорите? Если вам нужен идентификатор для каждой вставки в базу данных, используйте первичный ключ auto_incremented .
2. Не могли бы вы, пожалуйста, четко сформулировать, чего вы хотите? Меньше определенного числа? И больше определенного числа? Тот же номер?
3. В их базе данных уже есть идентификаторы, что не проблема.
Ответ №1:
Сделайте это в запросе к базе данных.
SELECT ... WHERE id > $certainNumber ...
Если по какой-либо причине вы хотите сделать это на PHP:
while ($list = mysql_fetch_assoc($result)) {
if ($list['id'] < $certainNumber) {
continue;
}
...
}
Ответ №2:
Предполагая, что ID — это поле в вашей таблице:
$sql = "SELECT id, showtime, html FROM showfeed ORDER BY showtime ASC LIMIT $offset, $rowsperpage";
$result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR);
// while there are rows to be fetched...
$targetID = 120;
while ($list = mysql_fetch_assoc($result))
{
// echo data
if ($list['id'] < $targetID) continue;
echo $list['html'] . "<hr />";
} // end while
Однако, если это сработает для вас, то, вероятно, лучше изменить ваш запрос на
$sql = "SELECT showtime, html FROM showfeed WHERE id > 120 ORDER BY showtime ASC LIMIT $offset, $rowsperpage";
Комментарии:
1. Хорошо, что это работает, я использовал второй скрипт. Спасибо всем остальным!
Ответ №3:
Фильтровать sql-запрос (слово «массив» здесь не подходит).
вы должны фильтровать запрос с помощью sql вместо вашего приложения Что-то вроде этого
SELECT showtime, html FROM showfeed WHERE ID > ?? AND ID < ?? ORDER BY showtime ASC