我有一个包含3个表(位置,假期和类别)的数据库
我可以将数据插入到假期表中但是locationID和catID是NULL我如何在locationID,locationName,country中的Location表和catID中插入其他信息,catDesc在Category表中
我想我需要在(选项值=' ..')中拆分字符串并将其保存在2/3个不同的变量中,然后将它们插入表中但我不要&# 39;不知道如何。
谢谢
<?php
include 'database_conn.php';
$holidayTitle=$_POST['holidayTitle'];
$holidayDuration=$_POST['holidayDuration'];
$holidayPrice=$_POST['holidayPrice'];
$locationName=$_POST['locationName'];
$catDesc=$_POST['catDesc'];
if(isset($_POST['submit'])) {
$sql = "INSERT INTO PCH_holidays(holidayTitle, holidayDuration, holidayPrice)
VALUES ('$holidayTitle', '$holidayDuration', '$holidayPrice');";
$sql .= "INSERT INTO PCH_location (locationID)
VALUES ('$locationName');";
$sql .= "INSERT INTO PCH_category (catID)
VALUES ('$catDesc')";
if ($dbConn->multi_query($sql) === TRUE) {
echo "New records created successfully";
} else {
echo "Error: " . $sql . "<br>" . $dbConn->error;
}
}
$dbConn->close();
?>
<form action="admin.php" method="POST">
<input type="text" name="holidayTitle" placeholder="Title">
<br>
<input type="text" name="holidayDuration" placeholder="Duration">
<br>
<input type="text" name="holidayPrice" placeholder="Price">
<br>
<select name="locationName">
<option value='l1, Milaidhoo Island, Maldives'>Milaidhoo Island, Maldives</option>
<option value='l2, Rangali Island, Maldives'>Rangali Island, Maldives</option>
<option value='l3, Zanzibar, Tanzania'>Zanzibar, Tanzania</option>
<option value='l4', Boston, USA>Boston, USA</option>
<option value='l5, San Francisco, USA'>San Francisco, USA</option>
<option value='l6, Nairobi, Kenya'>Nairobi, Kenya</option>
<option value='l7, Algarve, Portugal'>Algarve, Portugal</option>
<option value='l8, New York, USA'>New York, USA</option>
<option value='l9, Sorrento, Italy'>Sorrento, Italy</option>
<option value='l10, Verona, Italy'>Verona, Italy</option>
</select>
<br>
<select name="catDesc" >
<option value='c1,Luxury'>>Luxury</option>
<option value='c2,Tour'>Tour</option>
<option value='c3,Safari'>Safari</option>
<option value='c4,Golf'>Golf</option>
<option value='c5,Weddings'>Weddings</option>
<option value='c6,Walking'>Walking</option>
<option value='c7,Opera'>Opera</option>
</select>
<br>
<input type="submit" name="submit" value="send info">
</form>
答案 0 :(得分:0)
我想我需要在(选项值=&#39; ..&#39;)中拆分字符串并将其保存在2/3个不同的变量中,然后将它们插入表中但我不要&# 39;不知道如何。
那就是它。
使用您的帖子数据将字符串拆分为3个变量:
list($locationID, $locationName, $country) = explode(",", $_POST['locationName']);
然后相应地更改您的SQL。
INSERT INTO PCH_location (locationID, locationName, country)
VALUES ('$locationID', '$locationName', '$country');
使用类别表重复相同的事情。
请注意您收到的关于SQL安全性的评论,即准备好的语句。以上内容应解决您的错误。
答案 1 :(得分:0)
如果您使用下拉列表来定位和分类,则选项的值应该是 是相应选项的ID,而不是描述/名称。 IOWs,他们应该 您可以直接将这些数字保存到您的假期表中。无需解析/操作。
你有:
<option value='l1, Milaidhoo Island, Maldives'>Milaidhoo Island, Maldives</option>
但它应该是:
<option value='1'>Milaidhoo Island, Maldives</option>
注意强>
由于您将密钥存储到其他两个表中,因此不也会将这些表中的文本存储在假日表中。如果名称发生更改,则必须对假日表进行更新以更新说明。不是关系数据库的最佳用途。不是标准化的结构。