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]   

> Описание: Помогите разобраться, почему так происходит?
Михаил27_27
Отправлено: 20 Июня, 2014 - 09:28:31
Post Id


Новичок


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


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




Здравствуйте столкнулся с такой проблемой, при добавлении нескольких условий или же несколько строчек кода для отображения в таблице на локальной машине, браузер на отрез отказывается отображать страницу.Но стоит мне убрать пару условий из кода или закоментировать несколько строк из вывода в таблицу - браузер выводит страницу в норме.(Большие извинения за то, что так оформлен код.У меня в редакторе на машине он выглядит совсем иначе)
PHP:
скопировать код в буфер обмена
  1. <head>
  2. <meta http-equiv="Content-type" content="text/html; charset=windows-1251">
  3. </head>
  4. <body>
  5. <?PHP
  6. require("mssql_conect.php");
  7. mssql_select_db('Bam', $mssql_link);
  8. $result = mssql_query('SELECT iModuleNum,sCallOutRight,sNewServiceRight,iPSN
  9.                                                 FROM tbl_STUserData
  10.                                                 WHERE iStatus=1 AND iModuleNum=1');
  11. while ($row = mssql_fetch_assoc($result)){
  12.         if($row["iPSN"]>=384 and $row["iPSN"]<=1535){
  13.                 $iModule="ATC-6";
  14.         }elseif($row["iPSN"]>=0 and $row["iPSN"]<=351 or $row["iPSN"]>=1536 and $row["iPSN"]<=1887){
  15.                 $iModule="ATC-7";
  16.         }elseif($row["iPSN"]>=1920 and $row["iPSN"]<=2111){
  17.                 $iModule="ATC-Zeid";
  18.         }elseif($row["iPSN"]>=3072 and $row["iPSN"]<=3295){
  19.                 $iModule="ATC-Hatap";
  20.         }elseif($row["iPSN"]>=2688 and $row["iPSN"]<=2751){
  21.                 $iModule="ATC-Imamnazar";
  22.         }elseif($row["iPSN"]>=2304 and $row["iPSN"]<=2687){
  23.                 $iModule="ATC-Niyazow";
  24.         }elseif($row["iPSN"]>=3456 and $row["iPSN"]<=3839){
  25.                 $iModule="ATC-M.Gala";
  26.         }elseif($row["iPSN"]>=6912 and $row["iPSN"]<=7295 or $row["iPSN"]>=3840 and $row["iPSN"]<=4191){
  27.                 $iModule="ATC-K.Ayak";
  28.         }elseif($row["iPSN"]>=4224 and $row["iPSN"]<=4607){
  29.                 $iModule="ATC-Bashsaka";
  30.         }elseif($row["iPSN"]>=4608 and $row["iPSN"]<=5375 or $row["iPSN"]>=6144 and $row["iPSN"]<=6527){
  31.                 $iModule="ATC-Gabshal";
  32.         }elseif($row["iPSN"]>=5376 and $row["iPSN"]<=6143 or $row["iPSN"]>=6528 and $row["iPSN"]<=6911){
  33.                 $iModule="ATC-Gabasagal";
  34.         }else{
  35.                 $iModule=$row["iModuleNum"];
  36.         }
  37.                         $arr[$iModule]["emkost"]++;
  38.                         if(ereg("^(0){5}[0-1]{11}$", $row["sCallOutRight"])){
  39.                                 $arr[$iModule]["free_numb"]++;
  40.                         }
  41.                         if($row["sCallOutRight"]{3}=="1") $arr[$iModule]["national_tool"]++;
  42.                         if($row["sCallOutRight"]{4}=="1") $arr[$iModule]["international_tool"]++;
  43.                         if($row["sNewServiceRight"]{19}=="1") $arr[$iModule]["clip"]++;
  44.                         if($row["sNewServiceRight"]{1}=="1") $arr[$iModule]["hot_line"]++;
  45.                         if($row["sNewServiceRight"]{2}=="1") $arr[$iModule]["call_pwd"]++;
  46.                         if($row["sNewServiceRight"]{4}=="1") $arr[$iModule]["mcid_service"]++;
  47.                         if($row["sNewServiceRight"]{5}=="1") $arr[$iModule]["als"]++;
  48.                         if($row["sNewServiceRight"]{7}=="1") $arr[$iModule]["cfu"]++;
  49.                         if($row["sNewServiceRight"]{8}=="1") $arr[$iModule]["cfb"]++;
  50.                         if($row["sNewServiceRight"]{9}=="1") $arr[$iModule]["cfnr"]++;
  51.                         if($row["sNewServiceRight"]{11}=="1") $arr[$iModule]["call_waiting"]++;
  52.                         if($row["sNewServiceRight"]{23}=="1") $arr[$iModule]["RIO"]++;
  53.                         if($row["sNewServiceRight"]{45}=="1") $arr[$iModule]["TCIR"]++;
  54. //В этой части добавляю пару и более условий-браузер не может отобразить страницу(Кол-во условий может составлять до 64)
  55. }
  56. //print_r($arr)."<br>";
  57. ?>
  58. <table border>
  59.         <tr>
  60.                 <td align=center>Наименование ВАТС</td>
  61.                 <td align=center>8ка</td>
  62.                 <td align=center>10ка</td>
  63.                 <td align=center>CLIP</td>
  64.                 <td align=center>CW</td>
  65.                 <td align=center>HotLine</td>
  66.                 <td align=center>CFU</td>
  67.                 <td align=center>CFB</td>
  68.                 <td align=center>CFNR</td>
  69.                 <td align=center>ALS</td>
  70.                 <td align=center>CBA</td>
  71.                 <td align=center>TCIR</td>
  72.                 <td align=center>RIO</td>
  73.         </tr>
  74. <?PHP
  75.         foreach($arr as $mod => $key){
  76.                 echo"<tr><td align=center>".$mod."</td>";
  77.                 echo"<td align=center>".$arr[$mod]["national_tool"]."</td>";
  78.                 echo"<td align=center>".$arr[$mod]["international_tool"]."</td>";
  79.                 echo"<td align=center>".$arr[$mod]["clip"]."</td>";
  80.                 echo"<td align=center>".$arr[$mod]["call_waiting"]."</td>";
  81.                 echo"<td align=center>".$arr[$mod]["hot_line"]."</td>";
  82.                 echo"<td align=center>".$arr[$mod]["cfu"]."</td>";
  83.                 echo"<td align=center>".$arr[$mod]["cfb"]."</td>";
  84.                 echo"<td align=center>".$arr[$mod]["cfnr"]."</td>";
  85. //тоже самое происходит здесь, если раскоментировать строчки - браузер не может отобразить страницу..
  86.                 /*echo"<td align=center>".$arr[$mod]["als"]."</td>";
  87.                 echo"<td align=center>".$arr[$mod]["call_pwd"]."</td>";
  88.                 echo"<td align=center>".$arr[$mod]["TCIR"]."</td>";
  89.                 echo"<td align=center>".$arr[$mod]["RIO"]."</td>";*/
  90.                 echo "</tr>";
  91.                 }
  92. ?>
  93. </table>
  94. </body>
  95. </html>

P.S Будет ли оптимальнее если условия в коде описанных выше выполнить в SQL запросах?....(я всего лишь новичок)
 
 Top
Мелкий Супермодератор
Отправлено: 20 Июня, 2014 - 10:08:28
Post Id



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


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


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




Вот ту толпу, проверяющих iPSN - стоит выделить в отдельную таблицу и left join'ить.
Вот ту толпу, чего-то делающую с $arr - совершенно точно надо отрефакторить. Но как - зависит от задачи, которую этот код выполняет. Почитайте "Рефакторинг" Фаулера.


-----
PostgreSQL DBA
 
 Top
Sail
Отправлено: 20 Июня, 2014 - 10:16:28
Post Id



Участник


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


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




А что ожидаем получить от этой конструкции:
?
Ведь в $row содержится одна запись из результата запроса...
И $row["sCallOutRight"] - наверняка не массив...
...
Ну да, строка. Растерялся Извините, ляпнул, не довспомнив нюансы Закатив глазки

(Отредактировано автором: 20 Июня, 2014 - 10:25:09)

 
 Top
LIME
Отправлено: 20 Июня, 2014 - 10:17:46
Post Id


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


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


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




3ий символ
эдакие битовые флаги в строке))
(Добавление)

Михаил27_27 пишет:
.У меня в редакторе на машине он выглядит совсем иначе

на машине уже отрефакторено а тут вот так почему-то))
 
 Top
Мелкий Супермодератор
Отправлено: 20 Июня, 2014 - 10:22:37
Post Id



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


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


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




LIME пишет:
3ий символ

Третий байт точнее сказать.


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 20 Июня, 2014 - 10:30:22
Post Id


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


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


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




точнее
но там судя по всему 0 и 1
тогда и символ не ошибка
 
 Top
Михаил27_27
Отправлено: 20 Июня, 2014 - 16:50:39
Post Id


Новичок


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


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




К выше изложенному добавлю.Дабы сократить время сбора данных стандартным ПО(статистика по подкл. услугам) пришлось написать код изложенный выше.
iModuleNum - группа телефонных станций
iPSN - группа абонентских портов принадлежащей одной из телефонной станций
LIME пишет:
точнее
но там судя по всему 0 и 1
тогда и символ не ошибка

sCallOutRight - поле string(24)"010010100001......." (право выхода звонков на local,national.international и т.д.)
sNewServiceRight- поле string(64)"00010010001110011001........." (услуги предоставляемые аб.)
т.е "1" услуга подключена абоненту, "0" услуги нет Улыбка
Добавление доп.таблиц не представляется возможным, вынужден вытягивать данные ток с одной единственной талицы. Сортировка и кол-во услуг по группам АТС(в SQL запросе была указанна ток одна группа АТС) и внутри каждого из АТС.
строчки с условиями
PHP:
скопировать код в буфер обмена
  1. if($row["sNewServiceRight"]{19}=="1") $arr[$iModule]["clip"]++;
сбор данных внутри каждого из АТС. Вот и получается, что в выборки данных более чем из 13 услуг браузер не отображает((. А ведь еще я не принимал во внимании группу АТСов.
ФУУх.. ощущение как будто бы я ток что исповедовался))
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB