簡體   English   中英

從數組中獲取項目並將其放入數據庫

[英]Taking Items from an Array and putting them into a database

如果這很簡單,我仍在學習,對此感到抱歉...我想要實現的是一個在線商店結帳系統(不要擔心它不會被使用,它僅用於我自己的學習,因此任何草率的代碼都不會影響可憐的企業主,但是任何對草率代碼的要求都會受到贊賞)。

因此,我讓客戶選擇產品,然后將這些產品存儲在陣列中並分配到購物籃中。 然后,我想將用戶帶到一個結帳頁面,以便他們可以單擊“訂單”,然后將這些項目及其用戶名更新到數據庫中的“訂單”表中。

我仍在處理數組(可能是我處於什么學習階段的標識符),所以當我有幾個數組時,我不確定如何將這些項目(基本上只是ISBN號和價格)從購物籃中帶到結帳頁面不同的數組。 我要做的是展示如何創建每個數組以及如何在籃子中顯示它,希望這將是您可能需要的一切! 非常感謝您的閱讀,我們將不勝感激。.希望這個問題對我也有幫助。

創建數組=

products.php

echo "<a href='addtolist.php?bookname=" . $bookname . "&bookauthor=" . 
     $bookauthor . "&bookpub=" . $bookpub . "&bookprice=" . $bookprice . 
     "&bookisbn=" . $bookisbn . "'>Add to basket</a>";

addtolist.php

<?php
 session_start();
 if ( !isset($_SESSION['username']) )
{
header("Location:index.php");
exit();
}

$bookarray = array();
$bookarray['bookname'] = $_GET['bookname'];
$bookarray['bookauthor'] = $_GET['bookauthor'];
$bookarray['bookpub'] = $_GET['bookpub'];
$bookarray['bookisbn'] = $_GET['bookisbn'];
$bookarray['bookprice'] = $_GET['bookprice'];

$found = false;

if (isset($_SESSION['list']))
{
  foreach ($_SESSION['list'] as $key => $another)
  {
    if ($_SESSION['list'][$key]['bookisbn'] == $_GET['bookisbn'])
        {
          $found = true;
          break;
    }
  }
}

if ($found == false)
{
  $_SESSION['list'] [] = $bookarray;
}

header('Location: ' . $_SERVER['HTTP_REFERER']);

exit();
?>

displaylist.php

<?php

if (!isset($_SESSION['list']))
{
echo "No list members selected";
}
else
{
?>
<div id="bket2">

<table>
<tr>
<td class='toprow'>Title</td>
<td class='toprow'>Author</td>
<td class='toprow'>Publisher</td>
<td class='toprow'>ISBN</td>
<td class='toprow'>Price</td>
</tr>

<?php

$totalprice=0;

foreach ($_SESSION['list'] as $key => $another)
{
?>
<tr>
        <td><?php echo $_SESSION['list'][$key]['bookname']?></td>
        <td><?php echo $_SESSION['list'][$key]['bookauthor']?></td>
    <td><?php echo $_SESSION['list'][$key]['bookpub']?></td>
    <td><?php echo $_SESSION['list'][$key]['bookisbn']?></td>
    <td><?php echo "&#163;".$_SESSION['list'][$key]['bookprice']?></td>
    <td><a href="removefromlist.php?bookisbn= <?php echo $_SESSION['list'][$key]['bookisbn']?> &location= <?php echo
    $_SERVER['PHP_SELF']?> ">[-]</a></td>
    </tr>
    <?$totalprice += $_SESSION['list'][$key]['bookprice'];?>
    <?php
    }
    }
    ?>
    </table>
    <div><h4>Total Price = &#163;<?echo $totalprice;?></h4></div>

</div>

然后在我的購物籃div中

<?php require "displaylist.php" ?

多謝你們

這是一個應該讓您入門的示例。

<?php

$dbh = new PDO('mysql:host=localhost;dbname=mysql', 'username', 'password');
$stmt = $dbh->prepare('insert into orders (isbn, price) values (?, ?)');

if (isset($_SESSION['list']))
{
  foreach ($_SESSION['list'] as $item)
  {
    $stmt->execute(array($item['bookisbn'], $item['bookprice']));
  }
}
?>

不確定要執行的操作,但我假設您想將存儲在$ _SESSION ['list']中的帳面價值插入mysql的“ orders”表中。 這是我的看法(假設您將“用戶名”存儲在某個會話變量中的某個位置):

<?php
session_start();

//connect to db
$con=mysql_connect("localhost","username","password");

if(!$con){
    die("Could not connect to the database: " .mysql_error());
};

mysql_select_db("db_name",$con);

//loop through each book in 'list' and add values to mysql table 'order'
for($i=0; $i<count($_SESSION['list']);$i++){

    $query="INSERT INTO `orders` 
                ('username',
                'isbn',
                'price',
                'timestamp') 
                VALUES 
                ('".mysql_real_escape_string($_SESSION['username'])."',
                '".mysql_real_escape_string($_SESSION['list'][$i]['bookisbn'])."',
                '".mysql_real_escape_string($_SESSION['list'][$i]['bookprice'])."',
                CURDATE()
                )";

    $result=mysql_query($query);
}

mysql_close();

    ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM