Вывод информации из БД

Любой треп, каким-либо боком касающийся Интернет технологий...

Модератор: EGORR

Вывод информации из БД

Сообщение McLotos » 14 июн 2011, 15:01

Доброго времени суток, обитатели форума!
jQuery знаю только из книжки Хольцнера(Практическое применение), но очень нужно сделать некоторые вещи, которые я пока не совсем понимаю. Есть страница на php. Туда выводится список из БД через цикл по определённому условию. Нужно сделать 3 вещи:
1. Отобрать уникальные номера из таблицы в БД и показать в виде раздвигающегося списка (список сделал через jQuery jExpand plugin), список формируется через цикл, в котором вертится Select distinct recipient from Calls
2. При клике на один номер он раскрывается и вытягивает все даные по этому номеру
получается что-то типа
recipient1
recipient2
recipient2.call1
recipient2.call2
recipient2.call3
recipient3
У меня не получается это сделать =(
3. Все они должны быть с checkbox'ами. Т.е. можно раскрыть и отметить каждую строку, а можно не раскрывать и от метить всю группу.
Если отметить какой-нибудь чекбокс, то значение поля personal в таблице должно поменяться с 0 на 1.
Подскажите какие-нибудь плагины как это сделать, очень нужно. Уже весь инет облазил, все форумы исписал. Безрезультатно.
Я Готов Поверить, Что Бывают Случаи, Когда Удаление Зубов Автогеном Через Задний Проход Является Рациональным.
McLotos
 
Сообщений: 24
Зарегистрирован: 13 июн 2011, 11:14

Re: Вывод информации из БД

Сообщение EGORR » 14 июн 2011, 18:54

McLotos писал(а):Подскажите какие-нибудь плагины как это сделать, очень нужно. Уже весь инет облазил, все форумы исписал. Безрезультатно.

Ну какие плагины? Все это элементарно делается головой и руками!
Напрягает следующее...
список формируется через цикл, в котором вертится Select distinct recipient from Calls

Не знаю подробностей, но точно знаю, что запросы в цикле - варворство! SQL - великий, дружелюбнейший язык. И позволяет делать выборку данных без изнасилования сервера.
При клике на один номер он раскрывается и вытягивает все даные по этому номеру ... У меня не получается это сделать =(

Так что именно не получается? В цикле выборку из БД по <il></li> раскидать?
Что-то вроде...
Код: выделить все
<ul>
<li id="235" class="ul-list_plus">Иваново - Текстиль Профи
<ul class="ul-date_list">
<li id="873">18.06.2011</li>
<li id="867">22.06.2011</li>
<li id="880">02.07.2011</li>
<li id="868">06.07.2011</li>
<li id="879">16.07.2011</li>
<li id="869">20.07.2011</li>
<li id="883">27.08.2011</li>
</ul>
</li>
<li id="437" class="ul-list_plus">Москва: Новодевичий монастырь + Храм Христа Спасителя</li>
<li id="334" class="ul-list_plus">Москва: Палаты бояр Романовых в Зарядье+обзорная
<ul id="tour_dates_334" class="ul-date_list">
<li id="852">30.07.2011</li>
</ul>
</li>
</ul>

Или воспользуйтесь любым tree плагином.
Все они должны быть с checkbox'ами. Т.е. можно раскрыть и отметить каждую строку, а можно не раскрывать и от метить всю группу.
Если отметить какой-нибудь чекбокс, то значение поля personal в таблице должно поменяться с 0 на 1
.
Тоже не понятно в чем загвоздка... Расставляем чекбоксы, ловим на нем событие, отправляем команду изменить значение.
Код: выделить все
UPDATE `personalTable`  SET `personal` = !`personal`

если bool
Код: выделить все
UPDATE `personalTable`
SET    `personal`                   = IF( `personalTable`.`personal` =0, 1, 0 )

если ENUM
Life is very short, and there's no time
For fussing and fighting, my friend...
Аватар пользователя
EGORR
Модератор
 
Сообщений: 720
Зарегистрирован: 22 янв 2010, 01:44
Откуда: Ярославль

Re: Вывод информации из БД

Сообщение tuareg » 15 июн 2011, 06:57

Вы бы пример выложили куда-нибудь, чтобы можно посмотреть, ну и код желательно вместе с php
tuareg
Модератор
 
Сообщений: 359
Зарегистрирован: 24 ноя 2010, 00:44

Re: Вывод информации из БД

Сообщение McLotos » 15 июн 2011, 08:02

Спасибо за четкие и полезные ответы, теперь я хотябы чуть-чуть понимаю в каком направлении копать нужно, а чтобы было Вам понятнее о чем говорю я вот фрагмент кода php, который формирует эту таблицу. Как я уже упоминал выше сначала вытягиваются уникальные получатели звонков
Код: выделить все
$query="SELECT distinct recipient FROM Calls WHERE phone_number=$phone_number  AND Calls.date_of_call
BETWEEN DATE_SUB(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), INTERVAL DAY(CURDATE())-1 DAY)
AND DATE_SUB(CURDATE(), INTERVAL DAY(CURDATE()) DAY) and Calls.Cost>0 order by recipient";

Затем вытягиваются все данные из таблицы, т.е. всё её содержимое
Код: выделить все
$query="SELECT * FROM Calls WHERE phone_number=$phone_number  AND Calls.date_of_call
BETWEEN DATE_SUB(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), INTERVAL DAY(CURDATE())-1 DAY)
AND DATE_SUB(CURDATE(), INTERVAL DAY(CURDATE()) DAY) and Calls.Cost>0 order by Cost ";

И всё выводится пользователю
Код: выделить все
if($myrow['personal']==1)
{$o[]="<td class='check'><input type=checkbox name=\"call_select[]\" checked data-on=\"Personal\" data-off=\"Business\" value=\"$value\" ></td>";}
             else
{$o[]="<td class='check'><input type=checkbox name=\"call_select[]\" data-on=\"Personal\" data-off=\"Business\"  value=\"$value\" ></td>";}
             $o[]="<td>{$myrow['cost']}</td>";
             $o[]="<td>{$myrow['recipient']}</td>";
             $o[]="<td>{$myrow['date_of_call']}</td>";
             $o[]="<td>{$myrow['time_of_call']}</td>";
             $o[]="<td>{$myrow['duration']}</td>";
             $o[]="<td>{$myrow['connection_type']}</td>";
             $o[]="<td>{$myrow['volume']}</td>";
             $o[]="<td>{$myrow['rouming']}</td>";
             $o[]="</thead></tr>";       }
       $o[]="</tbody></table>";
       $o[]="<input type=\"submit\" name=\"set_personal\" value=\"RESULT\">"; //вот от этой кнопки нужно избавиться
       $o[]="</form><br>";
       echo implode('',$o);

Сама кнопка делает вот что
Код: выделить все
if(isset($_POST['set_personal']))
       {
           $q="insert into stats (stat_phone,stat_user,stat_month,stat_day,stat_unit,stat_total,stat_personal,stat_rouming, stat_VAT,stat_total_with_VAT,stat_limit) values ('{$_SESSION['phone_number']}','{$_SESSION['id']}','$month','$day','{$_SESSION['business_unit']}','$total','$total_personal','$total_rouming','$stat_VAT','$stat_total_with_VAT','$limit')  ON duplicate KEY UPDATE stat_total='$total',stat_personal='$total_personal',stat_rouming='$total_rouming',stat_limit='$limit'";
Я Готов Поверить, Что Бывают Случаи, Когда Удаление Зубов Автогеном Через Задний Проход Является Рациональным.
McLotos
 
Сообщений: 24
Зарегистрирован: 13 июн 2011, 11:14

Re: Вывод информации из БД

Сообщение tuareg » 15 июн 2011, 08:57

Здравствуйте. Запросы SQL надо совместить и одним запросом все выдергивать, как писал EGORR запросы в цикле очень плохо. Ну и в принципе все.
P.S
Код: выделить все
$q="insert into stats (stat_phone,stat_user,stat_month,stat_day,stat_unit,stat_total,stat_personal,stat_rouming, stat_VAT,stat_total_with_VAT,stat_limit) values ('{$_SESSION['phone_number']}','{$_SESSION['id']}','$month','$day','{$_SESSION['business_unit']}','$total','$total_personal','$total_rouming','$stat_VAT','$stat_total_with_VAT','$limit')  ON duplicate KEY UPDATE stat_total='$total',stat_personal='$total_personal',stat_rouming='$total_rouming',stat_limit='$limit'";

я бы сделал так
Код: выделить все
$q="insert into stats (stat_phone,stat_user,stat_month,stat_day,stat_unit,stat_total,stat_personal,stat_rouming, stat_VAT,stat_total_with_VAT,stat_limit) values ('{$_SESSION['phone_number']}','{$_SESSION['id']}','$month','$day','{$_SESSION['business_unit']}','$total','$total_personal','$total_rouming','$stat_VAT','$stat_total_with_VAT','$limit')  ON duplicate KEY UPDATE stat_total=VALUE(stat_total) ....и так далее по аналогии'";
tuareg
Модератор
 
Сообщений: 359
Зарегистрирован: 24 ноя 2010, 00:44

Re: Вывод информации из БД

Сообщение zandroid » 15 июн 2011, 09:16

Тема мало касается jQuery, поэтому по правилам форума отправляю её в курилку.
Аватар пользователя
zandroid
Модератор
 
Сообщений: 1164
Зарегистрирован: 21 янв 2010, 22:16
Откуда: Нижний Новгород

Re: Вывод информации из БД

Сообщение McLotos » 15 июн 2011, 11:50

Суть в чём, проект написан на php и идеально работает просто хочу перевести его на jQuery чтобы избавиться от кнопок и упростить вывод информации. Первоначально планировался AJAX просто мне сказали что на jQuery будет проще всё это организовать. Может у кого есть готовые скрипты, которые можно переделать?
Я Готов Поверить, Что Бывают Случаи, Когда Удаление Зубов Автогеном Через Задний Проход Является Рациональным.
McLotos
 
Сообщений: 24
Зарегистрирован: 13 июн 2011, 11:14

Re: Вывод информации из БД

Сообщение Gennady » 15 июн 2011, 12:16

McLotos писал(а):... проект написан на php и идеально работает просто хочу перевести его на jQuery ...

Вы отдаете себе отчет в том, что php - это язык программирования серверных сценариев, а jQuery (в частности) и JavaScript (в общем) - предназначены для программирования на стороне клиента? Просто очень странно звучит: "хочу проект, написанный на PHP, перевести на jQuery".
Долог путь поучения, короток и успешен путь примеров (Сенека).
I'm a member of jQuery Meetups. jQuery users unite! Connect with other jQuery users... Присоединиться к jQuery Russia.
Аватар пользователя
Gennady
Администратор
 
Сообщений: 1886
Зарегистрирован: 14 янв 2010, 14:36
Откуда: Москва

Re: Вывод информации из БД

Сообщение EGORR » 15 июн 2011, 12:58

McLotos писал(а):Суть в чём, проект написан на php и идеально работает просто хочу перевести его на jQuery чтобы избавиться от кнопок и упростить вывод информации. Первоначально планировался AJAX просто мне сказали что на jQuery будет проще всё это организовать. Может у кого есть готовые скрипты, которые можно переделать?

McLotos, ну и каша у вас в голове! Без обид...
2tuareg
Не учите новичка плохому! НИКОГДА НЕЛЬЗЯ совать в запрос необработанные данные, тем паче взятые из $_COOKIE или $_SESSION!
Life is very short, and there's no time
For fussing and fighting, my friend...
Аватар пользователя
EGORR
Модератор
 
Сообщений: 720
Зарегистрирован: 22 янв 2010, 01:44
Откуда: Ярославль

Re: Вывод информации из БД

Сообщение tuareg » 15 июн 2011, 13:09

EGORR писал(а):2tuareg
Не учите новичка плохому! НИКОГДА НЕЛЬЗЯ совать в запрос необработанные данные, тем паче взятые из $_COOKIE или $_SESSION!

Я, конечно, извиняюсь, но я просто убрал, использование переменной $total. "KEY UPDATE stat_total='$total' " и заменил на stat_total=VALUE(stat_total).
VALUE переменная SQL для данного запроса. А как и где обрабатывается $total я не знаю.
tuareg
Модератор
 
Сообщений: 359
Зарегистрирован: 24 ноя 2010, 00:44

След.

Вернуться в Курилка

Кто сейчас на форуме

Сейчас этот форум просматривают: Google [Bot] и гости: 2