2013-08-12 91 views
3

我有两个阶段的形式,第一个是放置信息,但第二个是UPDATE添加照片。所以我想要做的是检索最后一个自动递增的ID来更新数据,我用LAST_INSERT_ID()如何使用php获取最后一个ID使用php

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

您可以在这里看到我所做的:

$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()); 
+0

可能的重复:http://stackoverflow.com/questions/570521/how-to-get-the-last-field-in-a-mysql-database-with-php?rq=1 –

+0

*旁注:*停止使用不推荐的'mysql_ *'函数。改用MySQLi或PDO。 – Raptor

+0

你可以使用$ id = mysql_insert_id()获取id;插入 –

回答

1

血腥地狱,你为什么不把这个该死的ID存储到一个隐藏的帖子字段中,并将它传递给表单提交的第二页?

-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,但如果这能帮助你I'很高兴.....

+0

一些更多的数据和你的答案是正确的答案 –

+0

*“我有一个有两个阶段的表格”*这不适用于OP的情况。 INSERT和UPDATE查询有两个不同的页面。 – JJJ

+0

@Juhana哦,你是正确的......重读它......然后他的查询是完全错误的......我认为他的意思是......用最后一个插入的行它不会工作becaus:如果其他人提交了一个表单而你在第二部分? –

2

你不能在“第二阶段”获得你的ID。运行插入后必须立即得到它。

所以,把它放在第一个阶段,把它存储在一个会话中,然后用在第二个阶段。

+0

我可以有一个想法吗? – Glodybiss

+0

你需要什么想法? –

-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列,而不是自动增量。我认为使用这个功能来控制你的情况很容易。

+0

请阅读“竞赛条件”以及为什么它很重要。谢谢。 –

+0

谢谢拉斐尔,我认为这是最好的主意。谢谢你,我会去尝试,我会告诉你,如果一切都是oK。 – Glodybiss

相关问题