Intereting Posts
Сколько символов @ может быть в адресе электронной почты? Как я могу извлечь конкретный фрейм из файла WMV? Можно ли читать информацию SSL в PHP с любого сайта? PHP-скрипт не запущен в браузере Как показать цену продажи или обычную цену woocommerce, если нет цены продажи Экспорт файла excel с использованием PHPExcel, работающего на моем локальном компьютере, но не работающего на реальном сервере Использование glob () для отображения изображений из каталога, в то время как echo'ing уникальное первое изображение Что эквивалентно оператору сброса ветвей («? |»), Найденному в php (pcre) в C #? WordPress get_post_meta Doctrine2 смешивает объекты YAML с ANNOTATION. Черты не работают. простой счетчик посетителей Создание многомерного массива из таблицы базы данных php password, сравнить, вернуть true или false Сохранение файла в заданный каталог с использованием FPDF php – обнаружит, отправлено ли электронное письмо

Выбор большого количества строк из таблицы базы данных с помощью MySQL

У меня есть таблица с такими атрибутами:

likes(id, message, ip, time) 

id является первичным ключом и автоматически увеличивается. Whet, который я хочу сделать, это выбрать 30 строк из этой таблицы на основе идентификатора, который я предоставляю.

Я могу создать случайный массив всех идентификаторов, которые я хочу извлечь из таблицы, теперь мне просто нужно это делать. Мой обычный SQL-запрос:

 SELECT message FROM `likes` WHERE id=$id LIMIT 1 

Но мне нужно выбрать 30 строк. Есть два способа сделать это, я могу либо использовать цикл FOR с 30 запросами, либо объединить все это в один запрос и одновременно захватить их все. Очевидно, я бы хотел сделать последнее.

Может ли кто-нибудь помочь мне в SQL-запросе использовать, чтобы захватить несколько строк из моей таблицы базы данных сразу? И, возможно, пример того, как я буду разбирать их в массив для легкого извлечения?

Большое спасибо, спасибо.

Вы можете использовать оператор IN , поэтому это будет примерно так:

 SELECT message FROM likes WHERE id IN (1, 2, 3, 4, 5, ...) 
 $ids = array(1,2,3,4,5,6,7,8,9); //or however many $query = "SELECT * FROM `likes` WHERE `id` IN (".implode(', ', $ids).")"; $res = mysql_query($query); $results = array(); while($tmp = mysql_fetch_array($res)) { $results[$tmp['id'] = $tmp; } 

Дает вам массив, $ results, отсортированный по ключу ['id'], причем каждый из них будет массивом для каждого ключа ответа – «id», «message», «ip», «time». Так, например:

 for($results as $key => $val) { echo "${val['ip']} posted {$var['message']} on {$val['time']} <br/>"; }