stas-dok
16.08.2009 - 15:14
Описываю свою проблему- есть база данных, мне нужно взять данные из двух таблиц, к примеру №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);
|
Выводится только первый товар правильно и с ценой, остальные просто выводятся, но цена у всех одиковая - т.е. первого товара))
Помогите, кто сможет
Спустя 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); |