|
|
|
|
|
для: RuslanBLR
(28.12.2011 в 13:18)
| | Да... в Вашей функции удаления позиции перед foreach делайте проверку на существования массива например так:
function remove_from_cart($delete_key) {
if (sizeof($_SESSION['product_id'])) {
foreach ($_SESSION['product_id'] as $key=>$value) {
if ($value == $delete_key) {
unset($_SESSION['product_id'][$key]);
unset($_SESSION['product_price'][$key]);
unset($_SESSION['product_count'][$key]);
return true;
}
}
return false;
}
else
return false;
}
|
| |
|
|
|
|
|
|
|
для: Lotanaen
(28.12.2011 в 12:57)
| | ОГРОМНОЕ ВАМ СПАСИБО!!!!!!!! СПАСИБО!!!!!!!!!!! СПАСИБО ЗА ТЕРПЕНИЕ!!!!!!!!! | |
|
|
|
|
|
|
|
для: RuslanBLR
(28.12.2011 в 12:36)
| | вот этот фрагмент :
for ($i=0; $i<$_SESSION['prod_count']; $i++) {
/* получаем информацию о товаре из базы данных */
$q="SELECT * FROM CLIPS WHERE id='".$_SESSION[product_id][$i]."'";
|
замените на :
foreach ($_SESSION[product_id] as $key=>$value) {
/* получаем информацию о товаре из базы данных */
$q="SELECT * FROM CLIPS WHERE id='".$value."'";
|
а еще лучше в один запрос к БД загнать все ИД товара и затем по циклу выводить:
<?php
include "setup/options.php";
if(!mysql_connect($host,$USER,$PASSWD)) exit(@mysql_error());
if(!mysql_select_db($DB)) exit(@mysql_error());
if (sizeof($_SESSION['product_id'])) {
/* получаем информацию о товаре из базы данных */
$q="SELECT * FROM CLIPS WHERE id in (".implode(",",$_SESSION['product_id']).");";
$query=mysql_query($q);
while ($prod_in_cart=mysql_fetch_array($query)) {
?>
<tr>
<td align=center><? echo "$prod_in_cart[kod]"; ?></td>
<td align=center><img src='clips/<?php echo $prod_in_cart['image'] ;?>' width=50px height=50px></td>
<td align=center>
<input type="text" name="kol[<?=$prod_in_cart['id'];?>]" size="3" value="" /></td>
<td align=center><?php echo prod_in_cart['product_price'];?></td>
<td align=center>
<a href='<?php echo $_SERVER['REQUEST_URI'];?>?action=delete&del_id=<?php echo $prod_in_cart['id'];?>' title='удалить'>удалить</a>
</td>
</tr>
<?php
}
}
else
echo "Корзина пуста!";
?>
|
| |
|
|
|
|
|
|
|
для: Lotanaen
(28.12.2011 в 12:25)
| | не удалило поля из таблицы. из массива товар удалило с этим все отлично - спасибо еще раз большое!! у меня ссылка и ссылается на эту же страницу - разве она не должна удалить поля товара из таблицы -товар же уже удален. Извините немного не понял. Вот мой вывод:
<? session_start();
function remove_from_cart($delete_key) {
foreach ($_SESSION['product_id'] as $key=>$value) {
if ($value == $delete_key) {
unset($_SESSION['product_id'][$key]);
unset($_SESSION['product_price'][$key]);
unset($_SESSION['product_count'][$key]);
}
}
}
if (isset($_GET['del_id'])) {
remove_from_cart($_GET['del_id']);
}
<div class="content">
<br>
<table border=1 width=100%>
<tr><td align=center bgcolor=#000000><font color=white>код</font></td><td bgcolor=#000000><font color=white></font></td><td align=center bgcolor=#000000><font color=white>количество</font></td><td bgcolor=#000000 align=center><font color=white>цена за шт</font></td><td bgcolor=#000000 align=center><font color=white>удалить товар</font></td></tr>
<?php
include "setup/options.php";
if(!mysql_connect($host,$USER,$PASSWD)) exit(@mysql_error());
if(!mysql_select_db($DB)) exit(@mysql_error());
for ($i=0; $i<$_SESSION['prod_count']; $i++) {
/* получаем информацию о товаре из базы данных */
$q="SELECT * FROM CLIPS WHERE id='".$_SESSION[product_id][$i]."'";
$query=mysql_query($q);
$prod_in_cart=mysql_fetch_assoc($query);
?>
<tr>
<td align=center><? echo "$prod_in_cart[kod]"; ?></td>
<td align=center><img src='clips/<?php echo $prod_in_cart['image'] ;?>' width=50px height=50px></td>
<td align=center>
<input type="text" name="kol[<?=$prod_in_cart['id'];?>]" size="3" value="" /></td>
<td align=center><?php echo $_SESSION['product_price'][$i];?></td>
<td align=center>
<a href='<?php echo $_SERVER['REQUEST_URI'];?>?action=delete&del_id=<?php echo $_SESSION[product_id][$i];?>' title='удалить'>удалить</a>
</td>
</tr>
<?php
}
?>
</table>
?>
|
| |
|
|
|
|
|
|
|
для: RuslanBLR
(28.12.2011 в 12:01)
| | Какие поля не удалило? У Вас обновление страницы происходит по ссылке на удаления из корзины? Если да, то сначала удаляйте позицию из корзины, а потом вывод самой страницы делайте. | |
|
|
|
|
|
|
|
для: Lotanaen
(28.12.2011 в 11:08)
| | спасибо - вроде все хорошо - с массива удаляет, но поля удаляемого товара остаются ну а значения удалены. Почему поля не удалило? Может не правильно записал что?:
правильно ли я записал?
<?
function remove_from_cart($delete_key) {
foreach ($_SESSION['product_id'] as $key=>$value) {
if ($value == $delete_key) {
unset($_SESSION['product_id'][$key]);
unset($_SESSION['product_price'][$key]);
unset($_SESSION['product_count'][$key]);
}
}
}
if (isset($_GET['del_id'])) {
remove_from_cart($_GET['del_id']);
}
?>
|
передаю что удалить:
<?
<a href='<?php echo $_SERVER['REQUEST_URI'];?>?action=delete&del_id=<?php echo $_SESSION[product_id][$i];?>' title='удалить'>удалить</a>
?>
|
| |
|
|
|
|
|
|
|
для: RuslanBLR
(28.12.2011 в 11:29)
| | А как у Вас схема работает, если покупатель например добавил одну позицию в корзину, а потом решил еще раз добавить ту же позицию в корзину? Или у Вас можно только по одной позиции каждого товара в корзину класть? | |
|
|
|
|
|
|
|
для: DJ Paltus
(28.12.2011 в 00:01)
| | я не понимаю - что значит зачем счетчик, а как я положу несколько товаров?
вот как я передаю товар в корзину:
<? session_start();
function addtocart($product_id, $product_price) {
if(is_array($_SESSION['product_id']) && in_array($product_id, $_SESSION['product_id'])){
echo "<p class=contGLAV2><font color=#BEBEBE><strong>товар уже есть в корзине</font></strong></p>";
}
else
{
$_SESSION['prod_count']++;
$incart=$_SESSION['prod_count'] - 1;
$_SESSION['product_id'][$incart] = $product_id;
$_SESSION['product_price'][$incart] = $product_price;
$_SESSION['product_count'][$incart] = 1;
}
}
?>
|
Первая строчка $_SESSION['prod_count']++ добавляет единицу к переменной $_SESSION['prod_count'], которая представляет собой счетчик товаров в корзине.
$incart=$_SESSION['prod_count']-1 – индекс массива, содержащего информацию о продукте в корзине. $_SESSION['product_id'][$incart] – идентификатор продукта, $_SESSION['product_price'][$incart] – цена продукта, $_SESSION['product_count'][$incart] – количество единиц продукта в корзине.
почему я не правильно делаю???
вывод из БД:
<?
if(!empty($_POST)){
addtocart($_POST["product_id"],$_POST["product_price"]);
}
include "setup/options.php";
if(!mysql_connect($host,$USER,$PASSWD)) exit(@mysql_error());
if(!mysql_select_db($DB)) exit(@mysql_error());
$r = mysql_query("SELECT * FROM CLIPS WHERE kod = {$_GET['kod']}");
$page = "<form id='form1' name='form1' method='post' action='{$_SERVER["REQUEST_URI"]}'>";
while($f = mysql_fetch_array($r)){
$page .= "<table border=1 width=100%>
<tr><td align=center bgcolor=#000000><font color=white>код: {$f['kod']}</font></td>
<td align=center bgcolor=#000000><font color=white>место установки:</font></td>
<td align=center bgcolor=#000000><font color=white>тип: {$f['tip']}</font></td></tr>
<tr><td width=5% align=left bgcolor=#FFFFFF height=5px><img src='clips/{$f['image']}' width=120px height=120px></td>
<td align=center>{$f['setup']}</td><td width=120px height=120px>картинка</td></tr>
<tr><td align=center bgcolor=#000000><font color=white>OEM:</font></td>
<td align=center bgcolor=#000000><font color=white>марка автомобиля:</font></td>
<td align=center bgcolor=#000000><font color=white>размеры:</font></td></tr>
<tr><td bgcolor=#E8E8E8 align=center>{$f['original']}</td>
<td align=center>{$f['marka']}</td>
<td>T= {$f['T']} <br>H= {$f['H']}<br>F= {$f['F']}<br>D= {$f['D']}<br>T1= {$f['T1']}<br>
T2= {$f['T2']}<br>L= {$f['L']}<br>G= {$f['G']}<br>S1= {$f['S1']}<br>S= {$f['S']}<br>
S min= {$f['Smin']}<br>S max= {$f['Smax']}</td></tr></table><br>
<p class=contGLAV2><strong>Цена: {$f['price']} бел.руб.</strong></p>
<input type=hidden name='product_price' value=".$f[price]." />
<input type=hidden name='product_id' value=".$f[id]." />
<input type=hidden name='tocart' value=tocart />
<table border=0 width=100%><tr><td align=center>
<input type=submit name='sub' value='В корзину' id='korz' />
</td></tr></table>";
$f['price']=$_SESSION['price'];
echo "$f[price]";
}
$page .= "</label></form>";
echo $page;
?>
|
| |
|
|
|
|
|
|
|
для: RuslanBLR
(27.12.2011 в 17:45)
| | как вариант:
<?
foreach ($_SESSION['product_id'] as $key=>$value) {
if ($value == $delete_key) {
unset($_SESSION['product_id'][$key]);
unset($_SESSION['product_price'][$key]);
unset($_SESSION['product_count'][$key]);
}
}
?>
|
| |
|
|
|
|
|
|
|
для: RuslanBLR
(27.12.2011 в 17:16)
| | Вот. Вотвотвотвотвоот.
На кой леший этот счетчик? Если Вы мне это сумеете объяснить, то или у меня, или у Вас случится просветление. Сатори. А следующие Ваши 4 комментария я читать не стану, потому что многовато информации ради плёвого дела. | |
|
|
|
|