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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Две таблицы запрос

Сообщения:  [1-4] 

 
 автор: Trianon   (19.09.2008 в 20:41)   письмо автору
 
   для: Лена   (19.09.2008 в 09:25)
 

FROM menu, modules

  Ответить  
 
 автор: Лена   (19.09.2008 в 09:25)   письмо автору
 
   для: Trianon   (18.09.2008 в 18:29)
 

Сделала по-другому. Взяла UNION, типы полей только надо смотреть, чтобы одинаковые были в таблицах( id_menu и id_mod у меня цифровые, например)

<?php
include ("configs/dbopen.php");
//вытягиваю из базы все разделы, которые пойдут в субселект
$query="SELECT id_menu, title
FROM menu
UNION 
SELECT id_mod, name
FROM modules
WHERE modules.pid_mod =0
"
;
$result mysql_query($query);
if(!
$result) exit() OR mysql_error();
$number mysql_num_rows($result);
if(
$number>0){
    while(
$row mysql_fetch_array($result)){
    
//print_r($row);
    
$menu $row['id_menu'];
    
$name $row['title'];

    echo 
$name "<br>";
    }
}
echo 
"<hr>";



Непонятно одно: в учебнике пишется, что у столбцов, которые получаются, нет заголовков, но если делать в phpMyAdmin - заголовки для столбцов берутся по названию полей первой таблицы. Выходит, в учебнике ошиблись?

Про FROM не сильно поняла, какие условия? Например?

  Ответить  
 
 автор: Trianon   (18.09.2008 в 18:29)   письмо автору
 
   для: Лена   (18.09.2008 в 15:07)
 

Если Вы пришете в разделе FROM несколько таблиц через запятую - нужно указывать условия связывания строк.
Фактически, запятая, которую Вы ставите между именами таблиц, воспринимается точно также как ключевое слово JOIN.

  Ответить  
 
 автор: Лена   (18.09.2008 в 15:07)   письмо автору
1.2 Кб
 
 

Есть две таблицы. Прикрепляю дамп. Из каждой таблицы нужно вывести названия разделов.
Если я делаю вот такой запрос:

<?php
include ("configs/dbopen.php");
$query="SELECT id_menu, title, id_mod, name
FROM menu AS m, modules AS n
WHERE n.pid_mod =0"
;
$result mysql_query($query);
if(!
$result) exit() OR mysql_error();
$number mysql_num_rows($result);
if(
$number>0){
    for(
$p 0$row mysql_fetch_assoc($result); ){
    
$menu $row['id_menu'];
    
$name $row['title'];
    
$mod $row['id_mod'];
    
$mod_name $row['name'];    
        if(
$p != $mod){
        echo 
"<strong>" $mod_name "</strong>\r\n";
        
$p $mod;
        }
        echo 
"<hr />" $name "<br />\r\n";
    }
}
?>


Проблема в том, что результате запроса из первой таблицы все нормально выводится, из второй - ряды повторяются, например:
ряды 1 таблицы ряды 2 таблицы
Раздел 1 Главная
Раздел 2 Главная
Раздел 3 Главная
Мне нужно, чтобы названия разделов 2 таблицы (modules) тоже выводились один раз, например:
Главная
Контакты
Архив и т.д.
Сделала условие: $p != $mod, чтобы названия второй таблицы вывелись один раз, но теперь названия первой выводятся помногу.

Таблицы не имеют общих полей. Думаю, что объединить через JOIN нельзя. Может, вообще сделать два разных запроса?

  Ответить  

Сообщения:  [1-4] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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