簡體   English   中英

將表單數據插入一個表中,然后將特定的表單數據插入表2中並更新枚舉值?

[英]insert form data into one table, then insert specific form data in to table 2 and update enum value?

我正在嘗試將表格數據插入到我的表“ supplier_registration”中,但是這不起作用,我正在獲取mysql“ ERROR”,我不確定為什么會這樣。

我也想將相同的表單數據插入第二個表“ supplier_session”,但是這次僅插入表單數據的特定位“ $ cname”和“ $ creg”。

當用戶登陸頁面時,會將IP地址插入到表“ supplier_session”中,因此,在提交此表單時,我還希望Supplier_session表將枚舉值“ form1_complete”從“否”更新為“是”,該用戶的ip或“ user_IP” '存在於表格行中。 我正在嘗試通過運行三個查詢來解決這個問題,但無法正常工作,請有人能告訴我我要去哪里了。 謝謝

數據庫:

ID(AI) | company_name | company_reg_number | company_incorp_date | company_address | company_postcode | contact_name | contact_number | contact_email | company_vat_number | date_time | user_IP

碼:

<?php
session_start();

$db_hostname = 'localhost';
$db_database = 'hewden1'; 
$db_username = 'root';
$db_password = '';

$db_server = mysql_connect($db_hostname, $db_username, $db_password)    
        or die("Unable to connect to MySQL: " . mysql_error());

mysql_select_db($db_database)   
or die("Unable to select database: " . mysql_error());

 $cname       = $_POST['cname'];
   $creg      = $_POST['creg'];  
   $address      = $_POST['address'];  
   $post      = $_POST['post'];  
   $contactn      = $_POST['contactn'];
   $contactt      = $_POST['contactt'];
  $contacte      = $_POST['contacte'];
   $vat     = $_POST['vat'];
    $incorp      = $_POST['incorp'];

    $ipaddress = $_SERVER["REMOTE_ADDR"];




$sql="INSERT INTO supplier_registration (company_name, company_reg_number, company_incorp_date, company_address, company_postcode, contact_name, contact_number, contact_email, company_vat_number, date_time, user_ip)
    VALUES ('$cname', '$creg', '$incorp', $address', '$post', '$contactn', '$contactt', '$contacte', '$vat', NOW(), '$ipaddress')";

$result = mysql_query($sql); 


$qry2 = "INSERT INTO supplier_session (company_reg_number, company_name) VALUES('$creg','$cname') WHERE user_IP = '$ipaddress'";

 $result = @mysql_query($qry2);

$qry3="UPDATE supplier_session SET form1_completed = 'Yes' WHERE form1_completed = 'No' AND user_IP = '$ipaddress'";

$result = mysql_query($q); 



if($result){

header("Location: index.php?registration=sucess");


}else {
echo "ERROR";
}
?>

的HTML:

<form name="myForm" id="myform" action="company_info_process.php" onsubmit="return validateForm()" method="post">

<input type="text" id="field_cname" name="cname" class="field_cname">

<input type='text' name='creg' id="field_creg">

<input type='text' name='incorp' id="field_incorp">

<input type='text' name='vat' id="field_vat">

<input type='text' name='contactn' id="field_contactn">

<input type="text" name="contactt" id="field_contactt">

<input type="text" id="field_contacte" name="contacte">

<input type="text" id="field_address" name="address">

<input type="text" id="field_post" name="post"/>

首先,您在第三個查詢中調用了錯誤的變量。

更改$result = mysql_query($q); $result = mysql_query($qry3);

同樣,使用INSERT()語法,您不能具有WHERE()子句。 你會發現唯一的一次INSERT ,有一個WHERE子句是當你使用INSERT INTO...SELECT語句。

除此之外,在執行SELECT()UPDATE()時,通常使用WHERE子句。

快速旁注:我注意到您沒有結束</form>標記。 如果這是您的實際代碼,請添加它。

在頁面頂部使用錯誤報告:

error_reporting(E_ALL);
ini_set('display_errors', 1);

另外,使用:

else{
    echo mysql_errno($db_server) . ": " . mysql_error($db_server) . "\n";
    }

代替:

else {
echo "ERROR";
}

訪問PHP.net,以獲取有關錯誤報告的更多信息。


腳注:

mysql_*函數棄用通知:

http://www.php.net/manual/zh/intro.mysql.php

自PHP 5.5.0起不推薦使用該擴展,不建議編寫新代碼,因為將來會刪除該擴展。 相反,應使用mysqliPDO_MySQL擴展名。 另請參見MySQL API概述,以獲取選擇MySQL API時的更多幫助。

這些功能使您可以訪問MySQL數據庫服務器。 有關MySQL的更多信息,請參見» http://www.mysql.com/

可以在» http://dev.mysql.com/doc/中找到MySQL的文檔。

在您運行對mysql_query的調用的地方,輸出它生成的所有錯誤消息:

$result = mysql_query($sql) or die(mysql_error());

應該給出哪個查詢導致錯誤以及為什么的指示。

編輯:另外,請注意您在INSERT語句中有WHERE子句,您不能這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM