尝试获取按 id 过滤的所有行并将它们作为数组(mysql,php)返回

Posted

技术标签:

【中文标题】尝试获取按 id 过滤的所有行并将它们作为数组(mysql,php)返回【英文标题】:Trying to fetch all rows filtered by id and returning them as array(mysql,php) 【发布时间】:2018-01-23 05:47:53 【问题描述】:

我将用户名作为过滤器发送到数据库,以仅使用 Ajax 获取与其关联的数据行,但我得到的响应为空。

 $.ajax(
        type: 'POST',
        url: 'fetch_followed_users.php',
        data: 
            user : username, 
        ,
        dataType: 'json',
        cache: false,
        success: function(follows) 



                 var jArrayAllFollows=[];
                 jArrayAllFollows = follows;

        ,
 );

这是来自 fetch_followed_users.php:

<?php

   session_start();

   require 'database.php';

      $sql6 =  $conn->prepare("SELECT * FROM followedusers WHERE user = :user"); 
      $sql6->bindParam(':user', $_POST['user']); 
      $sql6->execute();
      $results=array();
      $results = $sql6->fetchAll(PDO::FETCH_COLUMN)

      echo json_encode($results);

?>

如果有任何帮助,我将不胜感激。我知道这很简单,但我就是做不好。

【问题讨论】:

你能显示ajax请求响应吗? 您已经在follows 中拥有了全部数据,为什么还需要在成功块中进行另一个循环,如果您只关心计数,为什么不只是让服务器响应返回实际计数 echo json_encode(array('count' =&gt; count in php)),然后只需阅读 follows.count 就可以了 你有什么回应吗?如果不是,则更改 ajax 调用中的删除数据类型标记 顺便说一句,这不是mysqli吗?我认为在准备好的语句中不允许使用命名占位符,或者这是PDO,这有点混淆 我没有收到任何回复。 Ajax 正确地将用户名作为用户发送到 fetch_followed_users。我尝试删除数据类型。还有 Ghost,我还没有开设任何关于 mysqli 或 PDO 的课程,我正在解决这个问题,所以这就是为什么这一切都是一团糟,因为我一直在尝试使用这里的示例并使其发挥作用。这是我的旧代码和此处示例中的新代码的混合和混搭。我想旧的需要在这里更换。 【参考方案1】:

让它更简单,只需在 PHP 中获取计数并将其作为响应发送。

基本思路:

在 PHP 中获取值并发送计数:

<?php

session_start();

require 'database.php';

$sql6 =  $conn->prepare("SELECT COUNT(*) AS total FROM followedusers WHERE user = :user"); 
$sql6->bindParam(':user', $_POST['user']); 
$sql6->execute();
$count = $sql6->fetchColumn();

echo json_encode(array('count' => $count));

?>

然后在 JS 成功块中,访问响应即可:

success: function(response) 
    console.log(response.count);
    // do what you will with the count
,

注意:不要将 MySQLi 与 PDO 混合使用,只需选择一个并在整个代码中使用它即可。

【讨论】:

$sql6 = $conn->prepare("SELECT * FROM followusers WHERE user = :user"); $sql6->bindParam(':user', $_POST['user']); $sql6->执行(); $结果=数组(); $results = $sql6->fetchAll(PDO::FETCH_COLUMN) echo json_encode($results); @Still.Learning 使用的 PDO 标志不正确,请使用 PDO::FETCH_ASSOC @Still.Learning 很高兴这有帮助

以上是关于尝试获取按 id 过滤的所有行并将它们作为数组(mysql,php)返回的主要内容,如果未能解决你的问题,请参考以下文章

Express / MongoDb 按 ID 查找所有对象并将它们保存到数组中

按字段名称在新的 JS 过滤数组中移动 JS 数组行

如何按整数读取文件整数并将它们放入二维数组?

过滤器数组中的数组,仅获取过滤后的项

从目录中获取文件并过滤它们

获取命令行的元素并将它们存储到数组中