需要确认我的订单脚本

时间:2014-04-02 16:50:53

标签: php mysqli confirmation

这是与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);
?>

1 个答案:

答案 0 :(得分:0)

很明显你可能有两张桌子 -
1)推车
2)订单

您将cart detail存储在cart table中并从中获取数据并将其显示给用户以进行最终确认。

当用户点击confirm生成order number时,会将所有详细信息从cart table插入order table,用户将继续执行其付款程序。