SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.12.2011 23:21:55

Tiger
Участник
Зарегистрирован: 03.12.2011
Сообщений: 3

Ситуативное изменение параметра запроса...

Существует следующая таблица

Код:

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)

Неактивен

 

#2 04.12.2011 00:16:00

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Ситуативное изменение параметра запроса...

Лично я не понял ни проблему, ни что надо сделать, ни что такое MW и MW2 smile Скрипт работает только с id=5, Вы все другие id меняете на 5, значит скрипт успешно эти данные обрабатывает. В чём проблема тогда?

Вот такие вещи "ORDER BY `ds_svip`.`id` ASC LIMIT 0 , 30" в приведённых запросах апдейтов вроде как совсем ни к чему.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#3 04.12.2011 00:49:03

Tiger
Участник
Зарегистрирован: 03.12.2011
Сообщений: 3

Re: Ситуативное изменение параметра запроса...

в 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)

Неактивен

 

#4 04.12.2011 00:53:42

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Ситуативное изменение параметра запроса...

1) Этот запрос не изменит данные, если в таблице ds_svip нету id со значением 7. Если же там есть такие id, тогда значит запрос не выполняется, да.

2) Что-то мне подсказывает, что $_GET['select'] будет равно не "MW", а MW{additional_url}

Кстати, BASEPATH и additional_url - это константы или переменные? Как они определены в коде?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 05.12.2011 09:09:55

Tiger
Участник
Зарегистрирован: 03.12.2011
Сообщений: 3

Re: Ситуативное изменение параметра запроса...

Константа BASEPATH, additional_url для поисковых роботов, но пока пустует(удалил)
Попытки ракировки строк по id выдают ошибку дабла id5 да и впоследствии к примеру после 3й уже приведут к смещению значений в таблице (5-7,5-6,5-7  и 6я поменяется значениями с 7й)

Копировать значения последующих строк на id5 -? подскажите?
На данный момент лучшее решение доп таблица, оснавная сбрасывается и в нее повторно вносится требуемое значение из второй таблицы

Но вопрос о том как управлять выбором строки из второй таблицы посредством переменной в ссылке [select] я так и не понял...

Отредактированно Tiger (05.12.2011 09:30:39)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson