PHP 获取我最近插入的上一页的 ID

标签 php mysql

这是我填写的上一页中的“流程”页面

SESSION_START();
if(isset($_POST['submit'])) {
include 'connection.php';

    $subkat_id      = $_POST['idsubkat'];
    $namaitem       = $_POST['namaitem'];
    $status         = $_POST['status'];

mysql_query("INSERT INTO itemtemp (`item_id`,`subkat_id`,`namaitem`,`status`)
                VALUES(NULL,'$subkat_id','$namaitem','$status')") 
                        or die(mysql_error());                  
        header("Location: newdata.php?id=".urlencode(trim($subkat_id)));
        } 

?>

这是我在 newdata.php 上的 PHP

<?php
include 'connection.php';
include 'header.php';


                    if(isset($_GET['id'])) {
                                    $pass=$_GET['id'];
                                    $hasilitem = mysql_query("SELECT itemtemp.namaitem,itemtemp.item_id FROM itemtemp INNER JOIN subkategori WHERE itemtemp.subkat_id=subkategori.subkat_id AND itemtemp.subkat_id='$pass'") or die (mysql_error());
                                    while($arrayitem = mysql_fetch_array($hasilitem)) {
                                                    $nama=$arrayitem['namaitem'];
                                                    $id=$arrayitem['item_id'];
                                    }
                                echo "<h4>".$nama."</h4>"; 
                                }   else die ("No Item Selected ");



?>

这是通过显示数据库中的最后一个查询结果来实现的,但是如果有 2 个人同时插入数据,数据将会混合。有人可以帮我吗...

如何获取最近添加的内容?

最佳答案

您需要使用唯一标识符来实现此目的。一般来说,MySQL 在管理并发用户方面表现出色,但您不应该依赖非唯一的表数据来识别行。

此外,您应该使用 mysqli_*PDO 而不是 mysql_*,因为后者已被弃用并已在 PHP 7 中删除。

将您的首页更改为:

SESSION_START();
if(isset($_POST['submit'])) {
include 'connection.php';

    $subkat_id      = $_POST['idsubkat'];
    $namaitem       = $_POST['namaitem'];
    $status         = $_POST['status'];

mysql_query("INSERT INTO itemtemp (`item_id`,`subkat_id`,`namaitem`,`status`)
                VALUES(NULL,'$subkat_id','$namaitem','$status')") 
                        or die(mysql_error());                  
   $lastId = mysql_insert_id(); //Assuming item_id is an auto-incrementing identifier
        header("Location: newdata.php?id=".urlencode($lastId));
        } 

您更新的newData.php

<?php
include 'connection.php';
include 'header.php';


if (isset($_GET['id'])) {
    $pass = $_GET['id'];
    $hasilitem = mysql_query("SELECT itemtemp.namaitem,itemtemp.item_id FROM itemtemp INNER JOIN subkategori WHERE itemtemp.subkat_id=subkategori.subkat_id AND itemtemp.item_id='$pass'") or die(mysql_error());
    while ($arrayitem = mysql_fetch_array($hasilitem)) {
        $nama = $arrayitem['namaitem'];
        $id = $arrayitem['item_id'];
    }
    echo "<h4>" . $nama . "</h4>";
} else
    die("No Item Selected ");
?>

关于PHP 获取我最近插入的上一页的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36552625/

相关文章:

MySql Count 不能显示 0 个值

php - 在 LAMP 配置中创建虚 URL

mysql - 未知的系统变量 : "new.id" is not recognized

php - 如果结果集为空,MySQL 和 pdo::fetchColumn() 返回什么?

php - Mysql 查询在编辑的 jTable 代码中不起作用,为什么?

java - 我将如何使用 imagemagick 库进行处理?

javascript - 如何使用 ajax 和 php 检测已提交的按钮?

mysql - 禁用mysql缓存

php - 如何通过 Facebook PHP SDK 获取 App Access Token?

mysql - 是否可以将使用不同 WHERE 子句和 LIMIT 的多个 SQL 语句合并到一个语句中?