2012-09-05 8 views
0

table_a (name, ID) 및 table_b (Task) 테이블이 두 개 있습니다.다른 테이블의 이전 값으로 테이블 업데이트하기 mysql

table_a.name의 값을 table_b.Task에 삽입 할 수있는 옵션이 있습니다.

그러나 table_a.name에서 값을 삭제하려는 경우 table_b.Task에 값이 있으면 table_b.ask 값을 table_a.name에서 삭제 된 값의 이전 값으로 업데이트해야합니다.

$delete=$_POST['deletevalue']; 
    if(isset($_POST['_submit'])){ 

$id=mysql_query("SELECT ID FROM table_a WHERE name='$delete'"); 


$x=mysql_query("SELECT MAX(ID) FROM table_a WHERE ID<$id"); 

$task=mysql_query("SELECT name FROM table_a WHERE ID=$x"); 

$query1=mysql_query("delete from table_a where name='$delete'"); 

$query2=mysql_query("UPDATE table_b SET Stare='$task' WHERE Task='$delete'"); 

추신 : 여기

코드입니다 ID가 자동 증분

이 코드를 사용하고 table_b를 표시하면 업데이트해야하는 값이 비어 있습니다. 제발 도와주세요

+0

아무 것도 디버그하지 않으셨습니까? PHP에서'$ id','$ x' 및'$ task'의 실제 값은 무엇입니까? – Passerby

답변

0

PHP에서 mysql_query 함수는 결과 집합 개체를 반환합니다.

실제 값을 가져 오려면 결과 집합에서 값을 가져와야합니다. 도움이 될 것입니다 :

$objId=mysql_query("SELECT ID FROM table_a WHERE name='$delete'"); 
$rowId=mysql_fetch_row($objId); 
$id=$rowId[0]; 

마찬가지로 다른 인스턴스의 값을 얻을 수 있습니다.

여담으로

, 이러한 쿼리를 결합 할 수 있습니다 :

$id=mysql_query("SELECT ID FROM table_a WHERE name='$delete'"); 
$x=mysql_query("SELECT MAX(ID) FROM table_a WHERE ID<$id"); 
$task=mysql_query("SELECT name FROM table_a WHERE ID=$x"); 

$objTask=mysql_query("SELECT a.name FROM table_a a WHERE a.ID=(SELECT MAX(b.ID) from table_a b WHERE b.ID<(SELECT c.ID FROM table_a c WHERE c.name='$delete'))"); 
$rowTask=mysql_fetch_row($objTask); 
$task=$rowTask[0]; 

당신이 필요로하는 값을 가져옵니다.

EDIT : 업데이트 및 삭제 문은 출력으로 결과 집합을 생성하지 않습니다.

+0

당신의 코드를 사용했는데 다음과 같은 오류가 발생했습니다 : 경고 : mysql_fetch_row()는 매개 변수 1이 리소스가 될 것으로 예상하고, 부울 값은 –

+0

입니다. 원래 코드에 언급 된 쿼리가 실제로 출력을하는지 확인할 수 있습니까? –

+0

그래도 결과를 표시하려면 어떻게해야합니까? echo를 사용하면 아무것도 표시되지 않습니다. mysql_fetch_array를 사용하면 동일한 error.I가 표시되고 다른 값은 다음과 같이 복잡하지 않습니다. x에서 y를 선택하고 ID = 5이고 얻을 수 없습니다. 그것을 표시합니다. 나는 PHP에 대한 새로운 문제 때문에 미안 해요. –

관련 문제