PDA

Просмотр полной версии : mysql now();


barnaki
01.03.2010, 22:20
есть строки
$time = mysql_query("select now();");
echo "$time";

но увы выводит не время а надпись Resource id #4
как сделать чтобы выводило время

Gifts
01.03.2010, 22:22
barnaki echo mysql_result($time, 0); И, кстати, вы ЗАЕ*АЛИ создавать новые темы каждый раз, когда у вас возникнет простенький вопрос

ReduKToR
01.03.2010, 22:42
$time = mysql_query("select now()");
echo "$time";

лишний ; поставил

m0Hze
01.03.2010, 23:11
$time = mysql_query("select now()");
echo "$time";

лишний ; поставил
Учим синтаксис MySQL.

mailbrush
01.03.2010, 23:19
ТС, для записи инфы с БД в массив существуют две функции
mysql_fetch_array()
mysql_fetch_assoc()
Подробнее почитай в гугле, а вообще - используй функцию time(), если задача не ставилась конкретно в выводе времени из БД.

fokinkostya
03.03.2010, 10:38
Мде ребята... погуглить и почитать про функции видимо не судьба.


$time = mysql_query("select now();");
echo "$time";


Теперь разберем пример.

Гуглим и копипастим:
Только для запросов SELECT, SHOW, EXPLAIN, DESCRIBE, mysql_query() возвращает указатель на результат запроса, или FALSE если запрос не был выполнен. В остальных случаях, mysql_query() возвращает TRUE в случае успешного запроса и FALSE в случае ошибки. Значение не равное FALSE говорит о том, что запрос был выполнен успешно. Он не говорит о количестве затронутых или возвращённых рядов. Вполне возможна ситуация, когда успешный запрос не затронет ни одного ряда.

Т.е. после выполнения
$time = mysql_query("select now() as time;");
переменная $time хранит указатель (!) на результат запроса. Т.е. значения как такового там нет.

Идем дальше, твой вызов
echo "$time";
выведет текст "$time", ибо кавычки при использовании переменных надо убирать. Если ты уберешь кавычки, то получишь текст "Resource id #4", это и есть тот самый указатель.

Далее, переменная $time хранит указатель на результат запроса, надо же его как-то вытащить... для этого предусмотрено несколько функций:

mysql_result()
mysql_fetch_array()
mysql_fetch_assoc()
mysql_fetch_object()


В твоем случае можно использовать любую из этих функций.
http://www.softtime.ru/dic/id_dic=127&id_group=2 тут можешь почитать про них.

Теперь вернемся к примеру... в подобных случаях, когда возвращается результат всего одной колонки, я обычно использую следующий вызов (кстати до меня его уже написали)

$res = mysql_result($time,0);


Переменной $res назначится значение 0 ряда. И тогда вызовом:

echo $res;

ты выведешь значение.

Можно использовать другую функцию, например вернуть ассоциативный массив:

$res = mysql_fetch_assoc($time);


В этом случае при вызове:

echo $res;

ты получишь текст "Array()".

Здесь для вывода значение необходимо указать ключ массива (он же имя колонки или функции, в случае, если имя не указано явно через "as name").

В твоем случае правильный вызов:

echo $res['time'];


Лишь тогда ты получишь свое значение.

Использование точки с запятой ";" в запросе необходимо только в случае выполнения нескольких запросов. Т.е. они перечисляются через ";". Если запрос один, то использовании ";" не обязательно

А нужно ли это тебе?
Время можно получить с помощью встроенной функции:
echo time();

P.S. Если где-то ошибся, поправьте. Давненько уже не программировал.