【问题标题】:Need confirmation for my order script我的订单脚本需要确认
【发布时间】: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


【解决方案1】:

很明显,您可能有 2 张桌子 -
1) 购物车
2) 订购

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    • 2016-10-10
    相关资源
    最近更新 更多