За последние 24 часа нас посетили 17682 программиста и 1610 роботов. Сейчас ищут 1154 программиста ...

сравнение элементов двух таблиц

Тема в разделе "PHP для новичков", создана пользователем letexa, 27 ноя 2010.

  1. letexa

    letexa Активный пользователь

    С нами с:
    25 ноя 2010
    Сообщения:
    13
    Симпатии:
    0
    Суть задачи такая. Есть две таблицы, в которых есть одинаковые элементы. Надо их найти и вывести на экран. Получился такой код:

    PHP:
    1. <?php
    2. $result_tovar = mysql_query("SELECT article, reservation FROM boy1" ,$db);
    3. $myrow_tovar = mysql_fetch_array ($result_tovar); /*первая таблица*/
    4.  
    5. $result_basket = mysql_query("SELECT article FROM basket ",$db);
    6. $myrow_basket = mysql_fetch_array ($result_basket); /*вторая таблица*/
    7.  
    8. do
    9. {
    10. $tovar_article = $myrow_tovar["article"]; /*берём элемент из первой таблицы и даем ему имя*/
    11.  
    12.    do
    13.    {
    14.      if ( $tovar_article == $myrow_basket["article"]) /*сравниваем элемент первой таблицы со всеми элементами второй таблицы*/
    15.      {echo "$tovar_article совпадение с ".$myrow_basket["article"]."<br>";}
    16.      else
    17.      {echo "$tovar_article совпадений не нашел <br>";}
    18.     }
    19.    while ($myrow_basket = mysql_fetch_array ($result_basket)); /*сравнивать пока есть элементы во второй таблице*/
    20. }  
    21. while ($myrow_tovar = mysql_fetch_array ($result_tovar)); /*брать элемент из первой таблицы пока они существуют*/  
    22. ?>

    Результат работы цикла: берётся элемент из первой таблицы, сравнивается со всеми элементами второй таблицы, а остальные элементы (первой таблицы) сравниваются только с одним элементом второй таблицы (очевидно с первым).
    В чем ошибка? Может кто подсказать?
     
  2. <?=RPG?>

    <?=RPG?> Активный пользователь

    С нами с:
    19 ноя 2010
    Сообщения:
    451
    Симпатии:
    0
    Ошибка в изначальном запросе. Сравнение таблиц нужно делать при помощи языка SQL
    http://k-press.ru/cs/2009/3/join/join.asp

    Искренне Ваш, INNER JOIN
     
  3. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Евгений Попов
     
  4. letexa

    letexa Активный пользователь

    С нами с:
    25 ноя 2010
    Сообщения:
    13
    Симпатии:
    0
    Спасибо за ответ
    Не знал про это.