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

Форум PHP

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

 

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

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

тема: 1 and 2 = true, 1 and 3 =false, 2 and 3 =false, 3 = rtue
 
 автор: beli   (29.05.2007 в 17:05)   письмо автору
 
 

Уважаемые господа!
Подскажите как можно реализовать такую вот конструкцию на PHP:
n1 and n2 = true
n1 and n3 = false
n2 and n3 = false
n3 = true
Возможно при помощи какого нибудь цикла?
Я только начал изучать php и толком мало что понял. Помогите разобраться, пожалуйста!

   
 
 автор: CrazyAngel   (29.05.2007 в 17:08)   письмо автору
 
   для: beli   (29.05.2007 в 17:05)
 

это не возможно в принципе

   
 
 автор: beli   (29.05.2007 в 17:16)   письмо автору
 
   для: CrazyAngel   (29.05.2007 в 17:08)
 

Значит ситуация такая: имеется некий скрипт при помощи которого резервируется помещение целиком или одна из его частей, те.
n1 = одна часть помещения
n2 = вторая часть помещения
n3 = помещение целиком
можно занять одновременно n1 и n2, но если хотя бы одна из частей занята то n3 уже нельзя занять. Все это привязано к определенному времени которое берется из бд.
Необходимо сделать так что бы при true появлялось предупреждение об ошибке.

Вот часть кода которая берёт значение из бд (parts - это и есть n1 ...3):

case "add":
$q_parts=($parts==3)?"(parts='1' or parts='2' or parts='3')":"parts='".$parts."'";

$errs=db_query($con, "select * from peregovor where office='".$when."' and ".$q_parts." and start_date='".$start_date."' and ((start_time<='".$start_time."' and end_time>='".$start_time."') or (start_time<='".$end_time."' and end_time>='".$end_time."'));");
if($errs){
$error=1;
break;
}
$subject="&#231;&#224;&#234;&#224;&#231; ".$title."&#224; &#237;&#224; ".$offices[$when];
$query="
insert into peregovor
(start_time, end_time, who, need, descrip, start_date, make, tech, cnt, more, office, parts, purpose)
values
('$start_time', '$end_time', $p, '$need', '$comment', '$start_date', '".serialize($make)."', '".serialize($tech)."', $cnt, '$more', '".$when."', '".$parts."', ".$purpose.")";
break;

   
 
 автор: sim5   (29.05.2007 в 18:34)   письмо автору
 
   для: beli   (29.05.2007 в 17:16)
 

n1 = число 0 или 0.5
n2 = число 0 или 0.5
n3 = число 0 или 1

n1 + n2 + n3 = проверяем, больше 1, значит нельзя.

   
 
 автор: Trianon   (29.05.2007 в 18:40)   письмо автору
 
   для: beli   (29.05.2007 в 17:16)
 

Разделяйте ресурс на независимые части (у Вас - части помещения)
и распределяйте их независимо одну от других.

   
 
 автор: beli   (30.05.2007 в 09:36)   письмо автору
 
   для: Trianon   (29.05.2007 в 18:40)
 

Можно представить это кодом? Просто я только начал вникать в PHP, да и скрипт вообще непонятно кто писал.

   
 
 автор: vbps   (30.05.2007 в 16:17)   письмо автору
 
   для: beli   (30.05.2007 в 09:36)
 

Может я чегото не понял, но помоему тут просто условие:


<?
error_reporting
(E_ALL & ~E_NOTICE);

// $n1 = 1;
$n2 2;
$n3 3;

$s "что то еще, если ни одно из условий не подходит";
if (!!
$n1 && !!$n2$s "true для n1 и n2";
if (!!
$n1 && !!$n3$s "false для n1 и n3";
if (!!
$n2 && !!$n3$s "false для n2 и n3";
if (!
$n1 && !$n2 && !!$n3$s "true для n3";
print 
$s;
?>

   
 
 автор: beli   (31.05.2007 в 10:56)   письмо автору
 
   для: vbps   (30.05.2007 в 16:17)
 

А как это можно увязать с этим кодом:

case "add":

$q_parts=($parts==3)?"(parts='1' or parts='2' or parts='3')":"parts='".$parts."'";
$errs=db_query($con, "select * from peregovor where office='".$when."' and ".$q_parts." and start_date='".$start_date."' and ((start_time<='".$start_time."' and end_time>='".$start_time."') or (start_time<='".$end_time."' and end_time>='".$end_time."'));");
if($errs){
$error=1;
break;
}
$subject="&#231;&#224;&#234;&#224;&#231; ".$title."&#224; &#237;&#224; ".$offices[$when];
$query="
insert into peregovor
(start_time, end_time, who, need, descrip, start_date, make, tech, cnt, more, office, parts, purpose)
values
('$start_time', '$end_time', $p, '$need', '$comment', '$start_date', '".serialize($make)."', '".serialize($tech)."', $cnt, '$more', '".$when."', '".$parts."', ".$purpose.")";
break;

   
 
 автор: vbps   (31.05.2007 в 18:14)   письмо автору
 
   для: beli   (31.05.2007 в 10:56)
 

Честно говоря я не совсем понял чего вы хотите добиться этим кодом.

замените $s на $parts, если $parts должен быть равен true или false уберите лишние строки.
и главное если $parts будет пустым произойдет ошибка при запросе к базе.

   
Rambler's Top100
вверх

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