Php 如何在从数据库获取数据时仅获取最后一次迭代值,I';我尝试过以JSON格式获取值

Php 如何在从数据库获取数据时仅获取最后一次迭代值,I';我尝试过以JSON格式获取值,php,mysqli,Php,Mysqli,这是我试过的。 我试着从数据库中获取数据。它显示从迭代开始到迭代结束的数据。我只需要最后一个迭代值。我是一个完全的noob。如果您能帮忙,我们将不胜感激 <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "api_db"; $conn = new mysqli($servername, $usern

这是我试过的。 我试着从数据库中获取数据。它显示从迭代开始到迭代结束的数据。我只需要最后一个迭代值。我是一个完全的noob。如果您能帮忙,我们将不胜感激

   <?php
        $servername = "localhost";
        $username = "root";
        $password = "";
        $dbname = "api_db";
        $conn = new mysqli($servername, $username, $password, $dbname);
        $myarray=array();
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        } 
        $sql = "SELECT id, name, description FROM products";
        $result = $conn->query($sql);

        if ($result->num_rows > 0) {
            while($row = $result->fetch_array(MYSQL_ASSOC)) {
                $myarray[]= $row; 


                // echo "<pre>";
                // print_r($myarray);

                echo "<pre>";echo json_encode($myarray);
                // echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Description :" . $row["description"]. "<br>";
            }
        } else {
            echo "0 results";
        }
        $conn->close();

        ?>

将SQL查询更改为

$nor = mysqli_num_rows($result); //Number of rows
mysqli_data_seek($resutl, ($nor - 1)); //Indices are based on 0

那会对你有用。

最后,我明白了你的意思,你想要什么-

您需要在一个变量中获取所有记录。您最后可以对其进行编码。

为此,请执行以下操作:-

1.在循环外部初始化数组

2.将每条记录分配给循环内的数组

3.对循环外的数组进行编码

你可以这样做:-


虽然在我看来它是重复的,但我建议如下,假设您不打算从DBMS中对数据集进行排序。

用于移动遍历数据集的光标。所以你的情况是

基本上,
$nor
包含记录总数。因此,最后一条记录的索引将是
$nor-1


当然如果使用
排序依据对查询中的数据集进行排序
,然后最好的方法是添加
ORDER BY id DESC LIMIT 1

可能的重复项,我猜我的问题把你们搞糊涂了。通过添加此代码,我只得到了数据库的最后一个值。我的默认代码迭代数据库中的每个数据。但它逐个迭代该值,最后一个迭代值包含所有数据。这正是我需要的@SubashKumarKR很高兴帮助您:):)
<?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "api_db";
    $conn = new mysqli($servername, $username, $password, $dbname);
    $myarray=array();
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 
    $sql = "SELECT id, name, description FROM products";
    $result = $conn->query($sql);
    $myarray = []; //Initialize array outside of the loop
    if ($result->num_rows > 0) {
        while($row = $result->fetch_array(MYSQL_ASSOC)) {
            $myarray[] = $row; //Assign each record to the array inside the loop
        }
    } else {
        echo "0 results";
    }
    $conn->close();
    echo json_encode($myarray);//Encode array outside the loop
?>
$nor = mysqli_num_rows($result); //Number of rows
mysqli_data_seek($resutl, ($nor - 1)); //Indices are based on 0