【问题标题】:Correct but not displaying result正确但不显示结果
【发布时间】:2021-10-07 06:13:55
【问题描述】:
$sql = "SELECT * FROM one_chat WHERE chat_email = '{$get_mail}' && chat_email = '{$session_email}' ";

查询是正确的,但在 AND 条件下不显示结果,如果使用 OR 运算符,则两个条件都变为 true 并显示两个数据!怎么这么难看!!!

【问题讨论】:

  • 这个变量($get_mail,$session_email)的值是多少?
  • $get_mail 用于 $_GET 方法,$session_email 用于 $_SESSION 全局变量
  • ok , make var_dump($get_mail ,$session_email) , 给我们看输出
  • 仅适用于 $_GET 方法 var_dump 显示 NULL

标签: php mysql sql ajax laravel


【解决方案1】:

我认为使用它并检查它是否给出任何结果

$sql = "SELECT * FROM one_chat WHERE chat_email = '{$get_mail}' AND chat_email = '{$session_email}' ";

基本上尝试将 && 替换为 AND

【讨论】:

  • 我认为您必须将 && 更改为 OR。在您的查询中,您将签入 chat_email 等于这个并且 chat_email 也等于那个。如果 '{$get_mail}' AND '{$session_email}' 具有相同的值,这只能给出结果
  • 让我提醒你一件事,首先,我从第一页使用 $_GET 方法,然后在第二页使用 ajax 从第三页获取数据。换句话说,我在三页中使用了一个“电子邮件”。
  • $sql= "SELECT ...." 之后插入回显并显示输出
  • SELECT * FROM one_chat WHERE chat_email = '' AND chat_email = 'cybersite159@gmail.com'
  • 我可以用 PHP 更正这个问题,但我想用 AJAX 来使用它,因为在 Messenger 页面中不想刷新!
【解决方案2】:

根据 cmets ,此 var 值 ( $get_mail ) 为 null ,您尝试选择条件为 this (chat_email = '{$get_mail}' AND chat_email = '{$session_email}') 的数据, 您需要 chat_email 为 null 并且另一个值来自 session 。 您可以将条件更改为“或”

或者,如果这两个变量在您的业务中具有相同的值,您可以这样做:-

$email = !empty($get_mail) ? $get_mail : $session_email;
$sql = "SELECT * FROM one_chat WHERE chat_email = '{$email}'";

【讨论】:

    【解决方案3】:

    您也可以像这样更改您的查询

    $sql = "SELECT * FROM one_chat WHERE chat_email = COALESCE('{$get_mail}','{$session_email}')";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-30
      • 2017-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多