Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RFpro.ru: Программирование на PHP


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

vladisslav
Статус: 6-й класс
Рейтинг: 1227
∙ повысить рейтинг »
amnick
Статус: Студент
Рейтинг: 831
∙ повысить рейтинг »
Волков Алексей aka Lupo
Статус: 5-й класс
Рейтинг: 361
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / PHP

Номер выпуска:1207
Дата выхода:31.05.2010, 17:30
Администратор рассылки:Устинов С.Е., Профессионал
Подписчиков / экспертов:374 / 154
Вопросов / ответов:1 / 1
IRC-канал по теме:#php

Вопрос № 178665: Привет экспертам, на форумах так никто и не смог помочь поэтому обращаюсь к Вам - подскажите пж как можно средствами PHP или/и MySQL решить данную задачу: Есть база покупок определенных тов...



Вопрос № 178665:

Привет экспертам, на форумах так никто и не смог помочь поэтому обращаюсь к Вам - подскажите пж как можно средствами PHP или/и MySQL решить данную задачу:
Есть база покупок определенных товаров определенными пользователями, мне нужно вывести данные из mysql базы (в ней таблицы tovars users и logs)в такую html-таблицу:

tovarid | user1| user2| user3 ... |user50
tovar1 | 1 | 0 | 1... | 5
tovar2 | 1 | 2 | 0... | 0
tovar3 | 1 | 1 | 1... | 2
... |
tovar10| 1 | 0 | 1... | 0
----------------------------------------------
itogcol 4 3 3 7 - это колво заказанных товаров
itogsum 20 50 30 60 - это сумма заказанных товаров

Пример таблицы mysql:
id id_user id_tovar col sum
1 user1 tovar1 1 10
1 user2 tovar3 0 30
1 user3 tovar2 1 45
...

Тоесть пока есть товар и пока есть пользователи вывести поля=кто, строки=чего и сколько=ячейки купил.

Я пока сделал что на каждого юзера - отдельный запрос, но учитывая что юзеров более 50 и товаров более 100, это как мимимум нагружает систему, ну и думаю не совсем правлильный способ:

$sql_tov = "SELECT * FROM tovars";
$sql_tov = mysql_query($sql_tov) or die(mysql_error());

print '<table border=1>';
print '<tr><td>Товар</td><td>Юзер1</td><td>Юзер2</td><tr>';
while ($tovars = mysql_fetch_array($sql_tov)){

$sql_col1 = "SELECT col, id_tovar FROM logs WHERE logs.id_tovar=$tovars[id] AND id_user=1";
$sql_col1 = mysql_query($sql_col1) or die(mysql_error());
$sql_col_array1 = mysql_fetch_array($sql_col1);

$sql_col2 = "SELECT col, id_tovar FROM logs WHERE logs.id_tovar=$tovars[id] AND id_user=2";
$sql_col2 = mysql_query($sql_col2) or die(mysql_error());
$sql_col_array2 = mysql_fetch_array($sql_col2);

print '<tr>';
print "<td>$tovars[name]</td>";
print "<td>$sql_col_array1[col]</td>";
print "<td>$sql_col_array2[col]</td>";
print '</tr>';

}

Тоесть надо как то связать 3 звена (юзер+товар=колво) в одной ячейке и сделать сводную таблицу, как в Excel.
Как можно решить этот момент не нагружая сервер, подскаждите пж кокретным примером sql-запроса и php-обработкой?

Отправлен: 26.05.2010, 17:10
Вопрос задал: skatet, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает Прим Палвер, 9-й класс :
Здравствуйте, skatet.

Исхожу из того, что не заказанные товары не показываем, пользователей, что не заказали ничего - тоже не показываем.

Обращение к базе данных - по объектному типу mysqli (так мне привычнее).

Приложение:

-----
если у тебя мало фигур, да и те под боем - ты наступаешь

Ответ отправил: Прим Палвер, 9-й класс
Ответ отправлен: 27.05.2010, 12:31
Номер ответа: 261708

Оценка ответа: 5
Комментарий к оценке:
Респект! Все работает как надо :)

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 261708 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.16 от 26.05.2010

    В избранное