0

ここでphpを学習し、基本的なショッピングカートが機能している場合、選択するとカート内のアイテムが表示されますが、4桁の数字である「productid」の値、つまり「0001」のみが表示されます。

アイテムの説明も表示したいのですが、私のコードは

<?php
   session_start();
$cart=$_SESSION["cart"];

   extract($_POST);
   if (IsSet($productid)||IsSet($_SESSION["notempty"])) $empty=false;
   else $empty=true;

   if (!$empty)
   {
      if (IsSet($cart[$productid])) $cart[$productid]+=$quantity;
      else $cart[$productid]=$quantity;
      $_SESSION["notempty"]=true;
   }

   $_SESSION["cart"]=$cart;
?>

製品もデータベースに保存されていますが、同じIDをデータベースから呼び出す必要がありますか?

ありがとう

さて、これは私が今持っているものです

<?php
$con=mysqli_connect({dbhost},{dbusername},{dbpassword},{dbname});
// Check connection

if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT name, price FROM products = ".$var." WHERE productid = ".$i) ;

while($row = mysqli_fetch_array($result))
  {
  echo $row['name'];
  echo $row['price'];
  echo "<br>";
  }
?>

しかし、私はエラーが発生します

警告:mysqli_fetch_array()は、パラメーター1がmysqli_resultであると想定しています。これは、12行目の.../cart.phpで指定されたブール値です。

警告:54行目の... / cart.phpのforeach()に無効な引数が指定されています

私は何を間違えたのでしょうか?

ありがとう

4

1 に答える 1

0

POSTメソッドで製品IDとともに製品名を渡すか、製品IDが存在するときにSQLクエリを実行して、データベーステーブルの製品IDが現在の製品IDと等しい製品名を返す必要があります。カートに入れます。

以下のクエリに似たものを使用できます。

SELECT {product_name} FROM {product_table} WHERE id={product_id} LIMIT 1;

更新されたコード例:

$con = mysqli_connect({dbhost},{dbusername},{dbpassword},{dbname});
// Check connection

if(mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con, "SELECT name, price FROM products WHERE productid = $i;") ;

while($row = mysqli_fetch_array($result)) {
    echo $row['name'];
    echo $row['price'];
    echo "<br>";
}
于 2013-03-21T14:19:09.757 に答える