|
|
|
|
|
для: Sfinks
(13.12.2011 в 23:46)
| | БОЛЬШОЕ ВАМ СПАСИБО!!!! БЕЗ ВАС НЕ СПРАВИЛСЯ!!!!!!!!
у меня еще пару вопросов:
1. Получаеться когда я нажимаю "в корзину" - товар заносится в карзину - но если я нажму обнавить страницу - то товар опять добавляется в карзину - как этого избежать?
2. Можно ли сделать чтобы товар который уже лежит в карзине - не смог добавиться еще раз. Например вызывал сообщение - что такой товар уже есть в карзине?
3. Как подсчитать общую сумму товара:
пробовал так:
$sum=0;
$sum+=$_SESSION['product_price'];
но выводит только: 0
вот код: вывод товара с кнопкой "в корзину":
<? session_start();
function addtocart($product_id, $product_price) {
$_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;
}
echo "$product_id";
echo "$product_price";
?>
........
.......
........
<?
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>
<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 />
<input type=submit name='sub' value='В корзину' />";
}
$page .= "</label></form>";
echo $page;
?>
|
код корзины:
<? session_start();
function remove_from_cart($delete_key) {
unset($_SESSION['product_id'][$delete_key]);
unset($_SESSION['product_price'][$delete_key]);
unset($_SESSION['product_count'][$delete_key]);
$_SESSION['prod_count']=$_SESSION['prod_count']-1;
sort($_SESSION['product_id']);
sort($_SESSION['product_price']);
sort($_SESSION['product_count']);
update_cart_sum();
}
function update_cart_sum() {
$_SESSION['cart_sum']=0;
for ($i=0; $i<$_SESSION['prod_count']; $i++) {
$_SESSION['cart_sum']=$_SESSION['cart_sum'] + $_SESSION['product_price'][$i]* $_SESSION['product_count'][$i];
}
}
function update_cart($cnt, $update_key) {
$_SESSION['product_count'][$update_key]=$cnt;
update_cart_sum();
}
if (isset($_POST['upd_id'])) {
update_cart($_POST['p_count'], $_POST['upd_id']);
}
if (isset($_POST['del_id'])) {
remove_from_cart($_POST['del_id']);
}
?>
.......
......
......
<?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><img src='clips/<?php echo $prod_in_cart['image'] ;?>' width=90px height=90px></td>
<td>
<!-- А дальше идут две формы для изменения количества товара и удаления -->
<form action="<?php echo $_SERVER['REQUEST_URI']?>" method="POST">
количество:<input type="text" name="p_count" size="3" value="<?php echo $_SESSION['product_count'][$i];?>" />
<input type="hidden" value="<?php echo $i;?>" name="upd_id"/></td>
<td>
<input type="submit" value="Обновить" /> </td>
<td><?php echo $_SESSION['product_price'][$i];?></td>
<td><?php echo $_SESSION['product_price'][$i]* $_SESSION['product_count'][$i];?></td>
</form>
<form action="<?php echo $_SERVER['REQUEST_URI']?>" method="POST">
<td>
<input type="hidden" value="<?php echo $i;?>" name="del_id" />
<input type="Submit" value="Удалить" />
</form>
</td>
</tr>
<?php
}
?>
|
| |
|
|
|
|
|
|
|
для: RuslanBLR
(13.12.2011 в 18:57)
| | Не заметил последний вопрос.....
То, что пользователь положил в корзину, будет храниться в глобальном массиве $_SESSION.
В любом месте проекта, но уже после того, как session_start() была вызвана, можно получить доступ к этим данным. Для проверки содержания массива можно использовать короткий скрипт:
<?php
session_start();
echo "<pre>";
print_r($_SESSION);
?></pre>
|
| |
|
|
|
|
|
|
|
для: Sfinks
(13.12.2011 в 18:14)
| | я понял. СПАСИБО ВАМ! Удалил пока другую форму - буду разбиратся пока с карзиной. Вопрос :
мне весь код требуется прописывать на каждой странице чтобы хранить то что пользователь положил в карзину? | |
|
|
|
|
|
|
|
для: RuslanBLR
(13.12.2011 в 17:09)
| | > SELECT * FROM clips WHERE kod =
и все же имена полей и таблиц лучше заключать в обратные кавычки. Так надежнее! | |
|
|
|
|
|
|
|
для: RuslanBLR
(13.12.2011 в 17:09)
| | А $_GET["kod"] вы передаете???
Я проверил щас, есно на другой таблице но с идентичным запросом, без гет варнинг выдает, с гет все работает (и даже не нужно было исправлять " на ' оказывается).
А на счет файла.... я даж не знаю. Надо на итоговый HTML смотреть... Может формы вложенные или еще че.... | |
|
|
|
|
|
|
|
для: Sfinks
(13.12.2011 в 16:31)
| | все равно бъет ошибку
вот исправил:
<?
$r = mysql_query("SELECT * FROM `clips` WHERE `kod` = {$_GET['kod']}");
$page = "<form 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>
?>
|
в коде ошибку исправил
$r = mysql_query("SELECT * FROM clips WHERE kod = {$_GET['kod']}");
|
| |
|
|
|
|
|
|
|
для: Sfinks
(13.12.2011 в 16:31)
| | options.php
<?
$USER = "";
$PASSWD = "";
$DB="";
?>
|
на самой странице наважу на кнопку ''в карзину'
в низу прописывает путь на другую страницу
ИЗВИНИ нашел ошибку почему так получается:
забыл про форму которая у меня находится справой стороны и так кнопка поиска которая и видет к той странице на которую я все время попадаю. Но почему она берет именно путь той кнопки???
<form action="poisk.php" method="GET">
|
| |
|
|
|
|
|
|
|
для: RuslanBLR
(13.12.2011 в 16:27)
| | да, сори.
$r = mysql_query("SELECT * FROM `clips` WHERE `kod` = {$_GET['kod']}");
и дальше по тексту во всех квадратных скобках " замените на ' | |
|
|
|
|
|
|
|
для: RuslanBLR
(13.12.2011 в 16:13)
| | Нет, пока ниче не понятно. Понятно только что в форме можете исправить обратно на $_SERVER["REQUEST_URI"]. Веренее даже не "можете", а нужно исправить, т.к.
[REQUEST_URI] => /clipscod.php?kod=1001
| а не "clipscod.php" и ето правильно, т.к. в коде у вас используется $_GET["kod"];
Покажите еще что в options.php происходит? Других мест не осталось. Затрите также там логины и пароли и покажите код | |
|
|
|
|
|
|
|
для: Sfinks
(13.12.2011 в 16:22)
| | Ошибка
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ........../clipscod.php on line 202
202 while($f = mysql_fetch_array($r)){ | |
|
|
|
|