2013-04-14 2 views
0

У меня есть проблема с PHPe коммерция сайт, добавить в корзину ошибки. (Справки PHP)

Я строй сайта электронной коммерции (курсовой для универ) и я создаю надстройку в корзину части.

Я могу добавить товар в корзину (с названием, цена, ID & количество отображается), однако, какой бы продукт, который я добавить в корзину она всегда отображает название, цена & ID первого продукта в базе ,

(Например, я могу добавить 2 элементов в базу данных, и они оба имеют звание первого элемента в базе данных)

(код для отображения продуктов в корзине ниже) Спасибо

if(isset($_SESSION['cart']) && count($_SESSION['cart']) > 0){ 
    foreach($_SESSION['cart'] as $product_id => $qty){ 

     $sql = "SELECT post_title, price, post_id FROM products"; 
      $result = mysql_query($sql); 

      if(mysql_num_rows($result) > 0) { 
      list($name, $price, $id) = mysql_fetch_row($result); 

       echo "ID " . $product_id . " " . $name ." " . "Price : " . $price . " DB ID " . $id ." Quantity = " . $qty . "<br/>"; 
      } 
    } 

echo "<td colspan=\"3\" align=\"right\"><a href=\"$_SERVER[PHP_SELF]?empty\" onclick=\"return confirm('Are you sure?');\">Empty Cart</a></td>"; 

}else{ 

echo "0"; 
} 
+0

Добавление примера того, как выглядят данные в $ _SESSION ['cart'], поможет найти проблему. –

ответ

1

Вам нужно добавить предложение WHERE на ваш запрос.

$sql = "SELECT post_title, price, post_id FROM products WHERE `id` = '$product_id'"; 

В настоящее время все, что делает ваш запрос, - это все, что из таблицы базы данных, а затем вы выбираете первую строку.

Предложение WHERE ограничивает ваш запрос, только чтобы взять строку соответствующего продукта, обратите внимание, что вам может потребоваться изменить имя столбца для столбца идентификатора продукта.

Несмотря на личную рекомендацию, вместо того, чтобы получать продукт из базы данных при каждой загрузке страницы, полагая, что никто не собирается добавлять избыточные объемы продуктов в корзину, просто храните информацию о продукте в ключе сеанса тележки.

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