Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ограничена ли частота обращений к базе даных?
 
 автор: coloboc66   (01.08.2016 в 08:46)   письмо автору
 
 

То есть, корректно ли будет написать обращение к базе в цикле - для каждой строки выводимой на страницу таблицы формировать запрос к базе? Или так делать нельзя?
Прошу не обзывать меня дебилом и говорить, что в таблицу записываются результаты разбора массива, доставаемого по из базы по одному запросу. Это я знаю.

  Ответить  
 
 автор: KPETuH   (01.08.2016 в 10:08)   письмо автору
 
   для: coloboc66   (01.08.2016 в 08:46)
 

А зачем?

  Ответить  
 
 автор: coloboc66   (01.08.2016 в 11:00)   письмо автору
 
   для: KPETuH   (01.08.2016 в 10:08)
 

В базе аукциона есть таблица лотов lots с полями lot_id, title, first_price
И есть таблица ставок orders с полями lot_id, auc_id, username, last_price, date
Так вот при просмотре лотов аукциона нужно из таблицы лотов вытащить строки для каждого лота, и к каждой строке с лотом добавить поля из таблицы orders (username, last_price и количество ставок для каждого лота).
Как сформировать такой запрос, сообразить не могу...:(
Строки из таблицы лотов вытаскиваю запросом:
$query = "select * from lots where auc_id='$auc_id'";
Получаю массив и разбираю его в строки таблицы на страничке.
Но не знаю, как к этим строкам добавить поля по запросу из таблицы ставок, да ещё и подсчитать количество ставок по каждому лоту.

  Ответить  
 
 автор: KPETuH   (01.08.2016 в 11:28)   письмо автору
 
   для: coloboc66   (01.08.2016 в 11:00)
 

Что-то типа такого?
SELECT 
`lots`.`lot_id`, 
`lots`.`title`, 
`lots`.`first_price`,
`orders`.`username`,
`orders`.`last_price`
FROM `lots`
JOIN `orders` ON `orders`.`lot_id`=`lots`.`lot_id`
WHERE `lots`.`auc_id`={$auc_id};

  Ответить  
 
 автор: coloboc66   (01.08.2016 в 14:18)   письмо автору
 
   для: KPETuH   (01.08.2016 в 11:28)
 

Наверное тут что-то не так. Возможно, я вас ненамеренно ввёл в заблуждение относительно содержания таблиц в БД.
Поля в таблице lots:
lot_id, auc_id, title, first_price
Поля в таблице orders:
order_id, lot_id, username, last_price, date
Нужно в каждую строку на странице вписать строки из таблицы lots
(Это я делаю запросом $query = "select * from lots where auc_id='$auc_id'";)
И для каждой из вписанных строк с lot_id:
достать из таблицы orders самую свежую по дате запись для этого lot_id и дописать к строке (см.выше) last_price, username и количество всех записей для этого lot_id.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования