2014-07-15 3 views
0

Я пытаюсь создать сайт электронной коммерции, и на моей странице корзины количество и цена товара не умножаются. Он возвращает 0. Если пользователь добавляет товар в корзину, он возвращает количество 1 и цену 0, он добавляет еще один, количество обновляется, а цена равна 0. Цена $ price = $ price * $ each_item [' «]; не работает должным образом. Вот код. Большое вам спасибо за ваши ответы!Цена и количество продуктов PHP в PHP не умножаются

$i=0; 
foreach($_SESSION["cart_array"]as $each_item){ 
    $i++; 
    $item_id=$each_item['item_id']; 
    $sql=mysql_query("SELECT*FROM products WHERE id='$item_id' LIMIT 1"); 
    while($row = mysql_fetch_array($sql)){ 
     $product_name= $row["product_name"]; 
     $price=$row["price"]; 
    } 
    $price= $price * $each_item['quantity']; 
    $cartOutput.= "<h2>Product number: $i</h2>"; 
    $cartOutput.= "<p>Product ID:".$each_item['item_id']."</p>"."<br/>"; 
    $cartOutput.= "<p>Quantity:".$each_item['quantity']."</p>"."<br/>"; 
    $cartOutput.= "<p>Product name:".$product_name."</p>" ."<br/>"; 
    $cartOutput.= "<p>Price:".$price ."</p>"."<br/>"; 
} 
+2

Возможно, что ваша база данных содержит ненулевые значения в столбце цены? –

+0

Каково содержание $ row ["price"]? – VMai

+0

Если вам нравится, подумайте о следующем простом двухэтапном курсе действий: 1. Если вы еще этого не сделали, укажите надлежащие DDL (и/или sqlfiddle), чтобы мы могли более легко воспроизвести проблему. 2. Если вы еще этого не сделали, укажите желаемый результирующий набор, соответствующий информации, представленной на шаге 1. – Strawberry

ответ

0
  1. Использовать mysqli или PDO вместо этого. mysql устарел и может привести к множеству проблем. Подумайте о SQL Inyection.

Вот больше информации о PDO http://php.net/manual/en/ref.pdo-mysql.php

Вот информация о MySQLi http://php.net/manual/en/mysqli.quickstart.prepared-statements.php

  1. Убедитесь, данные добавляются в массив сеанса, когда элемент добавляется в «корзину» Хорошей практикой может быть установка количества как 1 по умолчанию.
+0

Все это «ответ» было бы лучше в поле для комментариев –

+0

Спасибо за ваш ответ и ссылки! Это была моя ошибка. В базе данных в столбце цены все цены были в тегах абзаца html. –

0

Если бы я тебя я хотел бы начать с проверкой, если ключ SESSION «cart_array» является массивом, и если содержит какие-либо действительные значения:

$resultarray = $_SESSION["cart_array"]; 
    $count = count($resultarray); 
    if($count > 0) 
    { 
     foreach($resultarray as $result) 
     { 

     } 
    } else { 
     echo 'we have a problem'; 
    } 

Проверьте, если у вас есть хорошая СВЯЗЬ к базе данных , если он уже создан, и если вы можете импортировать одну строку mysql_fetch_row(); http://php.net/manual/en/ref.mysql.php

Надеюсь, это поможет вам.

Смежные вопросы