0

我正在使用 Dreamweaver,因为我还在学习 PHP。

我有一个插入表单,我希望它能够将我引导到刚刚插入的记录的详细信息页面。我过去做过这个,但是忘记了我是怎么做的,我传递了一个带有记录 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));
}
4

2 回答 2

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);
?>

:)

于 2012-10-31T09:52:54.663 回答
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;
于 2012-10-31T09:49:51.503 回答