2012-09-05 67 views
0

我有兩個表:table_a(name,ID)和table_b(Task)。從另一個表更新以前的值的表php mysql

我有一個選項可以將table_a.name中的值插入到table_b.Task中。

但是,當我想從table_a.name中刪除一個值並且在table_b.Task中找到該值時,table_b.Task值必須用從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'"); 

P.S. ID是自動增量

當我使用此代碼並顯示table_b時,應更新的值爲空。 請幫我讓它工作

+0

你試過調試任何東西嗎? PHP中'$ id','$ x'和'$ task'的實際值是多少? – Passerby

回答

0

在php中,函數mysql_query返回一個resultset對象。

要獲取實際值,您需要從結果集中獲取值。這應該有所幫助:

$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]; 

這將獲取所需的值。

編輯: 更新和刪除語句不會生成任何結果集作爲輸出。

+0

我用你的代碼,我得到這個錯誤:警告:mysql_fetch_row()期望參數1是資源,在 –

+0

給出的布爾值你可以檢查在原始代碼中提到的查詢是否實際上給出了一些輸出? –

+0

好的,但我怎樣才能顯示結果?如果我使用回聲它不顯示任何....如果我使用mysql_fetch_array我得到同樣的錯誤。我試圖顯示和其他值不復雜,如:從y選擇x,其中ID = 5,我無法得到來顯示它。我是PHP的新手,非常抱歉 –