2011-07-12 44 views
1

我有一個表t_s_list,其中主鍵爲s_id。現在我想檢索主要的值,如果相應的列已經插入。如果相應的列是即時我可以很容易地得到使用mysql_insert_id函數的值。但是,如果價值已經存在,該怎麼辦?檢索主值的問題

注意:如果我想獲得已存在的列的主要值,我將以Resource id #5作爲結果獲取值。

我的代碼..

if($txtbx1!="") { 
$result=mysql_query("select title from t_s_list where title='$txtbx1'"); 

    if(mysql_num_rows($result)!=0){ 
    $resultid=mysql_query("select s_id from t_s_list where title='$txtbx1'"); 
    print_r($resultid); } 

    else 
    { 
    $insert=mysql_query("Insert into t_s_list(title) values ('$txtbx1') "); 
    $resultid=mysql_insert_id(); 
    print_r($resultid); 
    } 
} 
else { 
    $msg="Text box empty"; 
} 
+0

前兩個查詢的邏輯是什麼?第一個是無用 –

+0

第一個是檢查標題是否存在,如果它存在比我選擇相應的主鍵值。 – Aditii

+1

第一次檢查,第二次檢索。只需使用第二個。 –

回答

0
$result = mysql_query("select s_id from t_s_list where title='$txtbx1'"); 
$row = mysql_fetch_assoc($result); 
$resultid = $row['sid']; 
print_r($resultid); 
+0

什麼需要mysql_fetch_assoc函數,當我直接從查詢中選擇s_id。請詳細說明。 – Aditii

+0

mysql_query不能識別你只取一列。它從數據庫中獲得一個結果集,它由你來處理。這個結果集在所有SELECT查詢的結構中是相同的。 –

+0

Thanks..for help .. – Aditii

1

周華健是正確的, http://php.net/manual/en/function.mysql-query.php 的mysql_query返回Resource不是字符串或整數。

有很多方法可以從資源訪問結果表。 mysql_fetch_assoc()將返回一個關聯數組,其中列標題用於讀取給定值。 即$ resource = mysql_query(...); $ results = mysql_fetch_assoc(); $ id = $ results [「columnIdentifier」]; mysql_fetch_array()將返回一個值數組 ,即$ resource = mysql_query(...); $ results = mysql_fetch_array(); $ id = $ results [0]; 假設id是表中返回的第一個元素

+0

你也可以嘗試, $ results = mysql_query(... sql SELECT ...); if(!$ results) { $ results = mysql_query(... sql INSERT with SELECT ..); } $ myTable = mysql_fetch_array($ results); $ id = $ myTable [0]; // 0假定您首先返回id列 – rlemon