За последние 24 часа нас посетили 19352 программиста и 1606 роботов. Сейчас ищут 839 программистов ...

Выборка данных из 2-х таблиц в базе данных

Тема в разделе "MySQL", создана пользователем stas-dok, 16 авг 2009.

  1. stas-dok

    stas-dok Активный пользователь

    С нами с:
    16 авг 2009
    Сообщения:
    1
    Симпатии:
    0
    Описываю свою проблему- есть база данных, мне нужно взять данные из двух таблиц, к примеру №1 и №2, затем сравнить определённую колонку из 1 таблицы с такой же колонкой из таблицы №2 (названия их одинаковые), при совпадении значений вывести в виде таблицы колонку из табл №1 с названием(этого же товара), и ещё одну колонку с ценой из таблицы №2 (этого же товара)+вывести из табл№2 валюту (этого же товара).
    Повторить пока есть товары в таблице.
    Итого в итоговой таблице 3 колонки. название/цена/валюта
    Посмотрите, что я настрогал))
    Код (Text):
    1.  
    2. <?php
    3. $db_name="";    //база данных
    4. $table="jos_vm_product";    //таблица
    5. $host="localhost";  //хост
    6. $user="";       //логин
    7. $pass="";       //password
    8.  
    9. //законнектимся - получаем link-идентификатор или вывод номера и текста ошибки
    10. //с последующим прерыванием работы скрипта (die())
    11. $link=mysql_connect($host,$user,$pass) or die(mysql_errno($link).mysql_error($link));
    12.  
    13. $db=mysql_select_db($db_name,$link) or die(mysql_errno($link).mysql_error($link));
    14. //выберем данные
    15. $r=mysql_query("SELECT * from jos_vm_product ", $link) or die(mysql_errno($link).mysql_error($link));
    16. $f=mysql_fetch_array($r);
    17. $r4=mysql_query("SELECT * from jos_vm_product_price where (product_id = $f[product_id]); ", $link) or die(mysql_errno($link).mysql_error($link));
    18. $f2=mysql_fetch_array($r4);
    19.  
    20.  
    21. //сформируем заголовок таблицы результатов выборки
    22. //#obj_id#title#description#condition#homes_size#price#
    23. echo "<table border=\"1\" width=\"100%\">";
    24. echo "<tr><td>Товар</td><td>Цена</td><td>Валюта</td>";
    25.  
    26.  
    27. while (($f = mysql_fetch_array($r)) || ($f2 = mysql_fetch_array($r4))) {
    28. echo "<tr>";
    29. echo "<td>$f[product_desc]</td><td>$f2[product_price]</td><td>$f2[product_currency]</td>";
    30. echo "</tr>";
    31. }
    32. echo "</table>";
    33. mysql_close($link);
    34. ?>
    Выводится только первый товар правильно и с ценой, остальные просто выводятся, но цена у всех одиковая - т.е. первого товара))
    Помогите, кто сможет :D
     
  2. Человек

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

    С нами с:
    24 июл 2008
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Донецк
    Код (Text):
    1. select jos_vm_product.product_name, jos_vm_product_price.product_price, jos_vm_product_price.product_currency
    2. from jos_vm_product, jos_vm_product_price
    3. where jos_vm_product.product_id=jos_vm_product_price.product_id  
     
  3. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    А чего ник не ПапаКарло?)