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

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

1. arxnday - 07 Декабря, 2015 - 03:48:06 - перейти к сообщению
Гуру, направьте в правильное русло эту свалку говнокода:
PHP:
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3.     <style>
  4.         h2 {text-align: center;}
  5.         table {border: 1px solid darkgray;width: 40%;margin: auto}
  6.         td {width: 50%;border: 1px solid darkgray;text-align: center;}
  7.     </style>
  8. </head>
  9. <body>
  10.  
  11. <?PHP
  12.  
  13. //$mysqli = new mysqli('localhost','root','','tasks'); - может оно еще понадобиться вне функции?
  14.  
  15. function tasks($x) {
  16.     global $mysqli;
  17.     $mysqli = new mysqli('localhost','root','','tasks');
  18.     echo "<table><caption>".$x."</caption>";
  19.     $query = $mysqli->query("SELECT * FROM `tasks` WHERE `status` LIKE '$x' ORDER BY char_length(`description`) ASC");
  20.     while($new_tasks = $query->fetch_array()){
  21.         echo "<tr><td>".$new_tasks['description']."</td><td>".$new_tasks['status']."</td></tr>";
  22.     }
  23.     echo "</table><br><br><br>";
  24.     unset($new_tasks);
  25. }
  26.  
  27.  
  28.  
  29. echo"<h2>Список задач</h2>";
  30.  
  31. // Новые задания
  32. $x = 'Не начато';
  33. tasks($x);
  34.  
  35. //В процессе
  36. $x = 'В процессе';
  37. tasks($x);
  38.  
  39. //Выполнено
  40. $x = 'Выполнено';
  41. tasks($x);
  42.  
  43. echo '<table><caption>Ввод данных</caption>
  44.    <form action="add.php" method="post">
  45.       <tr><td> <p>Описание:</p></td> <td><textarea rows="1" cols="50" name="description"></textarea></td></tr>
  46.       <tr><td> <p>Статус:</p> <td><textarea rows="1" cols="50" name="status"></textarea></td></tr></td></tr></table>
  47.       <p style="text-align: center"><input type="submit" /></p>
  48.    </form>';
  49. ?>
  50. </body>
  51. </html>
2. lastdays - 07 Декабря, 2015 - 06:54:39 - перейти к сообщению
Global в функции не нужен, так как там же происходит коннект к базе данных.
В функции использовать echo не корректно, должна возвращать return (?)
В статусе заказов не нужно хранить текст, лучше цифры. Проще работать и делать выборку потом.

Всё это дело можно запустить 1 раз и полученные данные записать в массив, а не вызывать функцию 3 раза на странице.

 

Powered by ExBB FM 1.0 RC1