我一直在爲一個婚禮網站製作一個定製的結婚禮物註冊表,我一直在建設,一段時間它似乎工作正常,但現在它似乎不工作,我不是知道爲什麼......PHP表格沒有正確更新SQL數據庫
禮物登記的工作方式如下:
代碼最初HTML表單會更新動態表格並刷新頁面,以便用戶可以看到他們選擇的禮物現在已被「取走」(刷新很重要,否則表格內容將不會更新)。現在發生的情況是,當用戶填寫表單並單擊提交時,表單條目似乎不會被輸入到數據庫中。
該代碼,這是一個完整的背,我從來沒有使用PHP,SQL或JavaScript在此之前(我曾涉獵一點在HTML),所以很自然,我認爲我是有點失落..
那麼有人知道我出錯了嗎?
我希望任何人都能給予幫助。
的代碼如下:
以下構建動態表
<?php
echo"<thead>
<tr>
<th>Gift</th>
<th>Price</th>
<th>Where to buy</th>
<th>Availability</>
</tr>
</thead>";
$dbc = mysqli_connect('localhost','XXXXX','XXXXX','XXXXX_giftregistry') or die('Error connecting to MYSQL server.');
$results = mysqli_query($dbc,"SELECT gift_name, price, where_to_buy, status FROM gift_reg");
while($row = mysqli_fetch_array($results)) {
?>
<tr>
<td><?php echo $row['gift_name']?></td>
<td><?php echo $row['price']?></td>
<td><?php echo $row['where_to_buy']?></td>
<td><?php echo $row['status']?></td>
</tr>
<?php
}
?>
</table>
下一部分是表單提交代碼
<?php
$person_gifting = $_POST['name'];
$status = $_POST['status'];
$gift_name = $_POST['gift_name'];
if ($_POST['submit']) {
$dbc = mysqli_connect('localhost','XXXXXX','XXXXXX','XXXXX_giftregistry') or die('Error connecting to MYSQL server.');
mysqli_query($dbc,"UPDATE gift_reg SET person_gifting = '$person_gifting' WHERE gift_name = '$gift_name'") or die ('Error querying database.');
mysqli_query($dbc,"UPDATE gift_reg SET status = '$status' WHERE gift_name = '$gift_name'") or die ('Error querying database.');
mysqli_close($dbc);
echo "<script> formSubmit()</script>";
}
下一節是形成。
echo "<form method='post' action='index.php'><label>Name</label><input name='name' placeholder='Type Here' required><label>What gift would you like to give?</label>";
$dbc = mysqli_connect('localhost','XXXXX','XXXXX','XXXXX_giftregistry') or die('Error connecting to MYSQL server.');
$query="SELECT gift_name FROM gift_reg WHERE status='Available'";
$result = mysqli_query ($dbc,$query);
echo "<select name='gift_name'>";
while($nt=mysqli_fetch_array($result)){
echo "<option value=$nt[gift_name]>$nt[gift_name]</option>";
}
echo "</select>";
mysqli_close($dbc);
?>
<label>Have you already purchased this gift?</label>
<input name='status' type="radio" value="Taken" id="r1" required>
<label for="r1"><span></span> Already purchased </label>
<input name='status' type="radio" value="Taken" id="r2" required>
<label for="r2"><span></span> Going to purchase </label>
<input id="submit" name="submit" type="submit" value="Submit">
</form>
的formSubmit()是指:
<script>
function formSubmit() {
window.location.reload();
}
</script>
在我看來,你重新加載頁面,而不是提交表單 –
不是你
B) '正在問,但[你的SQL代碼極其脆弱](http:// stackoverflow。COM /問題/ 332365 /如何 - 做最SQL注入,來自該鮑比 - 表 - XKCD可笑的工作)。 – bfavaretto
我可能錯過了一些東西,但是「現在不工作」?是否有一些錯誤信息?插入了錯誤的數據還是沒有數據?服務器崩潰?還有別的嗎? –