[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вывод из БД
quickxyan
в таблице БД есть поле с датой, извлекаю все поля по условию и сравниваю текущую дату с датой в БД. если разница 1 или 2 дня, то вывожу алерт.
вроде все работает, но вот когда в БД например 2 записи про которые нада алертовать, то вылетает только один, а после перезагрузки страницы и второй. почему так - не пойму.


$cur_day=date(d);
$cur_mon=date(m);
$cur_yea=date(Y);

if($_SESSION["post"]=="секретарь")
$sql1="SELECT * FROM `".IN_TABLE1."` WHERE `na_kontrol`='1'";
else
$sql1="SELECT * FROM `".IN_TABLE1."` WHERE `uid`='".$_SESSION["id"]."' AND `na_kontrol`='1'";

$result=mysql_query($sql1);
while($row=@mysql_fetch_assoc($result)){
if($row["date_alert"] == 0 || $row["date_alert"] == 1){
$db_date = $row["data_kontr"];
$db_day= $db_date[8].$db_date[9];
$db_mon= $db_date[5].$db_date[6];
$db_yea= $db_date[0].$db_date[1].$db_date[2].$db_date[3];
$alert_day=$db_day - $cur_day;
$alert_mon=$db_mon - $cur_mon;
$alert_yea=$db_yea - $cur_yea;
if($alert_mon==0 && $alert_yea==0){
if($alert_day==2 && $row["date_alert"]==0){
echo '<script>alert("До контроля осталось 2 дня")</script>';
//$sql="UPDATE `".IN_TABLE1."` SET `date_alert`='1' WHERE `id`='".$row["id"]."'";
$result=mysql_query("UPDATE `".IN_TABLE1."` SET `date_alert`='1' WHERE `id`='".$row["id"]."'");
@mysql_fetch_assoc($result);
}
if($alert_day==1 && $row["date_alert"]==1){
echo '<script>alert("До контроля остался 1 день")</script>';
//$sql="UPDATE `".IN_TABLE1."` SET `date_alert`='2' WHERE `id`='".$row["id"]."'";
$result=mysql_query("UPDATE `".IN_TABLE1."` SET `date_alert`='2' WHERE `id`='".$row["id"]."'");
@mysql_fetch_assoc($result);
}
}
}
}





Спустя 55 минут, 15 секунд (10.05.2011 - 12:32) Renden написал(а):
quickxyan
Ну если проблема не в коде php и не в запросе mysql, а проблема непосредственно с алертом то это javascript..
и я предполагаю что когда срабатывают 2 условия у тя вывод в браузер такой:
Цитата
<script>alert("До контроля осталось 2 дня")</script>
<script>alert("До контроля остался 1 день")</script>


А должен быть такой:

<script type="text/javascript">
alert("До контроля осталось 2 дня");
alert("До контроля остался 1 день");
</
script>

Спустя 3 минуты, 4 секунды (10.05.2011 - 12:35) quickxyan написал(а):
Renden
а почему первое не сработает?

я открываю js -> вывожу алерт -> закрываю js

условия же в цикле, значит должны срабатывать по очереди так ведь?

Спустя 23 минуты, 50 секунд (10.05.2011 - 12:59) inpost написал(а):
quickxyan
Код отправь в переменную, а потом всё вместе выведи, как раз и убедишься, 2 алерта было или один ,и сработают ли они оба.
$var .= '';

Спустя 2 дня, 7 часов, 17 минут, 46 секунд (12.05.2011 - 20:17) Istsam написал(а):
говнокод)
 $db_day= $db_date[8].$db_date[9];
$db_mon= $db_date[5].$db_date[6];
$db_yea= $db_date[0].$db_date[1].$db_date[2].$db_date[3];
:blink: :blink: :blink:


_____________
печатаю со скоростью 320 минут в знак...

плюсуем карму не стесняемся
Быстрый ответ:

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