|
автор: nekt (20.04.2006 в 12:54) |
|
| Есть таблица, структура такая, есть поле m_id, в него заносится номер заказа, заказ может состоять из нескольких позицый, к примеру заказ №2, таблицы тогда будет выглядить так
m_id tovar cena result
2 t1 10 0
2 t2 22 0
2 t3 15 0
идет выборка
Не исполненные заявки:
<?
$res_num=mysql_query("select distinct m_id from table where user_id='$uid' and result='0'");
$num_st=mysql_num_rows($res_num);
if ($num_st!=0) {
$res=mysql_query("select * from table where m_id='$row_num[m_id]'");
while ($row=mysql_fetch_array($res)){
echo "$row[tovar] $row[cena]<br>";
}
}
?>
Исполненные заявки:
<?
$res_num=mysql_query("select distinct m_id from table where user_id='$uid' and result='1'");
$num_st=mysql_num_rows($res_num);
if ($num_st!=0) {
$res=mysql_query("select * from table where m_id='$row_num[m_id]'");
while ($row=mysql_fetch_array($res)){
echo "$row[tovar] $row[cena]<br>";
}
}
?>
|
все нормально выбирается, проблема в том, что в поле result может стоять 1, к примеру вот так
m_id tovar cena result
2 t1 10 0
2 t2 22 1
2 t3 15 0
и тогда получается что данная выборка происходит 2 раза, и там и там.
Кас сделать, что бы в Не исполненных заявках выбиралос при условие что если есть хоть один 0 в поле result, а в Исполненных заявках выборка происходила при условие что в поле result стоят все 1 ? | |
|
|
|
|
|
|
|
для: nekt
(20.04.2006 в 12:54)
| | Что-то у меня с соображалкой плохо. Мысли такие:
заводим еще одну таблицу, где у нас номера заказов, заказчик и статус заказа.
или вариант проще: сравниваем полученные массивы. Те позиции которые пересекаются - считаются невыполненными. | |
|
|
|
|
автор: nekt (21.04.2006 в 00:01) |
|
|
для: Loki
(20.04.2006 в 14:02)
| | как сравнить массивы ?
хоть примерно код можете дать ?
неужел никто нечего больше предложить не может по этому вопросу. ? | |
|
|
|
|
|
|
|
для: nekt
(21.04.2006 в 00:01)
| | Сравниваются массивы в базе данных или уже извлечённые? | |
|
|
|