Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не знаю как правильно назвать
 
 автор: 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 ?

   
 
 автор: Loki   (20.04.2006 в 14:02)   письмо автору
 
   для: nekt   (20.04.2006 в 12:54)
 

Что-то у меня с соображалкой плохо. Мысли такие:
заводим еще одну таблицу, где у нас номера заказов, заказчик и статус заказа.
или вариант проще: сравниваем полученные массивы. Те позиции которые пересекаются - считаются невыполненными.

   
 
 автор: nekt   (21.04.2006 в 00:01)
 
   для: Loki   (20.04.2006 в 14:02)
 

как сравнить массивы ?
хоть примерно код можете дать ?

неужел никто нечего больше предложить не может по этому вопросу. ?

   
 
 автор: cheops   (21.04.2006 в 09:36)   письмо автору
 
   для: nekt   (21.04.2006 в 00:01)
 

Сравниваются массивы в базе данных или уже извлечённые?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования