【发布时间】:2014-05-14 02:56:53
【问题描述】:
这是与 mysql 通信的订购脚本。问题是我想把这个文本/收据,在它实际将订单数据放入 mysql 之前,用户可以再次查看订购的产品,然后单击确认 - 将订单添加到数据库。
点击订单/besttill 后,我如何获得包含已订购产品的确认页面并显示确认按钮。单击确认按钮后,我希望执行插入查询。而不是在执行查询后获取包含已订购产品的页面。
<?php
include_once "db.php";
$link = koble_opp();
// Performing SQL query
$query = "SELECT PNr, PNavn, Pris FROM PRODUKT";
$result = mysqli_query($link, $query) or die('Query failed: ' . mysqli_error());
// putting products in array
$Produkter = array();
while ($line = mysqli_fetch_array($result)) {
$Produkter[$line["PNr"]] = $line;
}
mysqli_free_result($result);
// Gjennomfør bestilling :: Looper gjennom alle varer // looping trough products
$AntallVarerBestilt = 0;
$OrdreTotal = 0;
$BestilteProdukter = array(); // Denne vil ta vare på produktene som er bestilt, for kvittering
foreach($Produkter as $PNr => $line) {
if(is_numeric($_POST["antall_$PNr"]) && $_POST["antall_$PNr"] > 0) {
$OrdreProduktID = $PNr;
$OrdreProduktNavn = $line["PNavn"];
$OrdreProduktAntall = $_POST["antall_$PNr"];
$OrdreProduktPris = $line["Pris"];
$OrdreAntallPris = $OrdreProduktPris * $OrdreProduktAntall;
$OrdreTotal += $OrdreAntallPris;
$AntallVarerBestilt += $OrdreProduktAntall;
// Klargjør kvittering
$BestilteProdukter[$OrdreProduktID] = $line;
$BestilteProdukter[$OrdreProduktID]["antallbestilt"] = $OrdreProduktAntall;
$BestilteProdukter[$OrdreProduktID]["subtotal"] = $OrdreAntallPris;
$query = "INSERT INTO ORDRE (`Antall`, `Pris`,`PNr`, Dato) VALUES ('$OrdreProduktAntall', '$OrdreAntallPris', '$OrdreProduktID', NOW())";
$result = mysqli_query($link, $query) or die('Query failed: ' . mysqli_error());
}
else {
echo "Bestillingen ble lagret";
foreach ($BestilteProdukter as $ProduktID => $Data)
{
echo $Data["PNavn"] . " ($ProduktID) koster " . $Data["Pris"] . " kr, og du bestilte " . $Data["antallbestilt"] . ", som blir " . $Data["subtotal"] . " kr <br />";
}
echo "Bestillingen kommer på totalt kroner $OrdreTotal";
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border="1">
<tr>
<th>VNR</th>
<th>Betegnelse</th>
<th>Pris</th>
<th>Antall</th>
</tr>
<?php
// Byttet om fra mysqli_fetch_array til foreach her
foreach($Produkter as $ProduktData) {
?>
<tr>
<td>
<?php echo $ProduktData["PNr"]; ?></td>
<td><?php echo $ProduktData["PNavn"]; ?></td>
<td><?php echo $ProduktData["Pris"]; ?></td>
<td><input type="text" name="antall_<?php echo $ProduktData["PNr"]; ?>" value="0"></td>
</tr>
<?php }
?>
</table>
<input type="submit" name="neste" value="Neste">
<input type="submit" name="bestill" value="Bestill" onclick="return confirm('Bestillingen sendes')">
</form>
<?php
// Closing connection
mysqli_close($link);
?>
【问题讨论】:
-
你有什么问题?
-
点击订单/bestill 后,我想获得带有已订购产品的确认页面并显示确认按钮。单击确认按钮后,我希望执行插入查询。
标签: php mysqli confirmation