[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод собственной цены в таблице прайса
zee
Добрый день, уважаемые господа!)

Есть проблема, над которой уже бьюсь несколько дней - решил зарегистрироваться, что бы профессионалы объяснили мне, как же все-таки правильно решить данную задачу. К сожалению поиск по интернету ничего не дал, так как подозреваю, что я искал неверное значение.


Итак, в базе есть две таблицы: одна таблица общих цен (table1), и таблица индивидуального прайса (table2).

Структура таблиц одинаковая и очень простая:

table1
tovar_id all_price

table2
tovar_id individual_price

Задача:
Сделать вывод, где отображаются все элементы товаров с первой таблицы, но(!) — если в table2 встречается tovar_id с таким же как и в table1, то в выводе указывается это значение.

Перепробовал и while, и for, читал про вложенные циклы - но что-то ничего толком не выходит, уже сил нет.
PHP
<?php

include("db.connect.php");

$price_q = mysql_query("SELECT * FROM table1 order by tovar_id ASC");
$individual_price = mysql_query("SELECT * FROM table2 order by tovar_id");

?>
<br />

<h3>Цены</h3>

       
<table width="100%" border="0" align="center">
  <tr>
    <td>Общая цена</td>
    <td>Моя цена</td>    
  </tr>
<?

while($data = mysql_fetch_array($price_q))
{
 
      while
($data2 = mysql_fetch_array($individual_price))
      {

if(
$data['tovar_id'] == $data2['tovar_id'])
{
$ind_price = $data2['ind_price']
}
       
?>
  
  <tr>
    <td><? print $data['all_price']; ?></td>
    <td><? print $data2['ind_price']; ?></td>
  </tr>
<?
}
}



Проблема в том, что товаров может быть 100, а индивидуальная цены всего две например - не знаю как добиться, что бы выводились все товары, но только если совпадают tovar_id появлялась надпись с индивидуальной ценой.

Пробовал значения в $data2 загонять в массив, а потом через in_array производить сопоставление - но ничего не выходило.

Очень прошу, подскажите как такое возможно реализовать - чувствую, что как-то очень просто, но - увы, не знаю.



Спустя 1 час, 37 минут, 23 секунды (6.10.2009 - 10:43) jetistyum написал(а):
SQL
SELECT table1.*, table2.individual_price

FROM table1 LEFT JOIN table2 ON table2.tovar_id = table1.tovar_id

order by tovar_id ASC


вот как-то так. Ты получишь на выходе массив с тремя ключами
tovar_id, price, individual_price
потом при отображении проверяешь если individual_price!=false , то выводишь individual, else - price

Спустя 1 минута, 14 секунд (6.10.2009 - 10:44) zee написал(а):
хм... спасибо, буду пробовать - отпишусь (неужели настолько просто?)

Спустя 23 минуты, 22 секунды (6.10.2009 - 11:07) jetistyum написал(а):
не, ну можно и посложнее smile.gif но вроде незачем smile.gif
Быстрый ответ:

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