在搜索栏中用法语格式化日期

时间:2019-02-17 13:05:18

标签: php

我有一个名为 messages 的表,其中有4个字段,分别是id_message,title,date_message和fk_user。

然后我还有另一个名为 users 的表,其中包含2个字段:id_user,伪。

我的目标是在概述中以法语格式设置字段 date_message 的日期。

此步骤可以。 这是我的要求信息...

$requeteSQL = "SELECT messages.id_message, messages.title, DATE_FORMAT(messages.date_message,'%d/%m/%Y') 
               AS  date_message,id_user AS fk_user, users.pseudo
               FROM messages INNER JOIN users 
               ON messages.fk_user=users.id_user 
               ORDER BY id_user ASC";   

enter image description here

现在我的问题是我有一个搜索栏,当我输入标题时,日期不正确...该日期为英语格式。

enter image description here

if(isset($_GET['q']) AND !empty($_GET['q'])){
  $q = htmlspecialchars($_GET['q']);
  $requeteSQL = 'SELECT messages.*, users.pseudo 
                 FROM messages INNER JOIN users 
                 ON messages.fk_user=users.id_user
                 WHERE title LIKE "%' .$q.'%" ORDER BY id_message ASC';
}

我已经尝试过

if(isset($_GET['q']) AND !empty($_GET['q'])){
  $q = htmlspecialchars($_GET['q']);
  $requeteSQL = "SELECT messages.id_message, messages.title, DATE_FORMAT(messages.date_message,'%d/%m/%Y') 
                 AS  date_message,id_user AS fk_user, users.pseudo
                 FROM messages INNER JOIN users 
                 ON messages.fk_user=users.id_user 
                 WHERE title LIKE "%' .$q.'%" ORDER BY id_message ASC";
}

我有几条错误消息

  • 警告:第18行遇到的非数字值

  • 致命错误:未捕获的DivisionByZeroError:在第1行上以零模数

  • DivisionByZeroError:第18行的零模数

enter image description here

第18行在这里

WHERE title LIKE "%' .$q.'%" ORDER BY id_message ASC";

我不知道这个问题吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

除了您确实需要修复的不正确的SQL转义(请参阅Magnus的注释)之外,由于以下代码,您还会收到警告:

     //        " String opens here
 $requeteSQL = "SELECT messages.id_message, messages.title, DATE_FORMAT(messages.date_message,'%d/%m/%Y') 
             AS  date_message,id_user AS fk_user, users.pseudo
             FROM messages INNER JOIN users 
             ON messages.fk_user=users.id_user 
             WHERE title LIKE "%' .$q.'%" ORDER BY id_message ASC";
     //                       ^ String closes here

所以您的PHP看起来像

"String"  %  '.$q.'  %  "String"

其中'.$q.'只是另一个字符串,而%是模运算符。

修复字符串,然后纠正警告:

$requeteSQL = 'SELECT ... WHERE title like "%' . $q . '%" ORDER BY ...'
          //  ^ String opens                 ^ String closes