如何解决php中使用PDO通过json_encode输出
我一直在尝试使用以下代码从数据库输出数据,但发现很难在屏幕上显示获取的数据。在 PHP 中使用 PDO 来触发选择。我应该怎么做才能解决这个问题?
<?PHP
include ("core.PHP");
$output = array('data' => array());
$sql = "SELECT categories_id,categories_name,categories_active,categories_status FROM categories WHERE categories_status = ?";
$result = $connect->prepare($sql);
$result->execute([1]);
if($result->rowCount() > 0) {
// $row = $result->fetch_array();
$activeCategories = "";
while($row = $result->fetchAll()) {
$categoriesId = $row[0];
// active
if($row[2] == 1) {
// activate member
$activeCategories = "<label class='label label-success'>Available</label>";
} else {
// deactivate member
$activeCategories = "<label class='label label-danger'>Not Available</label>";
}
$button = '<!-- Single button -->
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Action <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a type="button" data-toggle="modal" id="editCategoriesModalBtn" data-target="#editCategoriesModal" onclick="editCategories('.$categoriesId.')"> <i class="glyphicon glyphicon-edit"></i> Edit</a></li>
<li><a type="button" data-toggle="modal" data-target="#removeCategoriesModal" id="removeCategoriesModalBtn" onclick="removeCategories('.$categoriesId.')"> <i class="glyphicon glyphicon-remove-sign"></i> Remove</a></li>
<li><a type="button" data-toggle="modal" data-target="#deleteCategoriesModal" id="deleteCategoriesModalBtn" onclick="deleteCategories('.$categoriesId.')"> <i class="glyphicon glyphicon-trash"></i> Delete</a></li>
</ul>
</div>';
$output['data'][] = array(
$row[1],$activeCategories,$button
);
} // /while
}// if num_rows
$connect = null;
echo json_encode($output);
?>
请我下面是接受输出的HTML代码。请我只是一个初学者。请帮助我。
<thead>
<tr>
<th>Categories Name</th>
<th>Status</th>
<th style="width:15%;">Options</th>
</tr>
</thead>
</table>```
解决方法
fetchAll()
函数将为您提供所有行和列,而不仅仅是一个。话虽如此,只需在 $row
循环之外获取变量 while
,对其进行不同的调用(比方说,$rows
),然后使用类似 {{1} }.此外,现在您的 $row 将不采用数字索引,而是采用您在 SQL 查询中选择的名称的索引,例如 foreach ($rows as $row)
。
这应该对你得到的行进行迭代。我不确定的另一件事是 $row['categories_id']
,因为该函数接受参数,而您只给它一个数字为 1 的 1 元素数组,尽管我真的不知道,因为我不知道没有其余的代码。
我的猜测是您正在尝试将 JavaScript 与 AJAX 结合使用,因为您正在打印编码的 $output 变量,因此您需要在最开始使用 $result->execute([1]);
获取输入,其中您将获得 AJAX 发送的所有参数,并且在编码之前,使用函数 php://input
application/json
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。