Выборка из двух таблиц

Тема в разделе "Базы данных", создана пользователем Runapa, 23 мар 2012.

Модераторы: latteo
  1. Runapa

    Runapa Постоялец

    Регистр.:
    30 окт 2010
    Сообщения:
    63
    Симпатии:
    5
    Есть две таблицы - одна links, вторая sub_page.

    Мне надо выбрать данные таким образом, чтобы в цикле можно было использовать данные из обоих таблиц.

    Запросы, которые я использую -

    PHP:
    //Выводим Кнопки
        
    $sql "SELECT page_name, title_rus, title_eng FROM links ORDER BY position DESC";
        
    $links mysql_query($sql) or die(mysql_error() ."<br/>"$sql);
    //END
     
    //выводим кнопки подкатегорий
    $sql "SELECT * FROM sub_pages WHERE cat = '$p' ORDER BY position DESC";
    $result_category mysql_query($sql) or die(mysql_error() ."<br/>"$sql);
     
     
    //цикл
     
    while ($row mysql_fetch_assoc($links))
                {
    ...
    }


    Мне это нужно для того, чтобы ссылка из links подменялась на ссылку из sub_page при определённых условиях.
     
  2. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
  3. Runapa

    Runapa Постоялец

    Регистр.:
    30 окт 2010
    Сообщения:
    63
    Симпатии:
    5
    Я эти мануалы уже читал.
    По ним у меня ничего не вышло.
     
  4. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.450
    Симпатии:
    1.239
    Для join`а должны быть данные по которым эти таблицы можно объеденить.

    Покажи структуру таблиц

    Код:
    show columns from links;
    show columns from sub_page;
     
  5. Runapa

    Runapa Постоялец

    Регистр.:
    30 окт 2010
    Сообщения:
    63
    Симпатии:
    5
    [​IMG][​IMG]
    Слева sub_pages
    Поля page_name и cat имеют одинаковые значения
     
  6. baddavil

    baddavil Создатель

    Регистр.:
    14 мар 2012
    Сообщения:
    25
    Симпатии:
    1
    то есть page_name и cat одинаковые?
    и можно еще некоторый пример данных и что вы хотите в итоге увидеть?
     
  7. Runapa

    Runapa Постоялец

    Регистр.:
    30 окт 2010
    Сообщения:
    63
    Симпатии:
    5
    да одинаковые.

    А пример такой -

    запросом из линкс выводится меню

    PHP:
    if ($_SESSION['lang'] == 'rus')
            {
                while (
    $row mysql_fetch_assoc($links))
                {
    if(
    $row['title_rus'] == '') continue;
    $table .="<a class='link".(($p == $row['page_name'])?' current_link':'')."' href='index.php?p=".$row['page_name']."&lang=".$_SESSION['lang']."'>".$row["title_rus"]."</a>";   
                }
            echo 
    $table;
            }
    Я же хочу что-то типо такого

    PHP:
    if ($_SESSION['lang'] == 'rus')
            {
                while (
    $row mysql_fetch_assoc($links))
                {
    if(
    $row['title_rus'] == '') continue;
     
    if (
    redirect == 'yes')
     
      {
    $table .="<a class='link".(($p == $row['page_name'])?' current_link':'')."' href='index.php?p=".$row['page_name']."&lang=".$_SESSION['lang']."'>".$row["title_rus"]."</a>";    }
    else
      {
        
    $sub_table .="<a class='sub_link".(($_REQUEST['p']==$row['id'])?' current_link':'')."'' href='sub_page.php?p=".$row['id']."&lang=".$_SESSION['lang']."&cat=".$row["cat"]."'>".$row["cat_name_rus"]."</a>";   }
     
                }
            echo 
    $table;
            }
    Надо чтобы выводилось меню, но при параметре redirect = = yes на определенных пунктах меню - менялась ссылка. То есть вместо категории ссылка бы вела в подкатегорию.
     
  8. baddavil

    baddavil Создатель

    Регистр.:
    14 мар 2012
    Сообщения:
    25
    Симпатии:
    1
    а пример данных из таблиц еще можно?
     
  9. Runapa

    Runapa Постоялец

    Регистр.:
    30 окт 2010
    Сообщения:
    63
    Симпатии:
    5
    всмысле ?
     
  10. baddavil

    baddavil Создатель

    Регистр.:
    14 мар 2012
    Сообщения:
    25
    Симпатии:
    1
    какие данные в таблицах хранятся?

    Код:
    select * from links;
    select * from sub_page;