[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выборка данных из 2-х таблиц в базе данных
stas-dok
Описываю свою проблему- есть база данных, мне нужно взять данные из двух таблиц, к примеру №1 и №2, затем сравнить определённую колонку из 1 таблицы с такой же колонкой из таблицы №2 (названия их одинаковые), при совпадении значений вывести в виде таблицы колонку из табл №1 с названием(этого же товара), и ещё одну колонку с ценой из таблицы №2 (этого же товара)+вывести из табл№2 валюту (этого же товара).
Повторить пока есть товары в таблице.
Итого в итоговой таблице 3 колонки. название/цена/валюта
Посмотрите, что я настрогал))
PHP
<?php
$db_name
="";    //база данных
$table="jos_vm_product";    //таблица
$host="localhost";    //хост
$user="";        //логин
$pass="";        //password

//законнектимся - получаем link-идентификатор или вывод номера и текста ошибки
//с последующим прерыванием работы скрипта (die())
$link=mysql_connect($host,$user,$pass) or die(mysql_errno($link).mysql_error($link));
//выбираем базу данных BOOKS, созданную нами ранее
$db=mysql_select_db($db_name,$link) or die(mysql_errno($link).mysql_error($link));
//выберем данные
$r=mysql_query("SELECT * from jos_vm_product "$link) or die(mysql_errno($link).mysql_error($link));
$f=mysql_fetch_array($r);
$r4=mysql_query("SELECT * from jos_vm_product_price where (product_id = $f[product_id]); "$link) or die(mysql_errno($link).mysql_error($link));
$f2=mysql_fetch_array($r4);


//сформируем заголовок таблицы результатов выборки
//#obj_id#title#description#condition#homes_size#price#
echo "<table border=\"1\" width=\"100%\">";
echo 
"<tr><td>Товар</td><td>Цена</td><td>Валюта</td>";


while ((
$f mysql_fetch_array($r)) || ($f2 mysql_fetch_array($r4))) {
echo 
"<tr>";
echo 
"<td>$f[product_desc]</td><td>$f2[product_price]</td><td>$f2[product_currency]</td>";
echo 
"</tr>";
}
echo 
"</table>";
mysql_close($link);

Выводится только первый товар правильно и с ценой, остальные просто выводятся, но цена у всех одиковая - т.е. первого товара))
Помогите, кто сможет biggrin.gif



Спустя 23 минуты, 39 секунд (16.08.2009 - 14:38) glock18 написал(а):

Спустя 5 минут, 26 секунд (16.08.2009 - 14:43) Gradus написал(а):
PHP
$a=mysql_query("SELECT * FROM jos_vm_product_price as a, jos_vm_product as b
WHERE b.product_id = a.product_id"
);
while(
$b=mysql_fetch_array($a))
{ echo 
""; }

Вроде так

Спустя 1 час, 12 секунд (16.08.2009 - 15:43) glock18 написал(а):
можно и так))

Спустя 2 часа, 53 минуты, 4 секунды (16.08.2009 - 18:36) stas-dok написал(а):
Сделал так, всё работает, всем спасибо!
PHP
<?php
$db_name
="";    //база данных
$table="jos_vm_product";    //таблица
$host="";    //хост
$user="";        //логин
$pass="";        //password

//законнектимся - получаем link-идентификатор или вывод номера и текста ошибки
//с последующим прерыванием работы скрипта (die())
$link=mysql_connect($host,$user,$pass) or die(mysql_errno($link).mysql_error($link));
//выбираем базу данных BOOKS, созданную нами ранее
$db=mysql_select_db($db_name,$link) or die(mysql_errno($link).mysql_error($link));
//выберем данные

$a=mysql_query("SELECT * FROM jos_vm_product_price as a, jos_vm_product as b WHERE b.product_id = a.product_id ");
//сформируем заголовок таблицы результатов выборки
//#obj_id#title#description#condition#homes_size#price#
echo "<table border=\"1\" width=\"100%\">";
echo "<tr><td>Товар</td><td>Цена</td><td>Валюта</td></tr>";
while(
$b=mysql_fetch_array($a))
{
 echo "<tr><td>$b[product_name]</td><td>$b[product_price]</td><td>$b[product_currency]</td></tr>"; }


echo "</table>";
mysql_close($link);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.