Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Хранение значения переменной в MySQL-базе (http://forum.oszone.net/showthread.php?t=144737)

ManHack 10-07-2009 22:09 1164287

Хранение значения переменной в MySQL-базе
 
Здравствуйте!
У меня маленькая проблемка:
Имею в БД таблицу, в которой хранятся переменные и их значения:
т.е. 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 1164302

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

Coutty 10-07-2009 22:21 1164303

Цитата:

Цитата ManHack
Ошибки нет, но $path получает значение 1 (или Resource id #3), хотя в базе указано значение 10000. »

Всё правильно. Вы запрашиваете ресурс, а не значение.
Теперь надо ресурс обработать:
PHP код:

$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]; 

PHP код:

$sql "SELECT `sv_value` FROM `ServerVariables` WHERE `sv_name` = 'current_dir'";
$result mysql_query($sql) or die ("err_code = " mysql_error());
$path mysql_result($result2); 

А здесь - вы пытаетесь извлечь 3 столбец, хотя запросили всего один. Поставьте 0 вместо 2.

Igor_I 10-07-2009 22:30 1164311

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

Sham 10-07-2009 23:18 1164347

Coutty, mysql_fetch_array вроде бы массив массивов выдает...

ManHack 11-07-2009 00:20 1164371

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 1164540

Проверить запрос через phpmyadmin.
Раз ошибок нет запрос вернул пустой результат.
И исправь всё-таки последнюю строчку.

Sham 11-07-2009 10:02 1164559

PHP код:

$path mysql_result($result0); 

PHP код:

$result mysql_fetch_array($path); 
echo 
$result[0]['current_dir']; 
// или так: 
echo $result[0][0]; 



Время: 09:36.

Время: 09:36.
© OSzone.net 2001-