2

これが単純な場合、私はまだとても申し訳ありません...私が達成しようとしているのはオンラインショップチェックアウトシステムです(それが使用されないことを心配しないでくださいそれは私自身の学習のためだけなので、ずさんなコードは貧しいビジネスオーナーに影響を与えませんがずさんなコードでのピックアップは常に歓迎されます)。

だから私は顧客に製品を選んでもらいました、そしてそれらは配列に保存されてバスケットに入れられます。次に、ユーザーをチェックアウトページに移動して、[注文]をクリックすると、これらのアイテムとユーザー名がデータベースの[注文]テーブルに更新されます。

私はまだ配列(おそらく私が学習のどの段階にいるのかを示す識別子)を理解しているので、これらのアイテム(基本的には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" ?

みんなありがとう

4

2 に答える 2

1

これがあなたが始めるべき例です。

<?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']));
  }
}
?>
于 2012-04-12T22:28:55.360 に答える
0

何をしようとしているのか正確にはわかりませんでしたが、$ _SESSION['list']に保存した簿価をmysqlの'orders'テーブルに挿入したいと思いました。これが私の見解です(セッション変数のどこかに「username」が格納されていると仮定します):

<?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();

    ?>
于 2012-04-12T22:52:21.727 に答える