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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Оптимизация кода
NickSevenfold
Отправлено: 23 Декабря, 2011 - 19:09:03
Post Id


Новичок


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


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




Доброго времени суток.
Задание:
"Необходимо выполнить SQL-запрос"
Даны:
Спойлер (Отобразить)


Сам код реализации:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. //константы для базы
  4. define("DB_HOST", "localhost");
  5. define("DB_LOGIN", "login");
  6. define("DB_PASSWORD", "");
  7.  
  8. //подключение базы
  9. mysql_connect(DB_HOST, DB_LOGIN, DB_PASSWORD) or die(mysql_error());
  10.  
  11. //выбор уникальных имен материалов
  12. $query_header = "SELECT DISTINCT Parts.name as header FROM Parts";
  13. $result_header = mysql_query($query_header) or die(mysql_error());
  14.  
  15. //Выбор заголовков и айдишников
  16. $query_title = "SELECT Materials.title as title, Links.Pid as partid FROM Materials, Links, Parts WHERE Links.Mid=Materials.id and Links.Pid=Parts.id";
  17. $result_title = mysql_query($query_title) or die(mysql_error());
  18.  
  19. $news = ''; //Массив для новостей
  20. $publics = ''; //Массив для публикаций
  21.  
  22. //Заполнение массивов для новостей и публикаций
  23. while($f = mysql_fetch_array($result_title, MYSQL_ASSOC)){
  24.         if($f[partid]==1){
  25.                 $news[] = $f[title];
  26.                 }
  27.         else{
  28.                 $publics[] = $f[title];
  29.                 }
  30. }
  31.  
  32. //Вывод шапки таблицы по названию материала
  33. echo "<table border=0 cellpadding=5 cellspacing=5><tr>";
  34. while($f = mysql_fetch_array($result_header, MYSQL_ASSOC)){
  35.         echo "<td><h2>".$f[header]."</h2></td>";
  36.         }
  37. echo "</tr>";
  38. //Получение максимального значения рядов таблицы
  39. $rows = max(count($news),count($publics));
  40. //Заполнение таблицы
  41. for($i=0;$i<$rows;$i++){
  42.         echo "<tr><td>".$news[$i]."</td><td>".$publics[$i]."</td>";
  43.         echo "</tr>";
  44. }
  45. echo "</tr></table>";
  46. ?>
  47.  


Можно ли как-нибудь оптимизировать код? Гугл ответа не дал
 
 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