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 :: Краткая запись условий [2]

 PHP.SU

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


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

> Без описания
Bio man
Отправлено: 13 Ноября, 2011 - 19:36:11
Post Id


Постоянный участник


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


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




да куда еще подробнее? пишите в переменные то что хотите вывести и в определенных местах выводите эти переменные... все очень просто...
 
 Top
n1k86
Отправлено: 13 Ноября, 2011 - 19:37:05
Post Id


Частый гость


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


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




а смысл???? Кол-во операторов всё равно одно и тоже.
 
 Top
Bio man
Отправлено: 13 Ноября, 2011 - 19:38:29
Post Id


Постоянный участник


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


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




смысл? а хз, забыл! как вспомню напишу
 
 Top
n1k86
Отправлено: 13 Ноября, 2011 - 19:43:20
Post Id


Частый гость


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


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




и всё же, подскажите, как можно вот этот код

Кодец)))) (Отобразить)


покороче записать...пожалуйста...
 
 Top
Bio man
Отправлено: 13 Ноября, 2011 - 19:47:32
Post Id


Постоянный участник


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


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




если идет ветвление, типо свич или if elseif else то следует завести переменную, в которую будешь записывать аутпут и после конструкции уже ее выводить. цитата с базового курса по пхп - "много ЭХОВ суть плохо! в идеале инпут и аутпут должен быть ровно ОДИН"...
 
 Top
n1k86
Отправлено: 13 Ноября, 2011 - 19:54:05
Post Id


Частый гость


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


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




Да это не суть, как бы важно. Мне удобнее, когда каждый вывод отвечает за определённую вещь. Намного удобнее читать. У меня вопрос стоит, как бы сократить то что в коде предоставленном вверху??? Там как бы почти однотипная информация, но я не могу понять, как бы её записать сжато...без повторений...
 
 Top
Bio man
Отправлено: 13 Ноября, 2011 - 19:58:42
Post Id


Постоянный участник


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


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




для начала можно сократить так
PHP:
скопировать код в буфер обмена
  1.     <?
  2.     $tit['title'] = "Люди";
  3.      
  4.     include_once '../head.php';
  5.     include_once '../sys/bdconnect.php';
  6.     include_once '../sys/functions.php';
  7.     include_once '../sys/online.php';
  8.     title();
  9.     aut();
  10.     ban();
  11.     $output = '<div class="text_bg">
  12.       <form>Показать:
  13.       <select onchange="location = this.options[this.selectedIndex].value;">
  14.       <option value="index.php">Всех</option>
  15.       <option value="index.php?how=1">Юзеров</option>
  16.       <option value="index.php?how=4">Забаненных</option>
  17.       <option value="index.php?how=2" selected="selected">Администраторов</option>
  18.       <option value="index.php?how=on_users">Юзеров онлайн</option>
  19.       <option value="index.php?how=on_guests">Гостей онлайн</option>
  20.       </select></form></div>';
  21.  
  22.     if(!empty($_GET['how']) AND is_numeric($_GET['how']) AND $_GET['how'] == 2)
  23.     {
  24.         $posts = mysql_result(mysql_query("SELECT COUNT(id) FROM users WHERE adm='".$_GET['how']."' OR adm='3'"), 0);
  25.         setting_navigation();
  26.      
  27.         $result = mysql_query("SELECT id, login, adm, last_update, datetime FROM users WHERE adm='".$_GET['how']."' OR adm='3' LIMIT $start, $how_msg");
  28.         if ($posts!=0)
  29.         {
  30.             while($row = mysql_fetch_assoc($result))
  31.             {
  32.                 $output .= '<div class="send_stroke"><a href="/users/anketa.php?id='.$row['id'].'">'.$row['login'].'</a></div>';
  33.                 $output .= '<div class="text_bg">ID: '.$row['id'].'<br />';
  34.                 if ($row['adm'] == 1)
  35.                     {$output .= 'Статус: <span style="color: black;">Пользователь</span><br />';}
  36.                 elseif ($row['adm'] == 2)
  37.                     {$output .= 'Статус: <span style="color: red;">Администратор</span><br />';}
  38.                 elseif ($row['adm'] == 3)
  39.                     {$output .= 'Статус: <span style="color: blue;">Модератор</span><br />';}
  40.                 elseif ($row['adm'] == 4)
  41.                     {$output .= 'Статус: Забаненный<br />';}
  42.                 $output .= 'Последняя активность: '.last_time($row['last_update']).'<br />';
  43.                 $output .= 'Дата регистрации: '.dtreg($row['datetime']).'</div>';
  44.             }
  45.         }
  46.         else $output .= '<div class="text_bg">В чате нет администраторов.</div>';
  47.                
  48.         $onezap = "how";
  49.         $oneznach = $_GET['how'];
  50.         get_view_navigation();
  51.     }
  52.     elseif (!empty($_GET['how']) AND is_numeric($_GET['how']) AND $_GET['how'] == 1)
  53.     {
  54.         $posts = mysql_result(mysql_query("SELECT COUNT(id) FROM users WHERE adm='".$_GET['how']."'"), 0);
  55.         setting_navigation();
  56.      
  57.         $result = mysql_query("SELECT id, login, adm, last_update, datetime FROM users WHERE adm='".$_GET['how']."' LIMIT $start, $how_msg");
  58.         if ($posts!=0)
  59.         {
  60.             while($row = mysql_fetch_assoc($result))
  61.             {
  62.                 $output .= '<div class="send_stroke"><a href="/users/anketa.php?id='.$row['id'].'">'.$row['login'].'</a></div>';
  63.                 $output .= '<div class="text_bg">ID: '.$row['id'].'<br />';
  64.                 if ($row['adm'] == 1)
  65.                     {$output .= 'Статус: <span style="color: black;">Пользователь</span><br />';}
  66.                 elseif ($row['adm'] == 2)
  67.                     {$output .= 'Статус: <span style="color: red;">Администратор</span><br />';}
  68.                 elseif ($row['adm'] == 3)
  69.                     {$output .= 'Статус: <span style="color: blue;">Модератор</span><br />';}
  70.                 elseif ($row['adm'] == 4)
  71.                     {$output .= 'Статус: Забаненный<br />';}
  72.                 $output .= 'Последняя активность: '.last_time($row['last_update']).'<br />';
  73.                 $output .= 'Дата регистрации: '.dtreg($row['datetime']).'</div>';
  74.             }
  75.         }
  76.         else $output .= '<div class="text_bg">В чате нет зарегистрированных пользователей.</div>';
  77.      
  78.         $onezap = "how";
  79.         $oneznach = $_GET['how'];
  80.         get_view_navigation();
  81.     }
  82.     elseif (!empty($_GET['how']) AND is_numeric($_GET['how']) AND $_GET['how'] == 4)
  83.     {
  84.         $posts = mysql_result(mysql_query("SELECT COUNT(id) FROM users WHERE adm='".$_GET['how']."'"), 0);
  85.         setting_navigation();
  86.      
  87.         $result = mysql_query("SELECT id, login, adm, last_update, datetime FROM users WHERE adm='".$_GET['how']."' LIMIT $start, $how_msg");
  88.         if ($posts!=0)
  89.         {
  90.             while($row = mysql_fetch_assoc($result))
  91.             {
  92.                 $output .= '<div class="send_stroke"><a href="/users/anketa.php?id='.$row['id'].'">'.$row['login'].'</a></div>';
  93.                 $output .= '<div class="text_bg">ID: '.$row['id'].'<br />';
  94.                 if ($row['adm'] == 1)
  95.                     {$output .= 'Статус: <span style="color: black;">Пользователь</span><br />';}
  96.                 elseif ($row['adm'] == 2)
  97.                     {$output .= 'Статус: <span style="color: red;">Администратор</span><br />';}
  98.                 elseif ($row['adm'] == 3)
  99.                     {$output .= 'Статус: <span style="color: blue;">Модератор</span><br />';}
  100.                 elseif ($row['adm'] == 4)
  101.                     {$output .= 'Статус: Забаненный<br />';}
  102.                 $output .= 'Последняя активность: '.last_time($row['last_update']).'<br />';
  103.                 $output .= 'Дата регистрации: '.dtreg($row['datetime']).'</div>';
  104.             }
  105.         }
  106.         else
  107.         {
  108.             $output .= '<div class="text_bg">В чате нет забаненных.</div>';
  109.         }
  110.      
  111.         $onezap = "how";
  112.         $oneznach = $_GET['how'];
  113.         get_view_navigation();
  114.     }
  115.     elseif(!empty($_GET['how']) AND $_GET['how'] == "on_users")
  116.     {
  117.         $posts = mysql_result(mysql_query("SELECT COUNT(id) FROM users WHERE online > NOW() - INTERVAL 300 SECOND"), 0);
  118.         setting_navigation();
  119.      
  120.         $result = mysql_query("SELECT id, login, adm, last_update, datetime FROM users WHERE online > NOW() - INTERVAL 300 SECOND LIMIT $start, $how_msg");
  121.         if ($posts!=0)
  122.         {
  123.             while($row = mysql_fetch_assoc($result))
  124.             {
  125.                 $output .= '<div class="send_stroke"><a href="/users/anketa.php?id='.$row['id'].'">'.$row['login'].'</a></div>';
  126.                 $output .= '<div class="text_bg">ID: '.$row['id'].'<br />';
  127.                 if ($row['adm'] == 1)
  128.                     {$output .= 'Статус: <span style="color: black;">Пользователь</span><br />';}
  129.                 elseif ($row['adm'] == 2)
  130.                     {$output .= 'Статус: <span style="color: red;">Администратор</span><br />';}
  131.                 elseif ($row['adm'] == 3)
  132.                     {$output .= 'Статус: <span style="color: blue;">Модератор</span><br />';}
  133.                 elseif ($row['adm'] == 4)
  134.                     {$output .= 'Статус: Забаненный<br />';}
  135.                 $output .= 'Последняя активность: '.last_time($row['last_update']).'<br />';
  136.                 $output .= 'Дата регистрации: '.dtreg($row['datetime']).'</div>';
  137.             }
  138.         }
  139.         else
  140.         {
  141.             $output .= '<div class="text_bg">В чате нет пользователей онлайн.</div>';
  142.         }
  143.      
  144.         $onezap = "how";
  145.         $oneznach = $_GET['how'];
  146.         get_view_navigation();
  147.     }
  148.     elseif(!empty($_GET['how']) AND $_GET['how'] == "on_guests")
  149.     {
  150.         $posts = mysql_result(mysql_query("SELECT COUNT(id) FROM online WHERE online < NOW() + INTERVAL 300 SECOND"), 0);
  151.         setting_navigation();
  152.      
  153.         $result = mysql_query("SELECT ip, ua, online FROM online WHERE online < NOW() + INTERVAL 300 SECOND LIMIT $start, $how_msg");
  154.         if ($posts!=0)
  155.         {
  156.             while($row = mysql_fetch_assoc($result))
  157.             {
  158.                 $output .= '<div class="send_stroke">Гость</div>';
  159.                 $output .= "<div class='text_bg'>";
  160.                 $output .= 'IP: '.$row['ip'].'<br />';
  161.                 $output .= 'UA: '.$row['ua'].'<br />';
  162.                 $output .= 'Последняя активность: '.last_time($row['online']).'</div>';
  163.             }
  164.         }
  165.         else
  166.         {
  167.             $output .= '<div class="text_bg">В чате нет гостей онлайн.</div>';
  168.         }
  169.      
  170.         $onezap = "how";
  171.         $oneznach = $_GET['how'];
  172.         get_view_navigation();
  173.     }
  174.     elseif (empty($_GET['how']) AND !isset($_GET['how']) AND $_GET['how'] == 0 OR !is_numeric($_GET['how']) OR $_GET['how'] == 3 OR $_GET['how'] > 4)
  175.     {
  176.         $posts = mysql_result(mysql_query("SELECT COUNT(id) FROM users"), 0);
  177.         setting_navigation();
  178.      
  179.         $result = mysql_query("SELECT id, login, adm, datetime, last_update FROM users LIMIT $start, $how_msg");
  180.         if ($posts!=0)
  181.         {
  182.             while($row = mysql_fetch_assoc($result))
  183.             {
  184.                 $output .= '<div class="send_stroke"><a href="/users/anketa.php?id='.$row['id'].'">'.$row['login'].'</a></div>';
  185.                 $output .= '<div class="text_bg">ID: '.$row['id'].'<br />';
  186.                 if ($row['adm'] == 1)
  187.                     {$output .= 'Статус: <span style="color: black;">Пользователь</span><br />';}
  188.                 elseif ($row['adm'] == 2)
  189.                     {$output .= 'Статус: <span style="color: red;">Администратор</span><br />';}
  190.                 elseif ($row['adm'] == 3)
  191.                     {$output .= 'Статус: <span style="color: blue;">Модератор</span><br />';}
  192.                 elseif ($row['adm'] == 4)
  193.                     {$output .= 'Статус: Забаненный<br />';}
  194.                 $output .= 'Последняя активность: '.last_time($row['last_update']).'<br />';
  195.                 $output .= 'Дата регистрации: '.dtreg($row['datetime']).'</div>';
  196.             }
  197.         }
  198.         else
  199.         {
  200.             $output .= '<div class="text_bg">В чате нет никого зарегистрированного.</div>';
  201.         }
  202.      
  203.         view_navigation();
  204.     }
  205.      
  206.     $output .= "<div class='foot_nav'><img src='/style/img/item_back.png' /> <a href='/'>На главную</a></div>";
  207.         echo $output;
  208.     include_once '../foot.php';
  209.     ?>
 
 Top
n1k86
Отправлено: 13 Ноября, 2011 - 20:01:51
Post Id


Частый гость


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


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




А смысл этого? Ну сократил ты загрузку на 1 десятитысячную. Что с того? ИМХО, затрудняешь чтение кода этим...очень не удобно...
 
 Top
Самогонщик
Отправлено: 13 Ноября, 2011 - 20:10:07
Post Id



Посетитель


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


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




n1k86, я сильно в код не вникал, но на вскидку увидел что отличия в селектед и запросе.

Чтобы было меньше кода нужно либо бахнуть функцию, которая настраивается под каждый конкретный вывод и вызывать её в каждой ветке или сначала, в зависимости от полученных параметров, задать некоторые переменные, а потом вывести все одним кодом.
 
 Top
Bio man
Отправлено: 13 Ноября, 2011 - 20:11:09
Post Id


Постоянный участник


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


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




n1k86, я не понемаю, тебе нужно сократить или удобно читать? условия сам думай как сокращать, я в эту кашу не полезу... нащет того что сделал я - задумайся, а если тебе придется когда либо изменить форму? а код вырастит в 2-3 раза... проще изменить в 1 месте чем бегать по коду и искать эту форму... выбирай между компактностью и высокой читабельностью, не всегда эти вещи совместимы
 
 Top
n1k86
Отправлено: 14 Ноября, 2011 - 10:18:16
Post Id


Частый гость


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


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




Самогонщик, твою позицию понял. Я сначала хотел так делать, но понял, что смысла в этом как такового нет.

Bio_man, понимаешь, я сейчас и сокращаю и делаю, чтобы удобно читать было. Форма не изменится. Если ты видел, то там она чуть чуть другая везде, но это не суть важно.

Я ваши позиции понял...ладно, спасибо огромное вам!))))
 
 Top
Самогонщик
Отправлено: 14 Ноября, 2011 - 10:27:40
Post Id



Посетитель


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


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




n1k86 пишет:
Я сначала хотел так делать, но понял, что смысла в этом как такового нет.
Смотря в чём заключается смысл Язычок.

С чисто концептуально точки зрения, единственный способ уменьшить объём программы - это повторно использовать уже имеющийся код. Для этого информацию приводят к однотипному виду и одинаково её обрабатывают. Сокращение на уровне скобок, операторов и переносов на новую строку стратегически невыгодно.

n1k86 пишет:
Я ваши позиции понял...ладно, спасибо огромное вам!))))
Я всё отрицаю: это была не позиция, а конкретное предложение.
(Добавление)
Более того, любое программирование это борьба со сложностью. Как только количественная сложность зашкаливает, приходится её разбивать качественно до следующего закаливания.
 
 Top
n1k86
Отправлено: 14 Ноября, 2011 - 10:32:16
Post Id


Частый гость


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


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




Самогонщик, именно этим я сейчас и занимаюсь. Я хочу привести к одному виду...думаю даже отказаться сейчас от некоторых вещей....потому что однотипная информация - не есть гуд...но опять же я пока что не представляю как её сократить можно...точнее уже представил...другое дело - воплотить, собственно чем я сейчас и занялся.
 
 Top
Самогонщик
Отправлено: 14 Ноября, 2011 - 10:44:08
Post Id



Посетитель


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


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




n1k86 пишет:
Я хочу привести к одному виду
n1k86 пишет:
однотипная информация - не есть гуд
Мой мозг
 
 Top
n1k86
Отправлено: 14 Ноября, 2011 - 10:49:45
Post Id


Частый гость


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


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




Нет, ты не так понял)))
Я хочу сделать так, чтобы не было повторяющейся информации, а был один вариант, который бы подходил ко всему)))
 
 Top
Страниц (4): « 1 [2] 3 4 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB