Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод данных из БД

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Вывод строк, которые соответствуют условию
McLotos
Отправлено: 10 Марта, 2011 - 13:59:47
Post Id



Гость


Покинул форум
Сообщений всего: 67
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




В БД есть две таблицы users и Calls.
Подскажите как сделать так чтобы вошёдший пользователь получил список строк из таблицы Calls с checkbox'ами. Просто вывести таблицу я могу, но мне нужно выводить только те строки, где phone_number такой-же как и в анкете пользователя, и чтобы пользователь мог отмечать там некоторые строки и получать сумму отмеченных строк, ну к примеру как это делается обычно в интернет-магазинах. Что-то до меня никак не доходит.
Я в php полный чайник, если можно поподробнее

(Отредактировано автором: 10 Марта, 2011 - 14:00:58)



-----
ЯГотовПоверить,ЧтоБываютСлучаи,КогдаУдалениеЗубовАвтогеномЧерезЗаднийПроходЯвляетсяРациональным.
 
 Top
EuGen Администратор
Отправлено: 10 Марта, 2011 - 14:04:43
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Запрос, судя по Вашему описанию, будет такой:
SELECT Calls.phone FROM Calls LEFT JOIN users ON Calls.phone=users.phone
(поля в выборку добавите по необходимости)
А по поводу checkbox - поясните, в такой формулировке суть проблемы не ясна.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
JustUserR
Отправлено: 10 Марта, 2011 - 16:13:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




McLotos пишет:
Чтобы пользователь мог отмечать там некоторые строки и получать сумму отмеченных строк
В качестве возможного варианта осуществления предполагаемой задачи, допустимо использрвание специализированного управляющего JS-скрипта на целевой пользовательской web-странице, производящего анализ выбранных информационных полей и обеспечивающего генерацию массива ассоцированных идентификаторов, для которых возможно осуществление последюущей передачи в уровне строкового трактования


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
McLotos
Отправлено: 11 Марта, 2011 - 05:15:53
Post Id



Гость


Покинул форум
Сообщений всего: 67
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Следуя логике EuGen'а попробовал написать вот так
PHP:
скопировать код в буфер обмена
  1. $result=mysql_query("SELECT * FROM Calls LEFT JOIN users ON Calls.phone_number=users.phone_number");
  2. $myrow=mysql_fetch_array($result);
  3. echo "$myrow";

Скрипт надо мной прикололся, вывел мне слово Array =)
А как из сессии вытянуть номер пользователя и на основе этих данных вывести список?


-----
ЯГотовПоверить,ЧтоБываютСлучаи,КогдаУдалениеЗубовАвтогеномЧерезЗаднийПроходЯвляетсяРациональным.
 
 Top
Okula
Отправлено: 11 Марта, 2011 - 07:14:32
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




McLotos, функция mysql_fetch_array() и возвращает масив, а чтобы его просмотреть воспользуйтесь функцией print_r() или пролистайье его в цикле.
 
 Top
McLotos
Отправлено: 11 Марта, 2011 - 07:16:37
Post Id



Гость


Покинул форум
Сообщений всего: 67
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Okula пишет:
McLotos, функция mysql_fetch_array() и возвращает масив, а чтобы его просмотреть воспользуйтесь функцией print_r() или пролистайье его в цикле.

Ну я в принципе так и сделал
PHP:
скопировать код в буфер обмена
  1. echo "$tcalls";//показать заголовки колонок таблицы
  2. $result = mysql_query("SELECT * FROM Calls WHERE phone_number='$phone_number' ORDER BY phone_number"); //получаем данные о пользователе, чтобы получить статистику его звонков
  3. $myrow = mysql_fetch_array($result);
  4. do {printf("<tr>
  5.                   <td>%s</td>
  6.                   <td>%s</td>
  7.                   <td>%s</td>
  8.                   <td>%s</td>
  9.                   <td>%s</td>
  10.                   <td>%s</td>
  11.                   <td>%s</td>
  12.                   <td>%s</td>
  13.                   <td>%s</td>
  14.                   <td>%s</td>
  15.                   <td>%s</td>
  16.                   ",$myrow['phone_number'],$myrow['date_of_call'],$myrow['time_of_call'],$myrow['duration'],$myrow['cost'],$myrow['recipient'],$myrow['type'],$myrow['description'],$myrow['connection_type'],$myrow['volume'],$myrow['rouming']);
  17. }
  18. while($myrow = mysql_fetch_array($result));
  19.            echo "</tr>
  20.           </table><br>";

Но теперь выяснилось что у меня в сессии кроме ID ничего не хранится?! Как сделать чтобы в сессию записывались все данные пользователя?

(Отредактировано автором: 11 Марта, 2011 - 07:17:53)



-----
ЯГотовПоверить,ЧтоБываютСлучаи,КогдаУдалениеЗубовАвтогеномЧерезЗаднийПроходЯвляетсяРациональным.
 
 Top
EuGen Администратор
Отправлено: 11 Марта, 2011 - 09:14:57
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




1 - не используйте do..while в этой ситуации, так как он выполняется всегда хотя бы 1 раз, а записей в БД может и не быть
2 - Не очень понятно, зачем в сессии хранить что-то еще. Вы же можете каждый раз динамически генерировать нужные данные. Разве нет?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
McLotos
Отправлено: 11 Марта, 2011 - 09:42:29
Post Id



Гость


Покинул форум
Сообщений всего: 67
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




EuGen пишет:
1 - не используйте do..while в этой ситуации, так как он выполняется всегда хотя бы 1 раз, а записей в БД может и не быть
2 - Не очень понятно, зачем в сессии хранить что-то еще. Вы же можете каждый раз динамически генерировать нужные данные. Разве нет?

Не совсем так, мне нужно чтобы в сессии хранился ещё и номер телефона пользователя, который зашёл, т.е. он по идее там и хранится, но почему-то на момент данного запроса вся информация о пользователе теряется, остаётся только его id, от которого, если честно мало толка в данной ситуации.
Цели:
1.Сделать специальную страницу для каждого пользователя (My Page). ГОТОВО
2.Пользователь должен войдя на свою персональную страницу получить из БД список всех строк, где в колонке phone_number стоит именно его номер т.е.
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM 'Calls' WHERE phone_number='$phone_number'");

3.Пользователь видит список с Checkbox'ами, чтобы иметь возможность отметить некоторые строки.
4.Из отмеченных пользователем строк берутся данные (колонка recipient и колонка cost)
5.Cost должен выводиться в отдельную переменную и суммироваться, recipient нужен будет для отображения отмеченных строк администратору, когда тот войдёт на страницу пользователя.
Но это всё патом, сейчас нужно чтобы хотябы вывод данных из таблицы заработал

Пустых строк быть не может. В таблице Call около 40000 строк и пользователь, который зашёл, в любом случае совершил хотябы 1 звонок в течение прошедшего месяца, поэтому данные об этом звонке есть в БД.
Ну так как мне выводить данные?! Я уже все логичные варианты перепробовал, уже сижу тут изобретаю.

(Отредактировано автором: 11 Марта, 2011 - 11:48:17)



-----
ЯГотовПоверить,ЧтоБываютСлучаи,КогдаУдалениеЗубовАвтогеномЧерезЗаднийПроходЯвляетсяРациональным.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB