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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: корзина товаров!! помощь!!

Сообщения:  [1-10]    [11-20]  [21-27] 

 
 автор: 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
 
}
 
?>

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

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

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

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

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

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

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

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

  Ответить  
 
 автор: 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']}");  

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

options.php

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



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



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

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

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

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

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

  Ответить  
 
 автор: 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 происходит? Других мест не осталось. Затрите также там логины и пароли и покажите код

  Ответить  
 
 автор: 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)){

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-27] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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