bucha
Участник
Offline
|
|
« Ответ #30 : 24-11-2010 09:30 » |
|
Я знаю как строятся таблици, я тебе пример показываю куска с моего скриптика, у меня правильно таблици построяны, просто у меня проблема в том что когда нету конекта с базой то таблицы пропадают и все. Может замисть написать что-то другое чтоб оно мне выводило замисть пропавшей таблицы?
|
|
« Последнее редактирование: 24-11-2010 09:34 от bucha »
|
Записан
|
|
|
|
baldr
|
|
« Ответ #31 : 24-11-2010 10:03 » |
|
bucha, возможно, ошибки не выводятся просто.. у тебя в php.ini стоит log_errors=Off ? поставь в On и посмотри на ошибки.. А может, у тебя просто таймаут еще не отработал? Страница закончила загружаться?
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
bucha
Участник
Offline
|
|
« Ответ #32 : 24-11-2010 10:26 » |
|
Страница загрузку завершила, log_errors = On включил но ошибок непоказивает в браузере.
|
|
|
Записан
|
|
|
|
baldr
|
|
« Ответ #33 : 24-11-2010 11:09 » |
|
bucha, сорри за глупый вопрос, но как ты "выключаешь" базу? Останавливаешь сервис? Какой?
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
bucha
Участник
Offline
|
|
« Ответ #34 : 24-11-2010 11:10 » |
|
нее просто удаленный комп выключаю на котором база и все
Добавлено через 7 минут и 32 секунды: вот как у меня должно быть, там где с нолями ряд, это комп с базой выключеный, но у меня когда комп выключаешь то таблица с нолями пропадает а мне нада чтоб она показывала.
|
|
« Последнее редактирование: 24-11-2010 11:17 от bucha »
|
Записан
|
|
|
|
baldr
|
|
« Ответ #35 : 24-11-2010 11:20 » |
|
bucha, * вывод на страницу чем делается? Просто print или echo? А предыдущие строчки сохраняются или вообще страница пустая? * Посмотри что на самом деле выводится - в браузере исходник страницы посмотри.
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
RXL
|
|
« Ответ #36 : 24-11-2010 11:31 » |
|
Надо включить в конфиге: display_errors = On error_reporting = E_ALL & ~E_NOTICE
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
bucha
Участник
Offline
|
|
« Ответ #37 : 24-11-2010 11:33 » |
|
bucha, * вывод на страницу чем делается? Просто print или echo? А предыдущие строчки сохраняются или вообще страница пустая? * Посмотри что на самом деле выводится - в браузере исходник страницы посмотри.
Предыдущие строчки показываются. Вывод вот так у меня, таблицы у меня в файл несохраняются, просто идет запрос выводит это на экран и все. Правда если один сервер выключен то ниже таблицы непоказываются. TABLE чуть выше print( " <tr> <td><td>$line[0]</td><td>$line[1]</td><td>$line[2]</td><td>$line[3]</td><td>$line[4]</td>\n");} Добавлено через 5 минут и 27 секунд:Надо включить в конфиге: display_errors = On error_reporting = E_ALL & ~E_NOTICE
включил но нечего непоказывает не какие ошибки
|
|
« Последнее редактирование: 24-11-2010 11:38 от bucha »
|
Записан
|
|
|
|
baldr
|
|
« Ответ #38 : 24-11-2010 11:42 » |
|
Правда если один сервер выключен то ниже таблицы непоказываются. Естественно - ты же сам прекращаешь выполнение и вызываешь die() . Предыдущие строчки показываются. Вывод вот так у меня, таблицы у меня в файл несохраняются, просто идет запрос выводит это на экран и все. В браузере на готовой странице посмотри её исходник и скажи что там в конце?
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
bucha
Участник
Offline
|
|
« Ответ #39 : 24-11-2010 11:48 » |
|
Идет обрыв, то что ниже должно показивать в браузере непоказивате так это получается изза or die? Убрал я or die все, всеравно после кода там где нету конекта с базой после него ниже код невыводится на страницу.
|
|
« Последнее редактирование: 24-11-2010 11:53 от bucha »
|
Записан
|
|
|
|
baldr
|
|
« Ответ #40 : 24-11-2010 12:14 » |
|
bucha, в конфиге включи все отладочные флаги, иначе гадать будем долго: error_reporting = E_ALL display_errors = on display_startup_errors = on log_errors = On ignore_repeated_errors = Off ignore_repeated_source = Off error_log = "c:\phperror.log" Тогда в файле c:\phperror.log сможешь увидеть все ошибки.
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
Kivals
|
|
« Ответ #41 : 24-11-2010 12:21 » |
|
Убрал я or die все, всеравно после кода там где нету конекта с базой после него ниже код невыводится на страницу.
Правильно - потому что возникают ошибки. Тебе не просто убрать die нужно - а использовать проверку на подключение: Код внутри $conn = mssql_connect ('10.10.10.10', 'test', 'test'); if ($conn) { mssql_select_db('test, $conn) or die ("Выбрать базу данных"); $result = mssql_query("sql запрос"); for ($i = 0; $i < mssql_num_rows( $result ); ++$i) { $line = mssql_fetch_row($result); print( "$line[0] - $line[1]\n"); } mssql_close($conn); } else { print("No DB connection"); // это вместо die() }
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #42 : 24-11-2010 13:08 » |
|
Надо включить в конфиге: display_errors = On error_reporting = E_ALL & ~E_NOTICE
включил но нечего непоказывает не какие ошибки После надо перезапустить Апач (или другой HTTP-сервер, которым ты пользуешься). Это необходимо для того, чтобы изменения конфига вступили в силу.
|
|
« Последнее редактирование: 24-11-2010 13:09 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
bucha
Участник
Offline
|
|
« Ответ #43 : 25-11-2010 08:41 » |
|
Ребята может я конекты к базам неправильно сделал, у меня нескалько удаленных баз и я делаю конекты к каждой базе свой (пример ниже) и это все у меня на одной странице. Это все на одной странице и ниже проверка на онлайн 1-я база $conn = mssql_connect ('10.10.10.10', 'test', 'test'); if ($conn) { mssql_select_db('test, $conn) or die ("Выбрать базу данных"); $result = mssql_query("sql запрос"); for ($i = 0; $i < mssql_num_rows( $result ); ++$i) { $line = mssql_fetch_row($result); print( "$line[0] - $line[1]\n"); } mssql_close($conn); $flogin = fsockopen ("10.10.10.10",135, $errno, $errstr, 1); if ( $flogin ) $FORM7 = "<font color=black size=2><b></b> <font color=green><b>Online</b></font><br>"; else $FORM7 = "<font color=black size=2><b></b> <font color=red><b>Offline</b></font><br>"; echo $FORM7;
2-я база $conn = mssql_connect ('10.10.10.11', 'test', 'test'); if ($conn) { mssql_select_db('test, $conn) or die ("Выбрать базу данных"); $result = mssql_query("sql запрос"); for ($i = 0; $i < mssql_num_rows( $result ); ++$i) { $line = mssql_fetch_row($result); print( "$line[0] - $line[1]\n"); } mssql_close($conn); $flogin = fsockopen ("10.10.10.11",135, $errno, $errstr, 1); if ( $flogin ) $FORM7 = "<font color=black size=2><b></b> <font color=green><b>Online</b></font><br>"; else $FORM7 = "<font color=black size=2><b></b> <font color=red><b>Offline</b></font><br>"; echo $FORM7;
и так дальше может както одним кодом можна? получается если 1-й конект есть то 2-й конект показивается, если первый конект выключен (сервер) то 2-й конект непоказивается даже если там конект есть.
|
|
|
Записан
|
|
|
|
baldr
|
|
« Ответ #44 : 25-11-2010 08:55 » |
|
bucha, ты про циклы вообще слышал что-нибудь?
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
bucha
Участник
Offline
|
|
« Ответ #45 : 25-11-2010 09:00 » |
|
bucha, ты про циклы вообще слышал что-нибудь?
ты неразговаривай сомной как с професионалом, я вобще пхп недавно изучаю, ты лучше показал бы как цыкл пишется примерчик какой нибуть. пожалуйста
|
|
« Последнее редактирование: 25-11-2010 09:14 от bucha »
|
Записан
|
|
|
|
baldr
|
|
« Ответ #46 : 25-11-2010 09:33 » |
|
bucha, оно? $dbases=array(); $dbases[]=array("name" => "database1", "dbhost" => "10.10.10.10", "dbuser" => "test", "dbpass" => "test"); $dbases[]=array("name" => "database2", "dbhost" => "10.10.10.11", "dbuser" => "test", "dbpass" => "test"); $dbases[]=array("name" => "database3", "dbhost" => "10.10.10.12", "dbuser" => "test", "dbpass" => "test"); print "<table>"; foreach($dbases as $db) { $conn = mssql_connect ($db['dbhost'], $db['dbuser'], $db['dbpass']); if (!$conn) { print "<tr><td>0</td><td>0</td><td>0</td><td>0</td><td><font color=red><b>Offline</b></font></td></tr>"; continue; } $dbsel=mssql_select_db(test, $conn); $result = mssql_query("select 'a', 'b', 'c', 'd' from dual"); while ($row=mssql_fetch_array($result) { print "<tr><td>".$row[0]."</td><td>".$row[1]."</td><td>".$row[2]."</td><td>".$row[3]."</td><td><font color=green><b>Online</b></font></td></tr>"; } mssql_close($conn); } print "</table>";
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
bucha
Участник
Offline
|
|
« Ответ #47 : 25-11-2010 09:53 » |
|
bucha, оно? $dbases=array(); $dbases[]=array("name" => "database1", "dbhost" => "10.10.10.10", "dbuser" => "test", "dbpass" => "test"); $dbases[]=array("name" => "database2", "dbhost" => "10.10.10.11", "dbuser" => "test", "dbpass" => "test"); $dbases[]=array("name" => "database3", "dbhost" => "10.10.10.12", "dbuser" => "test", "dbpass" => "test"); print "<table>"; foreach($dbases as $db) { $conn = mssql_connect ($db['dbhost'], $db['dbuser'], $db['dbpass']); if (!$conn) { print "<tr><td>0</td><td>0</td><td>0</td><td>0</td><td><font color=red><b>Offline</b></font></td></tr>"; continue; } $dbsel=mssql_select_db(test, $conn); $result = mssql_query("select 'a', 'b', 'c', 'd' from dual"); while ($row=mssql_fetch_array($result) { print "<tr><td>".$row[0]."</td><td>".$row[1]."</td><td>".$row[2]."</td><td>".$row[3]."</td><td><font color=green><b>Online</b></font></td></tr>"; } mssql_close($conn); } print "</table>"; Ооойй пасибки тебе, чуть поже попробую, на глаз вроде оно. Добавлено через 21 час, 48 минут и 44 секунды:Работает, конечно так быстрее чуток, но всеравно когда скрипт первый сервер 10.10.10.10 невидет по какойто причине то ниже сервер 10.10.10.11 он нехочет читать и выдает ныже указаные ошибки по таймауту и по конекту, а можна както сделать такую штуку, типа если он неможет прочитать его чтоб он переходил на другой айпи и его пытался прочитать, а предыдущему выдал просто ошибку ту которую я напешу Я както непойму почему неможет просто показать ошибку даже если я в другой под сети пишет ошибки Maximum execution time of 30 seconds exceeded in и такую mssql_connect() [function.mssql-connect]: Unable to connect to server: 10.10.10.10.in Кстати с таким принтом выводит результаты. { $line = mssql_fetch_row($result); print( " <tr> <td>$line[0]</td><td>$line[1]</td><td>$line[2]</td><td>$line[3]</td><td>$line[4]</td><td><font color=green><b>Online</b></font></td></tr> \n");} mssql_close($conn); } А с этим нехочет... while ($row=mssql_fetch_array($result) { print "<tr><td>".$row[0]."</td><td>".$row[1]."</td><td>".$row[2]."</td><td>".$row[3]."</td><td><font color=green><b>Online</b></font></td></tr>"; } mssql_close($conn);
|
|
« Последнее редактирование: 26-11-2010 07:42 от bucha »
|
Записан
|
|
|
|
baldr
|
|
« Ответ #48 : 26-11-2010 07:57 » |
|
bucha, ну, в общем, тут твои ошибки выбора платформы сталкиваются с моими ошибками Если вкратце, то, видимо, у тебя в PHP установлен таймаут на выполнение скрипта в 30 секунд. А таймаут на операции с сокетами или с MSSQL - больше. И получается что PHP не дожидается завершения долгих операций. Можно пофиксить это насильно: ini_set("max_execution_time", "300"); // 5 минут А вообще, PHP не очень удачный выбор для мониторинга удаленных баз. Этот язык лучше подойдет для обработки выводимой информации, а мониторинг лучше делать отдельным приложением.. Кстати с таким принтом выводит результаты.
Да, сорри, я делал по аналогии с mysql - с ним больше знаком. работает - и хорошо
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
bucha
Участник
Offline
|
|
« Ответ #49 : 29-11-2010 15:19 » |
|
ini_set("max_execution_time", "300"); // 5 минут Спасибо тебе, поставил 600 отрабатывает теперь все сервера и показывает онлайн сервера, Классс. Я забыл, а каким кодом убераются ошибки, чтоб в браузере непоказывались? Все вспомнил Добавлено через 9 дней, 22 часа, 59 минут и 40 секунд:а как сделать чтоб общее количество подщитовало? Или покажите хотябы где примеры можно посмотреть.
|
|
« Последнее редактирование: 09-12-2010 14:36 от bucha »
|
Записан
|
|
|
|
baldr
|
|
« Ответ #50 : 09-12-2010 14:38 » |
|
Каков вопрос - таков ответ: используй счетчик.
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
|
baldr
|
|
« Ответ #52 : 09-12-2010 15:05 » |
|
bucha, переменную-счетчик. Прибавляй к этой переменной каждый раз это число.
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
Sla
|
|
« Ответ #53 : 09-12-2010 15:06 » |
|
ОФФТОП!!!
bucha, ты прикалываешься, или гордишься незнанием русского языка? Я понимаю, что ты с Украины, но это не значит что так модно писать безграмотно
счотчик (якобы по-русски) может звучать и писаться якобы по-украински счьотчик ьо=ё ( а тем более тебе был дан ответ с правильным написанием слова) - за исправление благодарю.
нескальких - нет такого слова в русском языке. нада - ну не надо меня переубеждать в тяжелом детстве.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
bucha
Участник
Offline
|
|
« Ответ #54 : 09-12-2010 15:17 » |
|
мы же тут не литературу изучаем.. Или литературу?
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #55 : 09-12-2010 15:24 » |
|
мы учимся правильно общаться и формулировать свои мысли, в том числе (в основном) путем чтения.
Если ты заметил, то я тоже не из России.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #56 : 09-12-2010 17:02 » |
|
bucha, советую переосмыслить жизненные ценности и начать нормальное общение.
|
|
|
Записан
|
|
|
|
|