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
Форумы портала PHP.SU :: Версия для печати :: Cтиль программирования
Форумы портала PHP.SU » Разное » Прочее » Cтиль программирования

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

1. Andrey5555 - 02 Февраля, 2008 - 16:19:54 - перейти к сообщению
Будьте добры, обьясните как мне тогда вывести данные из бд не использую в скрипте хтмл? И пожалуйста посоветуйте что мне исправить в стиле програмирования? Что я пишу лишнее? Исправьте меня пожалуйста. А с поиском мне помогли на www.php[dot]ru
2. Dastar - 02 Февраля, 2008 - 16:53:20 - перейти к сообщению
Твой код:
PHP:
скопировать код в буфер обмена
  1. include ("mysql.php");
  2. if (isset($_GET['search']))
  3. $search = $_GET['search'];
  4. $s_section = $_GET ['section'];
  5. $s_type = $_GET ['type'];
  6. $query1 = mysql_query ("SELECT section, type, text, name, email, date FROM announcements
  7. WHERE section = '$s_section' and type = '$s_type' and text LIKE '%$search%'");
  8. $allnum = mysql_num_rows ($query1);
  9. if(!isset($_GET['page']))
  10. $page = 1;
  11. else
  12. $page = ($_GET['page']);
  13. $on_page = 10;
  14. $begin = ($page - 1) * $on_page;
  15. $num_pages = ceil ($allnum / $on_page);
  16. $query = mysql_query ("SELECT section, type, text, name, email, date FROM announcements
  17. WHERE section = '$s_section' and type = '$s_type' and text LIKE '%$search%' LIMIT $begin, $on_page");
  18.      while (list ($section, $type, $text, $name, $email, $date) = mysql_fetch_array ($query))
  19.      {
  20.      echo "<table width='300' border ='1' >";
  21.      echo "<tr>";
  22.      echo "<td width='150'>$type</td><td><div align='right'>$date</div></td>";
  23.      echo "</tr>";
  24.      echo "</table>";
  25.      echo "<table width='300' border ='1'>";
  26.      echo "<tr>";
  27.      echo "<td>$text</td>";
  28.      echo "</tr>";
  29.      echo "</table>";
  30.      echo "<table width='300' border ='1'>";
  31.      echo "<tr>";
  32.      echo "<td width='150'>$name</td><td><div align='right'><a href='mailto:$email'>$email</div></td>";
  33.      echo "</tr>";
  34.      echo "</table>";
  35.      echo "<br>";
  36.      }
  37. for($i=0;$i<$num_pages;$i++)
  38. {
  39. $pages = $i+1;
  40. echo "<a href=?page=$pages&section=$s_section&type=$s_type&search=".urlencode($search).">$pages</a> ";
  41. }
3. Andrey5555 - 02 Февраля, 2008 - 17:04:56 - перейти к сообщению
Как этот код правильно организовать? что бы не было ничего лишнего?
4. Dastar - 02 Февраля, 2008 - 17:12:39 - перейти к сообщению
Ну, для начала вынеси html из php скрипта.
ИМХО, но гораздо красивей такое:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. while ($a) {
  3. ?>
  4. <table>
  5. <td><?=$a?></td>
  6. </table>
  7. <?
  8. }
  9.  

Это не относится к тем моментам, где html на пол строчки.
5. valenok - 02 Февраля, 2008 - 17:18:08 - перейти к сообщению
Цитата:
Будьте добры, обьясните как мне тогда вывести данные из бд не использую в скрипте хтмл?

Никак.

Цитата:
И пожалуйста посоветуйте что мне исправить в стиле програмирования?

Стиль выработается сам со временем.
Говоря уже о стиле - вот как вставили лишний знак вопроса в этом предложении,
так и в коде у вас много лишнего.

Цитата:
Что я пишу лишнее?

Всё что является дублированием.
6. bonynight - 03 Февраля, 2008 - 11:06:46 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. include ("mysql.php");
  2. if (isset($_GET['search']))
  3.   $search = $_GET['search'];
  4. $s_section = $_GET ['section'];
  5. $s_type = $_GET ['type'];
  6.  
  7. $query1 = mysql_query ("SELECT section, type, text, name, email, date
  8.                                      FROM announcements                                      
  9. WHERE section = '$s_section' AND  type = '$s_type' and text
  10.                                      LIKE '%$search%'");
  11. $allnum = mysql_num_rows ($query1);
  12. if(!isset($_GET['page']))
  13.   $page = 1;
  14. else
  15.   $page = ($_GET['page']);
  16. $on_page = 10;
  17. $begin = ($page - 1) * $on_page;
  18. $num_pages = ceil ($allnum / $on_page);
  19.  
  20. $query = mysql_query ("SELECT section, type, text, name, email, date
  21.                                    FROM announcements
  22.                                    WHERE section = '$s_section' and type = '$s_type' and text
  23.                                    LIKE '%$search%' LIMIT $begin, $on_page");
  24. while (list ($section, $type, $text, $name, $email, $date) = mysql_fetch_array ($query)) { ?>
  25.     <table width='300' border ='1' >
  26.       <tr>
  27.         <td width='150'>$type</td><td><div align='right'>$date</div></td>
  28.        </tr>
  29.     </table>
  30.     <table width='300' border ='1'>
  31.         <tr>
  32.           <td>$text</td>
  33.         </tr>
  34.      </table>
  35.      <table width='300' border ='1'>
  36.         <tr>
  37.           <td width='150'>$name</td>
  38.           <td><div align='right'><a href='mailto:$email'>$email</div></td>
  39.         </tr>
  40.      </table>
  41.      <br>}
  42. for($i = 0; $i < $num_pages; $i++) {
  43.   $pages = $i+1;
  44.   echo "<a href=?page=$pages&section=$s_section&type=$s_type&search=".urlencode($search).">$pages</a> ";
  45. }
  46.  

почитайте о стиля программирования в книжках, почитайте о templates (разделение логика и дизайна)
(Добавление)
теперь я понимаю почему у вас не отформатирован код по пробелам, тут это тупо не поддерживается=)

 

Powered by ExBB FM 1.0 RC1