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

Форум MySQL

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

 

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

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

тема: обработчик соединения к базе данных
 
 автор: larush2   (21.02.2011 в 12:01)   письмо автору
 
 

Привет всем !

Столкнулся с такой вот проблемой- БД находится на сервере в соседнем городе, тот комп переодически не отвечает (соединение телнет по порту 3306 не подключается), у меня вместо графиков (JpGraph) пустой экран. Задача стоит раз в 15 минут запросить с сервера некие данные, обработать их и выдать в виде графиков.
Структура скрипта (очень примерно):


//-------------------
index.php
<img src=img.php>

//-------------------
img.php
include('sql_connect'); //коннектимся
include(coun.php);  //считаем  
include(draw.php);   // рисуем



Вопрос: как бы сделать так что когда нет коннекта к БД, то не перерисовывать графики, но обращаться начинать раз в 1-2 минуты до того момента когда коннект установится, отрисовать графики и потом уже обратиться через 15 минут ? Я полагаю что вызов sql_connect.php нужно перенести в index.php, проанализировать возвращаемое значение а как менять рефреши страниц ?

Спасибо.

  Ответить  
 
 автор: psychomc   (21.02.2011 в 12:06)   письмо автору
 
   для: larush2   (21.02.2011 в 12:01)
 

функция mysql_connect возвращает объект, если соединение установлено или false в случае ошибки, т.е судя по всему в sql_connect пишем

<?php
if (!$connect mysql_connect(...)) {
    
// завершаем работу скрипта
    
exit();
}

  Ответить  
 
 автор: larush2   (21.02.2011 в 12:14)   письмо автору
 
   для: psychomc   (21.02.2011 в 12:06)
 

уточняю, мне нужно поставить рефреш страницы:

1. Нормальный режим- обновление страницы раз в 15 минут
2. Если нет коннекта (я могу проанализировать) то раз в 1 минуту

  Ответить  
 
 автор: Trianon   (21.02.2011 в 12:15)   письмо автору
 
   для: larush2   (21.02.2011 в 12:14)
 

сейчас-то Вы интервал рефреша как-то ставите?

  Ответить  
 
 автор: larush2   (21.02.2011 в 12:46)   письмо автору
 
   для: Trianon   (21.02.2011 в 12:15)
 

пока никак- работаю над графиками. Но полагаю что Мета Refresh=90

  Ответить  
 
 автор: Trianon   (21.02.2011 в 13:24)   письмо автору
 
   для: larush2   (21.02.2011 в 12:46)
 

Полагаю достаточно просто Refresh, только не 90, а 900, очевидно. 900 и 60.

  Ответить  
 
 автор: larush2   (21.02.2011 в 13:32)   письмо автору
 
   для: Trianon   (21.02.2011 в 13:24)
 

да я понимаю НО !!!

- в 1 файле стоит тэг IMG, а не вызов процедуры, если я ДО тэга подключусь к БД, то в вызываемом файле подключения уже не видно ! Напрашивается вывод- делать подключение до тэга и в самом файле вывода графиков- уже некрасиво.
- По рефрешу страничка обновляется- стираются графики, доходит очередь до проверки коннекта, а его нет- вторая некрасивость.

Стал уже подумывать насчет Ajаxa, но не имею ни малейшего опыта...

  Ответить  
 
 автор: Косорылый   (21.02.2011 в 15:41)   письмо автору
 
   для: larush2   (21.02.2011 в 13:32)
 

Можно так
Данные графика загнать в буфер
если нет конекта --> показываем то, что в буфере
есть коннект -- >перезаписываем данные в буфере

  Ответить  
 
 автор: Trianon   (21.02.2011 в 15:44)   письмо автору
 
   для: larush2   (21.02.2011 в 13:32)
 

можно построить картинку (и сохранить в файл) в скрипте, который формирует тег <img src=сохр-файл > и поле заголовка с refresh'ем.

  Ответить  
 
 автор: Саня   (21.02.2011 в 16:54)   письмо автору
 
   для: Trianon   (21.02.2011 в 15:44)
 

Кстати говоря, очень полезная утилита munin примерно так и действует. Через какой-то промежуток времени складывает отчёты в виде графических файлов в определённую папку, которую можно настроить как virtual host (или его аналог) и смотреть через браузер в удобной форме (html он тоже генерирует).

  Ответить  
 
 автор: kosta_in_net   (21.02.2011 в 20:33)   письмо автору
 
   для: larush2   (21.02.2011 в 13:32)
 

index.php может выглядеть так:

<html>
<head>
<?php 
if (!$connect mysql_connect(...)) { 
    exit(
'<meta http-equiv="refresh" content="60; URL=адрес"></head><body><p>Нет коннекта</body></html>'); 
}
?>
<meta http-equiv="refresh" content="900; URL=адрес">
</head>
<body>
<img src=img.php>
</body>
</html>

  Ответить  
 
 автор: larush2   (22.02.2011 в 09:04)   письмо автору
 
   для: kosta_in_net   (21.02.2011 в 20:33)
 

Попробую консолидировать:

1 Картинки буду сохранять на диске с одинаковым именем, тогда в теле документа ссылка не будет меняться.
2 Отключу анализ коннекта в основном документе, refresh поставлю в 5 минут - отрисовка графиков займет пару секунд, лишний раз обновления никто и не заметит, а если не было коннекта то завдержка будет 20 а не 30 минут :-)
3 Вызывать отдельно скрипт коннекта и переформирования графиков. Можно даже виндовыми средствами. В связи с этим пару вопросов:

- как закрывать окно выполнения скрипта ? Думаю что в теле документа что-то надо написать
- как уменьшить время ожидания коннекта для данного скрипта до 1-2 сек ?

  Ответить  
Rambler's Top100
вверх

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