我創建了一個將數據提交到多個表的表單。我的字段是名字,姓氏,電子郵件,城市/地區/國家,它們全部插入3個不同的表格(用戶,電子郵件,位置)。從表中選擇多個數據並使用PHP表單插入到另一個表中
數據進入用戶和電子郵件很好,但我很困惑如何處理位置。
我有3個單獨的表位置(城市,地區,國家)。我想要做的是將CityID,RegionID和CountryID插入到位置表中。我有城市/地區/國家字段設置以便自動完成基於城市是這樣的:
我的城市表擁有所有必要的信息(CityID,RegionID,CountryID)。我如何從Cities表中提取數據並將其插入到Location表中?
這是我的代碼的一部分。我對PHP和MySQL非常陌生,所以我對這種不合理的情況表示歉意。代碼的第一部分起作用,但第二部分不起作用(將數據插入到位置表中)。
//Insert static values into people table
$sql_user = sprintf("INSERT INTO User (FirstName, LastName,) VALUES ('%s','%s')",
mysql_real_escape_string($_POST['FirstName']),
mysql_real_escape_string($_POST['LastName']),
$result_user = $db->query($sql_user);
//get last inserted userid
$inserted_user_id = $db->last_insert_id();
//Insert values into location table
$sql_city = sprintf("INSERT INTO Location (UserID, CityID, RegionID, CountryID)
VALUES ('$inserted_user_id',(SELECT CityID, RegionID, CountryID, FROM Cities))");
$result_city = $db->query($sql_city);
我想也許我需要在FROM城市之後有「WHERE ...」,但我不知道我的病情會是什麼。
感謝您的答覆,凱文。儘管我的一個擔憂是 - 我的城市表沒有地區名稱或國家/地區名稱。它只包含區域ID和國家/地區ID,並且我不能僅僅滿足條件WHERE city_name ='{$ city},因爲有幾個同名的城市。你知道我該如何解決這個問題嗎? – 2013-03-15 16:53:17
每個位置表中的列是什麼?城市表格列,地區列等... – kevin 2013-03-15 17:27:19
城市表格:CityID,CountryID,RegionID,CityName。區域表:RegionID,CountryID,RegionName。國家/地區表格:CountryID,CountryName。我嘗試了你的解決方案,除了我省略了關於地區和國家的數據(只抓取CityID),並且它適用於沒有重複的城市。一旦有同名的城市,我會遇到錯誤。 – 2013-03-15 17:32:34