Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: корзина товаров!! помощь!!
 
 автор: RuslanBLR   (13.12.2011 в 13:53)   письмо автору
 
 

Привет! подскажите принцип работы карзины?

У меня есть БД товара. Вот я вывожу товар, сделал кнопку в корзину и передаю в форму id и цену товара: но при нажатии на кнопку перехожу на какую то другую страницу сайта. Я так понимаю заэто отвечает , как передать в сессию id и цену товара

<form id="form1" name="form1" method="post" action="<?php echo $_SERVER['REQUEST_URI'];?>">
<label>
<input type="hidden" name="product_price" value="<?php echo $f['price']?>" />
<input type="hidden" name="product_id" value="<?php echo $f['id']?>" />
<input type="hidden" name="tocart" value="tocart" />
<input type="submit" name="Submit" value=”В корзину” />
</label>
</form>

  Ответить  
 
 автор: Sfinks   (13.12.2011 в 14:20)   письмо автору
 
   для: RuslanBLR   (13.12.2011 в 13:53)
 

>Я так понимаю заэто отвечает $_SERVER['REQUEST_URI']
$_SERVER['REQUEST_URI'] - это абсолютный путь к текущей странице. Т.е. если код, который вы привели расположен в файле по адресу http://mysite.ru/foo/zakaz/index.php , то $_SERVER['REQUEST_URI'] будет == "/foo/zakaz/index.php". Соответственно если у вас в атрибуте action формы стоит $_SERVER['REQUEST_URI'], то и данные из формы попадут на эту же страницу. Значит в этом же файле должна быть еще и обработка данных формы. Т.е. структура файла может быть такой:
<?
if (!empty($_POST)){
  
// здесь какой-то код обработки полученных данных
  // чтобы наглядно увидеть какие данные получены
  // во время разработки можно указать:
  
print_r($_POST);
}
else{
  
// а здесь располагается тот код, который вы привели. Только вначале:
  
echo "<form id='form1' name='form1' method='post' action='{$_SERVER["REQUEST_URI"]}'><label>";
  
// затем все что у вас между <? и ?>
  // и в конце:
  echo "</label></form>";
}
?>


>я понимаю что карзина работает через сессии.
я лично тут ниче про сессии не увидел.

  Ответить  
 
 автор: Sfinks   (13.12.2011 в 14:21)   письмо автору
 
   для: RuslanBLR   (13.12.2011 в 13:53)
 

Либо я долго писал, либо вы быстро редактируете =)

  Ответить  
 
 автор: RuslanBLR   (13.12.2011 в 14:31)   письмо автору
 
   для: Sfinks   (13.12.2011 в 14:21)
 

я просто редактировал - подумал что очень большой код - неудобно читать.

Давай те я раскажу как я прочитал чтобы делать карзину.

1. на каждой странице где есть кнопка "В карзину" нужно в начале файла писать : session_start();
2. передаем код и цену товара из БД в сессию:

<form id="form1" name="form1" method="post" action="<?php echo $_SERVER['REQUEST_URI'];?>">
 <label>
 <input type="hidden" name="product_price" value="<?php echo $p['price']?>" />
 <input type="hidden" name="product_id" value="<?php echo $p['pid']?>" />
 <input type="hidden" name="tocart" value="tocart" />
 <input type="submit" name="Submit" value=”В корзину” />
 </label>
 </form>


дальше прилогается вот такая функция - которая добавляет указаный товар - я не понимаю где эта ф-ция должна распологатся?

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;
 }



и почему пользователь должен при нажатии на кнопку ''в карзину' переходить на другую страницу. Это я про
$_SERVER['REQUEST_URI'];
- он ведь должен и остаться на той же странице, а товар лечь в сессию. как я понял!

  Ответить  
 
 автор: Sfinks   (13.12.2011 в 14:45)   письмо автору
 
   для: RuslanBLR   (13.12.2011 в 14:31)
 

Все правильно.

> дальше прилогается вот такая функция - которая добавляет указаный товар - я не понимаю где эта ф-ция должна распологатся?
В том же файле в любом месте. можно в конце, можно в начале. Но в конце удобнее.
А обращаться к ней нужно из того места кода, которое я обозначил "обработкой данных из формы" примерно так:
<?
if(!empty($_POST)){
  
addtocart($_POST["product_id"],$_POST["product_price"]);
}
?>

> и почему пользователь должен при нажатии на кнопку ''в карзину' переходить на другую страницу.
фактически пользователь никуда не переходит, а просто перезагружается та же самая страница и в процессе перезагрузки его выбор сохраняется в сессию. А если вы хотите чтобы и перезагрузки не происходило, то это уже не так делается, а через AJAX. Тут я вам не помогу.

  Ответить  
 
 автор: RuslanBLR   (13.12.2011 в 14:47)   письмо автору
 
   для: Sfinks   (13.12.2011 в 14:45)
 

а почему нельзя тогда просто написать в action=ссылку на эту же страницу? она тогда и перегрузится

  Ответить  
 
 автор: Sfinks   (13.12.2011 в 15:06)   письмо автору
 
   для: RuslanBLR   (13.12.2011 в 14:47)
 

>а почему нельзя тогда просто написать в action=ссылку на эту же страницу? она тогда и перегрузится
Можно и указать. Но когда вы позднее (может через год) переименуете файл или еще что-то с ним сделаете, то придется это место искать и ручками исправлять.
Кроме того, это зависит от структуры сайта. $_SERVER["REQUEST_URI"] это универсальный подход.... Эта форма может ни в 1 файле использоваться, а скажем в 10.... Вы в каждом ручками будете вписывать его имя?

  Ответить  
 
 автор: RuslanBLR   (13.12.2011 в 15:13)   письмо автору
 
   для: Sfinks   (13.12.2011 в 15:06)
 

суть в том - что весь код что мы с вами написали - он находится :

http://www.mysait.by/zakaz.php

а при нажатии на кнопку я перехожу

http://www.mysait.by/poisk.php

вот это я не понимаю - как вы говорите я должет перейти на туже страниу где и кнопка с обработкой а перехожу на другую. В чем здесь ошибка???

  Ответить  
 
 автор: Sfinks   (13.12.2011 в 15:21)   письмо автору
 
   для: RuslanBLR   (13.12.2011 в 15:13)
 

такоко не должно быть.
Если просто хотите чтоб заработало, исправьте на zakaz.php
если хотите разобраться почему так происходит, временно замените:
<?php
  
if(!empty($_POST)){  
    
addtocart($_POST["product_id"],$_POST["product_price"]);  
  }
?>

на
<?php
  
if(!empty($_POST)){  
    echo 
"<pre>"print_r($_SERVER); exit("</pre>");
  }
?>

И скиньте сюда результат..... Посмотрим, подумаем.

  Ответить  
 
 автор: RuslanBLR   (13.12.2011 в 15:38)   письмо автору
 
   для: Sfinks   (13.12.2011 в 15:21)
 

Я вообще не понимаю исправил:

echo "<form  name='form1' method='post' action='zakaz.php'><label>";


и все равно переходит на другую страницу.......

  Ответить  
 
 автор: RuslanBLR   (13.12.2011 в 14:51)   письмо автору
 
   для: Sfinks   (13.12.2011 в 14:45)
 

я так понял что ниже указаный код проверяет что поступило из POST? а где его лучше указывать - можно ли вверху после session_start()???

<? 
if(!empty($_POST)){ 
  
addtocart($_POST["product_id"],$_POST["product_price"]); 

?>

  Ответить  
 
 автор: Sfinks   (13.12.2011 в 15:09)   письмо автору
 
   для: RuslanBLR   (13.12.2011 в 14:51)
 

>я так понял что ниже указаный код проверяет что поступило из POST?
Нет! Этот код ничего не проверяет. Он тупо берет и передает данные в функцию, которая также тупо берет и записывает их в сессию. Проверять нужно отдельно.... Между
if(!empty($_POST)){
и
addtocart($_POST["product_id"],$_POST["product_price"]);

>а где его лучше указывать - можно ли вверху после session_start()???
не можно, а нужно =) не скажу точно где, но однозначно между session_start() и началом вывода формы.

  Ответить  
 
 автор: RuslanBLR   (13.12.2011 в 15:41)   письмо автору
 
   для: Sfinks   (13.12.2011 в 15:09)
 

вот почти весь код:

<? 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;
 }
?>


........................
........................
...................
.................

<?
if(!empty($_POST)){   
    echo 
"<pre>"print_r($_SERVER); exit("</pre>"); 
  }
else{

echo 
"<form id='form1' name='form1' method='post' action='clipscod.php'><label>";
?>

    <?

include "setup/options.php";
if(!
mysql_connect($host,$USER,$PASSWD))
{
echo 
"<h1>Ошибка сервера MySql.</h1>";
exit;
}
mysql_select_db($DB);
$r=mysql_query("select * from CLIPS where kod=$_GET[kod]");


for (
$i=0$i<mysql_num_rows($r); $i++)
{

echo 
"<table border=1 width=100% ><tr><td align=center bgcolor=#000000>";
$f=mysql_fetch_array($r);
echo 
"<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>"; echo'<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>';


echo 
"<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>";


echo 
" <input type=hidden name='product_price' value=".$f[price]." />";
 echo 
"<input type=hidden name='product_id' value=".$f[id]." />";
echo 
" <input type=hidden name='tocart' value=tocart />";
 echo 
"<input type=submit name='zakaz' value='В корзину' />";


}

echo 
"$f[price]";

?> 


 

 </label>
 </form>
<?
}
?>

  Ответить  
 
 автор: Sfinks   (13.12.2011 в 16:03)   письмо автору
 
   для: RuslanBLR   (13.12.2011 в 15:41)
 

.... чет странно.
А в setup/options.php нет никаких редиректов?
хм...
а весь код замените на время на
echo "<pre>"; print_r($_SERVER); exit("</pre>");

  Ответить  
 
 автор: RuslanBLR   (13.12.2011 в 16:10)   письмо автору
 
   для: Sfinks   (13.12.2011 в 16:03)
 

какая строчка вас интересует?????

  Ответить  
 
 автор: RuslanBLR   (13.12.2011 в 16:13)   письмо автору
 
   для: Sfinks   (13.12.2011 в 16:03)
 

извините некоторые я скрыл:


Array
(

    [SHLVL] => 0
    [FCGI_ROLE] => RESPONDER


    [HTTP_CONNECTION] => close
    [HTTP_USER_AGENT] => Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.52
    [HTTP_ACCEPT] => text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
    [HTTP_ACCEPT_LANGUAGE] => ru-RU,ru;q=0.9,en;q=0.8
    [HTTP_ACCEPT_ENCODING] => gzip, deflate
    [HTTP_REFERER] => http://www.mysait.by/grupclips.php?tip=1.1
    [HTTP_COOKIE] => PHPSESSID=216697edf80cdbd799dac2f39c064307
    [HTTP_CACHE_CONTROL] => no-cache
    [SERVER_SIGNATURE] => 
    [SERVER_SOFTWARE] => Apache
    [SERVER_NAME] => www.mysait
    [SERVER_PORT] => 80
    [SERVER_ADMIN] => webmaster@www.mysait
    [SCRIPT_FILENAME] => /hosting/home/vvvvvvvv/public_html/clipscod.php
    [REMOTE_PORT] => 51442
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.0
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => kod=1001
    [REQUEST_URI] => /clipscod.php?kod=1001
    [SCRIPT_NAME] => /clipscod.php
    [PHP_SELF] => /clipscod.php
    [REQUEST_TIME] => 1323778080
    [argv] => Array
        (
            [0] => kod=1001
        )

    [argc] => 1
)

  Ответить  
 
 автор: Sfinks   (13.12.2011 в 16:28)   письмо автору
 
   для: 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)   письмо автору
 
   для: RuslanBLR   (13.12.2011 в 15:41)
 

Я тут немножко ваш код в божеский вид привел:
<?php
  
if(!empty($_POST)){    
    echo 
"<pre>"print_r($_SERVER); exit("</pre>");  
  } 

  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 method='post' action='clipscod.php'>"
  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='zakaz' value='В корзину' />"

  } 
  
$page .= "</label></form>"
  
  echo 
$page;
?>

  Ответить  
 
 автор: RuslanBLR   (13.12.2011 в 16:27)   письмо автору
 
   для: 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)){

  Ответить  
 
 автор: Sfinks   (13.12.2011 в 16:31)   письмо автору
 
   для: RuslanBLR   (13.12.2011 в 16:27)
 

да, сори.
$r = mysql_query("SELECT * FROM `clips` WHERE `kod` = {$_GET['kod']}");
и дальше по тексту во всех квадратных скобках " замените на '

  Ответить  
 
 автор: RuslanBLR   (13.12.2011 в 17:05)   письмо автору
 
   для: Sfinks   (13.12.2011 в 16:31)
 

options.php

<?
$USER 
""
$PASSWD ""
$DB="";
?>



на самой странице наважу на кнопку ''в карзину'
в низу прописывает путь на другую страницу



ИЗВИНИ нашел ошибку почему так получается:

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

<form action="poisk.php" method="GET">

  Ответить  
 
 автор: RuslanBLR   (13.12.2011 в 17:09)   письмо автору
 
   для: 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 в 18:10)   письмо автору
 
   для: RuslanBLR   (13.12.2011 в 17:09)
 

А $_GET["kod"] вы передаете???
Я проверил щас, есно на другой таблице но с идентичным запросом, без гет варнинг выдает, с гет все работает (и даже не нужно было исправлять " на ' оказывается).

А на счет файла.... я даж не знаю. Надо на итоговый HTML смотреть... Может формы вложенные или еще че....

  Ответить  
 
 автор: Sfinks   (13.12.2011 в 18:14)   письмо автору
 
   для: RuslanBLR   (13.12.2011 в 17:09)
 

> SELECT * FROM clips WHERE kod =
и все же имена полей и таблиц лучше заключать в обратные кавычки. Так надежнее!

  Ответить  
 
 автор: RuslanBLR   (13.12.2011 в 18:57)   письмо автору
 
   для: Sfinks   (13.12.2011 в 18:14)
 

я понял. СПАСИБО ВАМ! Удалил пока другую форму - буду разбиратся пока с карзиной. Вопрос :

мне весь код требуется прописывать на каждой странице чтобы хранить то что пользователь положил в карзину?

  Ответить  
 
 автор: Sfinks   (13.12.2011 в 23:46)   письмо автору
 
   для: RuslanBLR   (13.12.2011 в 18:57)
 

Не заметил последний вопрос.....

То, что пользователь положил в корзину, будет храниться в глобальном массиве $_SESSION.
В любом месте проекта, но уже после того, как session_start() была вызвана, можно получить доступ к этим данным. Для проверки содержания массива можно использовать короткий скрипт:
<?php
  session_start
();
  echo 
"<pre>";
  
print_r($_SESSION);
?></pre>

  Ответить  
 
 автор: RuslanBLR   (14.12.2011 в 12:33)   письмо автору
 
   для: 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
 
}
 
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования