global $db_name;
echo '<p><h3>Your Shopping Cart</h3></p>';
if(isset($_SESSION['cart'])) {
$total = 0;
echo '<table>';
echo '<tr>';
echo '<th>Code</th>';
echo '<th>Name</th>';
echo '<th>Quantity</th>';
echo '<th>Cost</th>';
echo '</tr>';
foreach($_SESSION['cart'] as $product_id => $quantity) {
///the problem is with these two line underneath
//Warning: mysqli_query() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs\.... on line 147
$do= "SELECT product_code, product_name, product_desc, qty, price FROM products WHERE id = .$product_id";
$result = mysqli_query($db_name,$do);
if($result){
while($obj = $result->fetch_object()) {
$cost = $obj->price * $quantity; //work out the line cost
$total = $total + $cost; //add to the total cost
echo '<tr>';
echo '<td>'.$obj->product_code.'</td>';
echo '<td>'.$obj->product_name.'</td>';
echo '<td>'.$quantity.' <a class="button [secondary success alert]" style="padding:5px;" href="update-cart.php?action=add&id='.$product_id.'">+</a> <a class="button alert" style="padding:5px;" href="update-cart.php?action=remove&id='.$product_id.'">-</a></td>';
echo '<td>'.$cost.'</td>';
echo '</tr>';
}
}
}
echo '<tr>';
echo '<td colspan="3" align="right">Total</td>';
echo '<td>'.$total.'</td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="4" align="right"><a href="update-cart.php?action=empty" class="button alert">Empty Cart</a> <a href="products.php" class="button [secondary success alert]">Continue Shopping</a>';
if(isset($_SESSION['username'])) {
echo '<a href="orders-update.php"><button style="float:right;">COD</button></a>';
}
else {
echo '<a href="login.php"><button style="float:right;">Login</button></a>';
}
echo '</td>';
echo '</tr>';
echo '</table>';
}
警告状態線がある:mysqli_query()パラメータ1がCで与えmysqliの文字列であることを期待:\ XAMPP \ htdocsに....線上147
私はちょうど何をすべきか理解していないが、多くのツットを見たが、助けにはならなかった。あなたの誰かが問題が何であるか把握する手助けがあれば、私は義務づけられます。
[実施例とドキュメント](http://php.net/mysqli_query)を使用する必要があり
:あなたのコメントの1から撮影
あなたのデータベースの*文字列*名である '$ db_name'を与えてください。次のように 'mysqli'のインスタンスを作成する必要があります:' $ mysqli = new mysqli( "localhost"、 "my_user"、 "my_password"、 "world"); '。もう一度、[ドキュメントには簡単な例があります](http://php.net/mysqli_query) – WEBjuju
次のエラーは '$ product_id'が連結されていないため、あなたは既に引用符で囲まれています。カプセル化を閉じたり、それを投げたりしてください。これはSQLインジェクションにも開放されています。 – chris85
接続オブジェクトを確認します。それ以外の場合は 'データベース接続 'を表示します。投稿時にダミー値を入力できます。 –