0

私はまだ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));
}
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を知っていますか?そうでない場合は、IDを取得するためにSELECTクエリを記述してから、次を使用する必要があります。

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 に答える