Задавайте вопросы, мы ответим
Вы не зашли.
Существует следующая таблица
CREATE TABLE `cod4`.`ds_svip` ( `id` int( 11 ) NOT NULL DEFAULT '5', `serverip` varchar( 50 ) NOT NULL DEFAULT '', `serverport` int( 10 ) NOT NULL DEFAULT '0', `notes` text, PRIMARY KEY ( `id` ) ) ENGINE = MYISAM DEFAULT CHARSET = cp1251;
Самостоятельный сайт мониторинга загружает из данной таблицы ip/port,
$server_ip = $row_svip['serverip']; $server_port = $row_svip['serverport'];
из по-умолчанию единственной строки с id=5; добавил строки id=6,7 с адресами серверов. Функция 2х или более адресов скриптом мониторинга не предусмотрена, принял решение подменять строки в базе id 5 -> 6 в случае параметра MW и id 5 -> 7 при параметре MW2.
Страница данного подгружается следующим образом:
1. после клика по ссылке меню
<a href="{BASEPATH}monitoring.php?select=MW{additional_url}"> и ...?select=MW2{... соответственно
2. загружается monitoring.php
<?php define('IN_ULTRASTATS', true); $gl_root_path = './'; include($gl_root_path . 'include/functions_common.php'); include($gl_root_path . 'include/functions_frontendhelpers.php'); InitUltraStats(); InitFrontEndDefaults(); // Only in WebFrontEn $alt_ip = $_SERVER['REMOTE_ADDR']; include("config.php"); $link = mysql_connect($CFG['DBServer'], $CFG['User'], $CFG['Pass']); mysql_select_db($CFG['DBName'], $link); $propusk=mysql_query("SELECT * FROM Portal_session WHERE uname='$alt_ip'"); if(mysql_num_rows($propusk)>0) { // --- Parsen and Output InitTemplateParser(); $page -> parser($content, "unlogged.html"); header('Refresh: 5;URL={BASEPATH}/index.php?name=account'); $page -> output(); // --- } else { // --- BEGIN CREATE TITLE $content['TITLE'] = InitPageTitle(); // Append custom title part! $content['TITLE'] .= " :: Monitoring "; // --- END CREATE TITLE // --- BEGIN Custom Code if ($_GET['select'] ="MW"){ $strsql="UPDATE `ds_svip` SET id = '5' WHERE id = '6' ORDER BY `ds_svip`.`id` ASC LIMIT 0 , 30"; mysql_query($strsql,$link);} else{$strsql="UPDATE `ds_svip` SET id = '5' WHERE id = '7' ORDER BY `ds_svip`.`id` ASC LIMIT 0 , 30"; mysql_query($strsql,$link); }; // --- // --- Parsen and Output InitTemplateParser(); $page -> parser($content,"monitoring.html"); $page -> output(); // --- ?php>
3. Ну и собственно разворачивается monitoring.html
<META charset="windows-1251"> <meta http-equiv=refresh content="; url="{BASEPATH}monitoring.php?{additional_url}"> <!-- INCLUDE include_header.html --> <iframe src="./monitoring/index.php" frameborder="0" scrolling="no" width="100%" height="780"></iframe> <!-- INCLUDE include_footer.html -->
Как понятно почитавшим - не работает, в том виде в котором я представил.
Подозреваю, что проще подсадить на линки меню функцию, но реализацию запроса в частности не представляю, поясните пожалуста.
Отредактированно Tiger (04.12.2011 00:17:19)
Неактивен
Лично я не понял ни проблему, ни что надо сделать, ни что такое MW и MW2 Скрипт работает только с id=5, Вы все другие id меняете на 5, значит скрипт успешно эти данные обрабатывает. В чём проблема тогда?
Вот такие вещи "ORDER BY `ds_svip`.`id` ASC LIMIT 0 , 30" в приведённых запросах апдейтов вроде как совсем ни к чему.
Неактивен
в 2х вещах -
1) данные обрабатывает, ошибок не возникает даже в виде mysql_query("UPDATE `ds_svip` SET id = '5' WHERE id = '7' LIMIT 1",$link), но таблица остается неизменной.
2) правильно ли это?
....
<a href="{BASEPATH}monitoring.php?select=MW{additional_url}">
....
if ($_GET['select'] ="MW"){
....
Отредактированно Tiger (04.12.2011 00:50:49)
Неактивен
1) Этот запрос не изменит данные, если в таблице ds_svip нету id со значением 7. Если же там есть такие id, тогда значит запрос не выполняется, да.
2) Что-то мне подсказывает, что $_GET['select'] будет равно не "MW", а MW{additional_url}
Кстати, BASEPATH и additional_url - это константы или переменные? Как они определены в коде?
Неактивен
Константа BASEPATH, additional_url для поисковых роботов, но пока пустует(удалил)
Попытки ракировки строк по id выдают ошибку дабла id5 да и впоследствии к примеру после 3й уже приведут к смещению значений в таблице (5-7,5-6,5-7 и 6я поменяется значениями с 7й)
Копировать значения последующих строк на id5 -? подскажите?
На данный момент лучшее решение доп таблица, оснавная сбрасывается и в нее повторно вносится требуемое значение из второй таблицы
Но вопрос о том как управлять выбором строки из второй таблицы посредством переменной в ссылке [select] я так и не понял...
Отредактированно Tiger (05.12.2011 09:30:39)
Неактивен