微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php中使用PDO通过json_encode输出

如何解决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 举报,一经查实,本站将立刻删除。