Войти

Показать полную графическую версию : Хранение значения переменной в MySQL-базе


ManHack
10-07-2009, 22:09
Здравствуйте!
У меня маленькая проблемка:
Имею в БД таблицу, в которой хранятся переменные и их значения:
т.е. 2 столбца: variable_name и variable_value.
Мне нужно чтобы запрос из PHP файла к таблице по имени переменной забирал её значение.


Делал так:
$sql = "SELECT `sv_value` FROM `ServerVariables` WHERE `sv_name` = 'current_dir'";
$path = mysql_query($sql) or die ("err_code = " . mysql_error());
Ошибки нет, но $path получает значение 1 (или Resource id #3), хотя в базе указано значение 10000.
Кстати, что такое "Resource id #3"? В мануале не нашёл.

Пытался исправить запрос следующим образом:
$sql = "SELECT `sv_value` FROM `ServerVariables` WHERE `sv_name` = 'current_dir'";
$result = mysql_query($sql) or die ("err_code = " . mysql_error());
$path = mysql_result($result, 2);
Но это возвращает ошибку.

Как мне добится забирания из таблицы того значения переменной, которое там указано?

Igor_I
10-07-2009, 22:21
А что такое 'current_dir'? Где $?
Если не проходит запрос сделай echo $sql; - помогает понять совпадает ли настоящий запрос с задуманным.

Coutty
10-07-2009, 22:21
Ошибки нет, но $path получает значение 1 (или Resource id #3), хотя в базе указано значение 10000. »
Всё правильно. Вы запрашиваете ресурс, а не значение.
Теперь надо ресурс обработать:
$sql = "SELECT `sv_value` FROM `ServerVariables` WHERE `sv_name` = 'current_dir'";
$path = mysql_query($sql) or die ("err_code = " . mysql_error());
$result = mysql_fetch_array($path);
echo $result['current_dir'];
// или так:
echo $result[0];


$sql = "SELECT `sv_value` FROM `ServerVariables` WHERE `sv_name` = 'current_dir'";
$result = mysql_query($sql) or die ("err_code = " . mysql_error());
$path = mysql_result($result, 2);
А здесь - вы пытаетесь извлечь 3 столбец, хотя запросили всего один. Поставьте 0 вместо 2.

Igor_I
10-07-2009, 22:30
А я подумал про переменную, а это оказывается название. Короче меня читать не надо :)

Sham
10-07-2009, 23:18
Coutty, mysql_fetch_array вроде бы массив массивов выдает...

ManHack
11-07-2009, 00:20
Coutty, вроде бы правильно то, что ты говоришь, но не работает, всё-равно то же значение выводит.

$sql = "SELECT `sv_value` FROM `ServerVariables` WHERE `sv_name` = 'current_dir'";
$result = mysql_query($sql) or die ("err_code = " . mysql_error());
$path = mysql_result($result, 2);
выводит абсолютно белый экран, без каких-либо ошибок...

Igor_I
11-07-2009, 09:25
Проверить запрос через phpmyadmin.
Раз ошибок нет запрос вернул пустой результат.
И исправь всё-таки последнюю строчку.

Sham
11-07-2009, 10:02
$path = mysql_result($result, 0);
$result = mysql_fetch_array($path);
echo $result[0]['current_dir'];
// или так:
echo $result[0][0];




© OSzone.net 2001-2012