2013-08-12 2 views
3

나는 두 단계로 된 폼을 가지고있다. 첫번째는 정보를 넣는 것이지만 두번째는 사진을 추가하는 것이다. 그래서 내가하고 싶은 것은 마지막 자동 증가 ID를 검색하여 데이터를 업데이트하는 것입니다. LAST_INSERT_ID()PHP를 사용하여 MySQL과 마지막 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()); 
+0

가능한 복제본 : http://stackoverflow.com/questions/570521/how-to-get-the-last-field-in-a-mysql-database-with-php?rq=1 –

+0

* sidenote : * 더 이상 사용되지 않는'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

라파엘 고맙습니다, 제 생각에 그건 최고의 생각입니다. 고마워요. 뭉크 답니다. 시도해 볼게요. – Glodybiss

관련 문제