PHP.SU

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

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

> Найдено сообщений: 24
donsanchez Отправлено: 21 Марта, 2013 - 12:13:48 • Тема: Как сгруппировать цикл массивов? • Форум: Вопросы новичков

Ответов: 3
Просмотров: 212
OrmaJever пишет:
PHP:
Разобрался,сделал по вашей подсказке, спасибо
donsanchez Отправлено: 20 Марта, 2013 - 17:35:42 • Тема: Как сгруппировать цикл массивов? • Форум: Вопросы новичков

Ответов: 3
Просмотров: 212
OrmaJever пишет:
PHP:
скопировать код в буфер обмена
  1. while($row = /*$bd->fetch_*()*/) {
  2.   if(!isset($arr[$row['ulica']][$row['dom']])) $arr[$row['ulica']][$row['dom']] = array();
  3.   $arr[$row['ulica']][$row['dom']][] = $row['kvartira'];  
  4. }

Получится $arr[1,1]=1 $arr[1,1]=2 и т.д
Короче, я понял, нужно загнать их в массив. А как потом вывести, как мне надо?
donsanchez Отправлено: 20 Марта, 2013 - 17:12:56 • Тема: Как сгруппировать цикл массивов? • Форум: Вопросы новичков

Ответов: 3
Просмотров: 212
mysql_fetch_assoc через while выдает из базы данных массивы вида:
Array ( [ulica] => 1 [dom] => 1 [kvartira] => 1 )
Array ( [ulica] => 1 [dom] => 1 [kvartira] => 2 )
Array ( [ulica] => 1 [dom] => 1 [kvartira] => 3 )
Array ( [ulica] => 1 [dom] => 2 [kvartira] => 1 )
Array ( [ulica] => 1 [dom] => 2 [kvartira] => 2 )
Array ( [ulica] => 1 [dom] => 3 [kvartira] => 1 )
Как нибудь можно их сгруппировать, чтобы вывести так:
ulica1
..dom1
....kvartira1
....kvartira2
....kvartira3
..dom2
....kvartira1
....kvartira2
....kvartira3
Запросы отсортированы по улице,дому,квартире
donsanchez Отправлено: 20 Марта, 2013 - 14:24:14 • Тема: Можно ли оптимизировать запрос? • Форум: Работа с СУБД

Ответов: 4
Просмотров: 1164
caballero пишет:
сделать представление на основе юниона с этих таблиц
как то так
тогда можно бует обойтись обним запосом

Вы может, неправильно поняли, я и так делаю запрос из всех таблиц и хотелось бы потом работать с этим ним, т.е. сделать группировки уже из полученного запроса. Наверное, так нельзя все-таки.
donsanchez Отправлено: 20 Марта, 2013 - 11:33:43 • Тема: Можно ли оптимизировать запрос? • Форум: Работа с СУБД

Ответов: 4
Просмотров: 1164
caballero пишет:
вверху кнопка sql - выдели его хотя бы както из этой каши что ты понаписал

оформил, только я ж написал - пример схематичный, это не код
donsanchez Отправлено: 20 Марта, 2013 - 11:26:17 • Тема: Можно ли оптимизировать запрос? • Форум: Работа с СУБД

Ответов: 4
Просмотров: 1164
Пример набросал схематично
Имеется четыре таблицы:
1.ULICA: id, ulica
2. DOM: idd,id_ulica,N_doma
3. KVARTIRA: idk, id_dom,N_kvartira
4. OPLATA: ido,id_kvartira,oplata
Делаю запрос:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT * FROM ULICA, DOM,KVARTIRA,OPLATA WHERE dom.id_ulica=ulica.id AND kvartira.id_dom=dom.id AND oplata.id_kvartira=kvartira.idk AND oplata=true // для подсчета строк
  3. Вывод записей:
  4. while(SELECT * FROM ULICA,DOM,KVARTIRA,OPLATA WHERE dom.id_ulica=ulica.id AND kvartira.id_dom=dom.id AND oplata.id_kvartira=kvartira.idk AND oplata=true GROUP BY ulica.id){
  5.    while(SELECT * FROM ULICA,DOM,KVARTIRA,OPLATA WHERE dom.id_ulica=ulica.id AND kvartira.id_dom=dom.id AND  oplata.id_kvartira=kvartira.idk AND oplata=true GROUP BY dom.id){
  6.        while(SELECT * FROM ULICA,DOM,KVARTIRA,OPLATA WHERE dom.id_ulica=ulica.id AND kvartira.id_dom=dom.id AND  oplata.id_kvartira=kvartira.idk AND oplata=true)
  7. }
  8. }
  9.  


Получается структура:
ULICA1
DOM1
KVARTIRA1
KVARTIRA2
DOM2
....
Т.е. приходится делать 4 практически одинаковых запроса. Можно ли сделать один запрос:
while(SELECT * FROM ULICA,DOM,KVARTIRA,OPLATA WHERE dom.id_ulica=ulica.id AND kvartira.id_dom=dom.id AND oplata.id_kvartira=kvartira.idk AND oplata=true)
и обработать несколько раз для такого же результата?
donsanchez Отправлено: 27 Февраля, 2013 - 18:09:51 • Тема: Как правильно вынести url из onclick в скрипт? • Форум: Вопросы новичков

Ответов: 17
Просмотров: 8287
esterio пишет:
PHP:
скопировать код в буфер обмена
  1. echo '<tr onmousedown="tableclick(event, '.$querys[id].');">';

Огромное спасибо! Сделал так
PHP:
скопировать код в буфер обмена
  1. echo '<tr onmousedown="tableclick(event, '.$querys[id].');">';
[/quote]
и
CODE (javascript):
скопировать код в буфер обмена
  1. function tableclick(event, id){
  2.         var event = event || window.event;
  3.         if(!event.which && event.button)
  4.               event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
  5.  
  6.     switch (event.which) {
  7.             case 1:
  8.               window.open('http://url.ru/asp?refID=' + id);
  9.                 break;
  10.             case 2:
  11.  
  12.             case 3:
  13.         }
  14. }
  15.  

Заработало везде!
donsanchez Отправлено: 27 Февраля, 2013 - 17:42:31 • Тема: Как правильно вынести url из onclick в скрипт? • Форум: Вопросы новичков

Ответов: 17
Просмотров: 8287
esterio пишет:

Так на заметку - ето не кросбраузерно, поетому не работает
CODE (javascript):
скопировать код в буфер обмена
  1. function tableclick(event){
  2.         var event = event || window.event;
  3.         if(!event.which && event.button)
  4.               event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
  5.  
  6.     switch (event.which) {
  7.             case 1:
  8.               window.open('http://url.ru/asp?refID=' + id);
  9.                 break;
  10.             case 2:
  11.  
  12.             case 3:
  13.         }
  14. }


Заработало в IE, в FF не работает
Цитата:

И да, Вы помоем отлавливаете onclick, зачем не поставить onclick

onclick, насколько я понимаю, не отлавливает правую кнопку
donsanchez Отправлено: 27 Февраля, 2013 - 16:04:01 • Тема: Как правильно вынести url из onclick в скрипт? • Форум: Вопросы новичков

Ответов: 17
Просмотров: 8287
Если написать
PHP:
скопировать код в буфер обмена
  1. echo '<tr onmousedown="window.open(\'http://url.ru/asp?refID='.$querys[id].'\')">'
  2.  
то работает. Значит дело в скрипте
(Добавление)
esterio пишет:
Приведите код

PHP:
скопировать код в буфер обмена
  1. echo '<tr onmousedown="tableclick('.$querys[id].');">'
  2.  

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function tableclick(){
  3.     switch (event.which) {
  4.             case 1:
  5.               window.open('http://url.ru/asp?refID=' + id);
  6.                 break;
  7.             case 2:
  8.  
  9.             case 3:
  10.  alert('3');
  11.  
donsanchez Отправлено: 27 Февраля, 2013 - 15:56:10 • Тема: Как правильно вынести url из onclick в скрипт? • Форум: Вопросы новичков

Ответов: 17
Просмотров: 8287
esterio пишет:
Что именно не работает?
Вот тут полное описание, но ето не для новичков в JS
http://javascript.ru/tutorial/events/crossbrowser

Не срабатывает событие onmousedown
donsanchez Отправлено: 27 Февраля, 2013 - 15:24:53 • Тема: Как правильно вынести url из onclick в скрипт? • Форум: Вопросы новичков

Ответов: 17
Просмотров: 8287
Почему не работает в firefox и IE? В опере и хроме работает
donsanchez Отправлено: 27 Февраля, 2013 - 14:36:08 • Тема: Как правильно вынести url из onclick в скрипт? • Форум: Вопросы новичков

Ответов: 17
Просмотров: 8287
esterio пишет:
..
Простите, не понял, не хватает еще мозгов. Сделал так
PHP:
скопировать код в буфер обмена
  1. echo '<tr onmousedown="tableclick('.$querys[id].');">'
  2.  

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function tableclick(){
  3.     switch (event.which) {
  4.             case 1:
  5.               window.open('http://url.ru/asp?refID=' + id);
  6.                 break;
  7.             case 2:
  8.  
  9.             case 3:
  10.  alert('3');
  11.  

Всем спасибо!
donsanchez Отправлено: 27 Февраля, 2013 - 14:10:13 • Тема: Как правильно вынести url из onclick в скрипт? • Форум: Вопросы новичков

Ответов: 17
Просмотров: 8287
SAD пишет:
PHP:
скопировать код в буфер обмена
  1.     echo '<tr onmousedown="tableclick();" >'


CODE (javascript):
скопировать код в буфер обмена
  1. function tableclick() {
  2.   alert('Событие onmousedown сработало!');
  3. }

Это понятно. Надо, чтобы при клике левой кнопкой срабатывало windows.open, а правой-другое действие
donsanchez Отправлено: 27 Февраля, 2013 - 14:01:10 • Тема: Как правильно вынести url из onclick в скрипт? • Форум: Вопросы новичков

Ответов: 17
Просмотров: 8287
SAD пишет:
PHP:
скопировать код в буфер обмена
  1. echo '<tr onclick="clickme('.$querys[id].');">'


CODE (javascript):
скопировать код в буфер обмена
  1. function clickme(id) {
  2.     window.open('http://url.ru/asp?refID=' + id);
  3. }

Это работает, спасибо. А как бы еще onmousedown event отловить?
donsanchez Отправлено: 27 Февраля, 2013 - 13:35:09 • Тема: Как правильно вынести url из onclick в скрипт? • Форум: Вопросы новичков

Ответов: 17
Просмотров: 8287
PHP:
скопировать код в буфер обмена
  1. echo '<tr  onclick="window.open(\'http://url.ru/asp?refID='.$querys[id].'\')">'

надо вынести в
PHP:
скопировать код в буфер обмена
  1. echo '<tr  ononmousedown="tableclick(event)" >'

CODE (javascript):
скопировать код в буфер обмена
  1. function tableclick(){
  2.     switch (event.which) {
  3.             case 1:
  4.               window.open()
  5.                 break;
  6.             case 2:
  7.  
  8.             case 3:
  9.  
  10.  
  11. }
  12.  

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB