2012-10-31 59 views
0

我正在使用Dreamweaver,因爲我仍在學習PHP。Dreamweaver插入行,然後轉到詳細信息頁面

我有一個插入表單,我希望它指示我剛剛插入的記錄的詳細信息頁面。我在過去做過這些,但是,忘記了我是如何做到的,我傳遞了帶有記錄ID的url參數並在詳細信息頁面上找到了它。

這裏是我的插入代碼,任何幫助都會很棒。

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) { 
    $insertSQL = sprintf("INSERT INTO tl_courses (course_name, course_type, course_category, price_option, price, start_date, duration, location_option, country, region, town, postcode, results, awarding, content, requirements, additional, qualification) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", 
         GetSQLValueString($_POST['course_name'], "text"), 
         GetSQLValueString($_POST['course_type'], "text"), 
         GetSQLValueString($_POST['course_category'], "text"), 
         GetSQLValueString($_POST['price_option'], "text"), 
         GetSQLValueString($_POST['price'], "text"), 
         GetSQLValueString($_POST['start_date'], "date"), 
         GetSQLValueString($_POST['duration'], "text"), 
         GetSQLValueString($_POST['location_option'], "text"), 
         GetSQLValueString($_POST['country'], "text"), 
         GetSQLValueString($_POST['region'], "text"), 
         GetSQLValueString($_POST['town'], "text"), 
         GetSQLValueString($_POST['postcode'], "text"), 
         GetSQLValueString($_POST['results'], "text"), 
         GetSQLValueString($_POST['awarding'], "text"), 
         GetSQLValueString($_POST['content'], "text"), 
         GetSQLValueString($_POST['requirements'], "text"), 
         GetSQLValueString($_POST['additional'], "text"), 
         GetSQLValueString($_POST['qualification'], "text")); 

    mysql_select_db($database_dbconnect, $dbconnect); 
    $Result1 = mysql_query($insertSQL, $dbconnect) or die(mysql_error()); 

    $insertGoTo = "dates_adder.php"; 
    if (isset($_SERVER['QUERY_STRING'])) { 
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; 
    $insertGoTo .= $_SERVER['QUERY_STRING']; 
    } 
    header(sprintf("Location: %s", $insertGoTo)); 
} 

回答

1

你知道剛剛插入的記錄的ID嗎?如果沒有,你需要寫一個SELECT查詢來獲取ID,然後只需使用:

要獲得ID,要麼使用mysql_insert_id()或編寫一個查詢,如:

$sql = 'SELECT * FROM tl_courses WHERE course_name = "'.$_POST['course_name'].'"'; 
$res = mysql_query($sql); 
$num = mysql_num_rows($res); 

if($num == 1){ 
    // We've got a record. 

    $row = mysql_fetch_array($res, MYSQL_ASSOC); 

    $id = $row['YOUR_ID_FIELD']; 

} 

header('Location: view.php?id='.$id); 
exit; 
+0

謝謝,我不知道如何檢索ID,因爲它將是一個新的記錄,我假設我將不得不選擇具有最高號碼或ID的ID。 – monsterboy

+0

那麼你可以使用mysql_insert_id(),但如果你運行一個高流量網站,並且已經有另一個插入發生,那麼你可能會得到錯誤的記錄。我已經爲我的答案添加了一個可能的SQL查詢。 – ajtrichards

+0

再次感謝,select是否獲取所有記錄?因爲會有course_name重複。 – monsterboy

2

你會需要在你的代碼中使用

mysql_insert_id();

,你可以補充一點:

<?php 
// other code 
$Result1 = mysql_query($insertSQL, $dbconnect) or die(mysql_error()); 

$id = mysql_insert_id(); 

$insertGoTo = "dates_adder.php?id=".$id; 
header('Location: '.$insertGoTo); 
?> 

:)

+0

不錯的一個謝謝:) – monsterboy

+0

MYSQLi ...不推薦這個功能。 使用http://www.php.net/manual/en/mysqli.insert-id.php – NappingRabbit