2016-10-16 2 views
0

Моей линии запроса является:получения ошибки из mysqli_fetch_array

SELECT TR.*, 
     PL.*, DE.*, 
     (DE.power + DE.stamina + DE.violence + DE.speed + DE.shooting + DE.scoring + DE.pass + DE.ball_control + DE.talent) AS TPOWER, 
     strftime('%Y-%d-%m', DE.age, 'unixepoch') AS age 
     FROM `transfers` TR JOIN `players` PL ON TR.player_id=PL.id 
     JOIN `playerdetails` DE ON TR.player_id=DE.player_id 
     WHERE PL.position = 'MD' AND (age >= '20' AND age <= '24') 
     AND PL.firstname = 'a' AND PL.lastname = 'b' AND TPOWER >= '1' 
     AND TPOWER <= '5' AND TR.price >= '20' AND TR.price <= '50' 
     ORDER BY age DESC 

Что случилось с этим запросом? произошло

Ошибка:

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in E:\EasyPHP-Devserver-16.1\eds-www\classes\DB.php on line 15 
+0

is mysql жалуется или это не делает то, что вы хотите? –

+0

@ P.Salmon Я просто получаю сообщение об ошибке «Предупреждение», вы можете увидеть обновление. – johnmartel

+0

Можете ли вы подключиться к базе данных через клиентское программное обеспечение и выполнить тот же запрос, чтобы увидеть, правильно ли синтаксис? Или используйте функцию 'mysli_error()', чтобы получить сообщение об ошибке при выполнении запроса. –

ответ

0

MySQL не имеет функцию под названием strftime(). Вы можете date_format() вместо:

SELECT . . . 
     date_format(de.age, '%Y-%d-%m') AS age 

Однако, это кажется странным способом выразить возраст (который обычно представляет собой целое число, число, или интервал).

У вашего запроса могут быть и другие ошибки. Вы должны проверить возвращаемые сообщения об ошибках.

+0

'De.age' - это временная метка, такая как 1384554616161, выполняет ли функция для меня, чтобы рассчитать возраст человека, например, 19? – johnmartel

+0

@johnmartel. , , 'from_unixtime()' (https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_from-unixtime). –

Смежные вопросы