php - 仅在 while 循环中获取最后一个事务 ID 信息时遇到问题

标签 php mysql mysqli

我遇到一个问题,用户 ID 的数据正在抓取该用户 ID 下输入的所有数据。我只需要获取使用相同 tr_id 输入数据库的当前数据,而不是用户在表中拥有的所有数据。

 example 

***How I want it to show.*** 
    tr_id 1234 product:pens qty:2
    tr_id 1234 product:pencils qty:2

***not Like this*** 
    tr_id 1234 product:pens    qty:2
    tr_id 1234 product:pencils qty:2
    tr_id 3456 product:papers  qty:2
    tr_id 3456 product:markers qty:2

测试.php

<?php

        include('dbconnect.php');
        session_start();

        if(!isset($_SESSION['uid'])){
        header('Location:index.php');
        }


        $uid=$_SESSION['uid'];
        $sql="SELECT * FROM customer_order WHERE uid='$uid' order by id desc";
        $run_query=mysqli_query($conn,$sql);

      while ($row = mysqli_fetch_array($run_query))
    {
         echo $row['pid'] . " " . $row['p_name'] . " " . $row['tr_id'] . "<br/>";
    }


    ?>

action.php

if(isset($_POST['payment_checkout'])){
        $uid=$_SESSION['uid'];
        $sql="SELECT * FROM cart WHERE user_id='$uid'";
        $run_query=mysqli_query($conn,$sql);
        $i=rand();

        while($cart_row=mysqli_fetch_array($run_query))
        {
            $cart_prod_id=$cart_row['p_id'];
            $cart_prod_title=$cart_row['product_title'];
            $cart_qty=$cart_row['qty'];
            $cart_price_total=$cart_row['total_amount'];




            $sql2="INSERT INTO customer_order (uid,pid,p_name, p_price,p_qty,p_status,tr_id) VALUES ('$uid','$cart_prod_id','$cart_prod_title','$cart_price_total','$cart_qty','CONFIRMED','$i')";
            $run_query2=mysqli_query($conn,$sql2);
        }

最佳答案

麦克雷德的评论让我得到了这个答案

<?php

        include('dbconnect.php');
        session_start();

        if(!isset($_SESSION['uid'])){
        header('Location:index.php');
        }

        $uid=$_SESSION['uid'];

    $sql="SELECT * FROM customer_order WHERE uid='$uid'   order by id desc";
        $run_query=mysqli_query($conn,$sql);
        $row = mysqli_fetch_array($run_query);

        $tr_id = $row['tr_id'];

        $sql="SELECT * FROM customer_order WHERE uid='$uid' and tr_id='$tr_id'  order by id desc";
        $run_query=mysqli_query($conn,$sql);

      while ($row = mysqli_fetch_array($run_query))
    {
         echo $row['pid'] . " " . $row['p_name'] . " " . $row['tr_id'] . "<br/>";
    }


    ?>

关于php - 仅在 while 循环中获取最后一个事务 ID 信息时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46309616/

相关文章:

Mysql select with if else 和 order by 语句

php mysql 根据另一个表中的冒号值从表中选择一组列

javascript - Mysqli 查询从数据库中返回一行简单的字符串的空值

php - 我需要计算计数项目的百分比

php - 列数与第 1 行的值计数不匹配,我没有发现错误

mysql - SQL 查询返回特定标签(如果存在)(如果不存在则返回 0)

php - 使用 JSON 和 PHP 更新 MySQL 数据库

php - 从一种形式将两个连续行放入表中

php - 停止 MVC php 上的重复数据库条目

php - 单例类和mysqli事务