Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Выборка из 2 таблиц
 
 автор: Death4Free   (17.03.2011 в 17:15)   письмо автору
 
 

Есть две таблицы tabl.1 и tabl.2 :
ID title        ID  cat  subcat
1   птицы       1    1   орел
2   звери       2    1   ворона
                3    2   конь
                4    2   волк


ID table.1 соответствует cat table.2. Вопрос: как вывести в PHP эти данные в таком виде :
птицы:
орел
ворона

звери:
конь
волк

  Ответить  
 
 автор: cheops   (17.03.2011 в 17:41)   письмо автору
 
   для: Death4Free   (17.03.2011 в 17:15)
 

Давайте сначал составим запрос
SELECT
  typeanimal.title AS typetitle,
  animal.title AS title
FROM
  `2` AS animal 
  LEFT JOIN 
  `1` AS typeanimal
  ON (animal.cat = typeanimal.id)
ORDER BY typeanimal.title, animal.title
результатом которого будет следующая результирующая таблица
звери    волк
звери    конь
птицы    ворона
птицы    орел

  Ответить  
 
 автор: cheops   (17.03.2011 в 17:55)   письмо автору
 
   для: Death4Free   (17.03.2011 в 17:15)
 

А вывести нужные вам списки, можно при помощи следующего приема
<?php
  
// Устанавливаем соединение с базой данных
  
require_once("config.php");

  
// Формируем и выполняем SQL-запрос
  
$query "SELECT 
              typeanimal.title AS typetitle, 
              animal.title AS title 
            FROM 
              `2` AS animal  
              LEFT JOIN  
              `1` AS typeanimal 
              ON (animal.cat = typeanimal.id) 
            ORDER BY typeanimal.title, animal.title"
;
  
$anl mysql_query($query);
  if(!
$anl) exit("Ошибка выполнения SQL-запроса ".mysql_error());
  if(
mysql_num_rows($anl))
  {
    
$type "";
    while(
$animal mysql_fetch_array($anl))
    {
      if(
$type != $animal['typetitle'])
      {
        
// Выводим новый тип
        
echo "<p><b>".$animal['typetitle'].":</b></p>";
        
$type $animal['typetitle'];
      }
      
// Выводим конкретное животное
      
echo "<p>".$animal['title']."</p>";
    }
  }
?>

  Ответить  
 
 автор: Death4Free   (17.03.2011 в 22:35)   письмо автору
 
   для: cheops   (17.03.2011 в 17:55)
 

Спасибо за помощь !

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования