尝试获取按 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' => 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)返回的主要内容,如果未能解决你的问题,请参考以下文章