Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   mysql now(); (https://forum.antichat.xyz/showthread.php?t=183183)

barnaki 01.03.2010 22:20

mysql now();
 
есть строки
$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

Цитата:

Сообщение от ReduKToR
$time = mysql_query("select now()");
echo "$time";

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

Учим синтаксис MySQL.

mailbrush 01.03.2010 23:19

ТС, для записи инфы с БД в массив существуют две функции
PHP код:

mysql_fetch_array()
mysql_fetch_assoc() 

Подробнее почитай в гугле, а вообще - используй функцию time(), если задача не ставилась конкретно в выводе времени из БД.

fokinkostya 03.03.2010 10:38

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

PHP код:

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

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

Гуглим и копипастим:
Цитата:

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

$time mysql_query("select now() as time;"); 

переменная $time хранит указатель (!) на результат запроса. Т.е. значения как такового там нет.

Идем дальше, твой вызов
PHP код:

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 тут можешь почитать про них.

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

$res mysql_result($time,0); 

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

echo $res

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

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

$res mysql_fetch_assoc($time); 

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

echo $res

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

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

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

echo $res['time']; 

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

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

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

echo time(); 

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


Время: 21:33