3

我有一个包含两个阶段的表格,第一个是放置信息,第二个是更新添加照片。所以我想要做的是检索最后一个自动递增的 ID 来更新数据,我用LAST_INSERT_ID ()

但我意识到这是无处不在的更新。你有什么建议可以帮助我吗?谢谢你,对不起我的英语。

你可以在这里看到我做了什么:

 $sql = 'UPDATE 'jj_news' SET 
cover_picture="'.$large_image_name.$_SESSION['user_file_ext'].'",
 min_picture="'.$thumb_image_name.$_SESSION['user_file_ext'].'", statut="1",
 edited="'.date('Y-m-d h:i:s').'" WHERE id_news= LAST_INSERT_ID(id_news)';
       mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
4

4 回答 4

2

您无法在“第二阶段”获得您的身份。您必须在运行插入后立即获取它。

因此,在第一阶段获取它,将其存储在会话中,然后在第二阶段使用。

于 2013-08-12T10:03:08.023 回答
1

该死的,你为什么不把该死的 id 存储到一个隐藏的帖子字段中,然后将它传递到表单提交的第二页?

于 2013-08-12T11:44:12.207 回答
-1

您可以尝试以下功能。

function getLastId($tablename,$id_field){
$id=0;
$sql="select ".$id_field." from ".$tablename." order by ".$id_field." desc limit 1" ;
$res_obj=mysql_query($sql) or die(mysql_error);
if(mysql_num_rows($res_obj)>0){
$result=mysql_fetch_array($res_obj); //we have only on row and column.
$id=$result[$id_field]; //set the last greator Id value;
}
return $id;
}
$newid=getLastId("yourtable","id_field")+1;
//insert your data using $newid instead of autocomplete.
//use $newid during update if update is on new page make a session of $newid. like
$_SESSION['update_id']=$newid;

此函数使 id 列的手动增量,而不是自动增量。我认为使用此功能可以轻松控制您的情况。

于 2013-08-12T10:44:05.047 回答
-1
mysql_query("INSERT INTO `xy` (`xy`) VALUES ('$_POST[xy]');");
    $insertId = mysql_insert_id();
    mysql_query("UPDATE xy SET xy='$xy' WHERE id='$insertId'");

只知道从 mysql_* 函数...

使用 mysqli 或 PDO,但如果这对你有帮助,我很高兴.....

于 2013-08-12T10:00:41.883 回答