这是与mysql通信的订购脚本。问题是我想把这个文本/收据放在它确实将订单数据放入mysql之前,用户可以再次查看订购的产品,然后点击确认 - 将订单添加到数据库。
如何点击订单/ bestill后我会收到订购产品的确认页面并显示确认按钮。单击确认按钮后,我想要执行插入查询。而不是在执行查询后获取带有订购产品的页面。
<?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);
?>
答案 0 :(得分:0)
您将cart detail
存储在cart table
中并从中获取数据并将其显示给用户以进行最终确认。
当用户点击confirm
生成order number
时,会将所有详细信息从cart table
插入order table
,用户将继续执行其付款程序。