2016-01-21 63 views
2
<?php 

$sql="SELECT * FROM products WHERE id_product IN ("; 

foreach($_SESSION['cart'] as $id => $value) { 
    $sql.=$id.","; 
} 

$sql=substr($sql, 0, -1).") ORDER BY name ASC"; 
$query=mysql_query($sql); 
$totalprice=0; 

while ($row=mysql_fetch_array($query)){ 
    $subtotal=$_SESSION['cart'][$row['id_product']]['quantity']*$row['price']; 
    $totalprice+=$subtotal; 
    ?> 
    <tr> 
     <td><?php echo $row['name'] ?></td> 
    <td><input type="text" name="quantity[<?php echo $row['id_product'] ?>]" size="5" value="<?php echo $_SESSION['cart'][$row['id_product']]['quantity'] ?>" /></td> 
    <td><?php echo $row['price'] ?>$</td> 
    <td><?php echo $_SESSION['cart'][$row['id_product']]['quantity']*$row['price'] ?>$</td> 
    </tr> 
    <?php    
    } 
?> 
<tr> 
    <td>Total Price: <?php echo $totalprice ?></td> 
</tr> 

這是我目前使用的代碼。 我得到明顯的錯誤是:將mysql_fetch_array更改爲PDO等效

Fatal error: Uncaught Error: Call to undefined function mysql_query()

我知道我需要將其更改爲PDO,但我不知道該怎麼用,同時還得到我想要的totalprice更換mysql_fetch_array
將其更改爲在此之後:

foreach($_SESSION['cart'] as $id => $value) { 
    $sql.=$id.","; 
} 

$sql=substr($sql, 0, -1).") ORDER BY name ASC"; 
$stmt = $db->prepare($sql); 
$stmt->execute(); 
$totalprice=0; 

我不確定如何進行,同時還得到正確的總價

+0

的'mysql_ *'功能已被刪除,請在[php.net(HTTP或者'PDO'或'MySQLi'看一看:// PHP 。淨/)。 – Tom

+0

'PDO''mysql_fetch_array()'是'$ conn-> fetchAll()',其中'$ conn'是連接變量。 – Tom

回答

0
$sql="SELECT * FROM products WHERE id_product IN ("; 

foreach($_SESSION['cart'] as $id => $value) { 
    $sql.=$id.","; 
} 

$sql=substr($sql, 0, -1).") ORDER BY name ASC"; 
$stmt = $db->prepare($sql); 
$stmt->execute(); 
$totalprice=0; 

$result = $stmt->fetchAll(PDO::FETCH_ASSOC); # FOr mysql_fetch_assoc 

foreach ($result as $index=>$arr) { 
    // $val = $arr['key']; 
} 

純MySQL的方式:

while ($row = $stmt->fetch(PDO::FETCH_ASSOC) { 
    // $val = $row['key']; 
} 

對於mysql_fetch__array:

您可以使用PDO :: FETCH_NUM

鏈接:http://php.net/manual/en/pdostatement.fetchall.php

http://micmap.org/php-by-example/manual/de/pdostatement.fetch.html

+0

我得到的錯誤: 警告:爲foreach提供的無效參數() 在行:'foreach($ _ SESSION ['cart']爲$ id => $ value){' –

+0

這就是$ _SESSION ['cart ']應該是一個數組。是不是數組?通過echo gettype($ _ SESSION ['cart'])檢查$ _SESSION ['cart']的類型。 –