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

Форум PHP

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

 

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

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

тема: корзина-условие

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

 
 автор: RuslanBLR   (26.12.2011 в 20:11)   письмо автору
 
   для: cheops   (24.12.2011 в 20:10)
 

извините у меня ошибка вылезла, помогите пожалуйсто!!!!

вот код:

<? session_start(); 
 
$_SESSION['product_id'][$incart] = $product_id
function 
addtocart($product_id$product_price) { 

if(
is_array($_SESSION['product_id']) && !empty($_SESSION['product_id'])){
if(
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

 } 
 }
}
?>


а это дамп сессии карзины и там получаю 1 пустой index - от чего это???

<?
Array
(
    [
product_id] => Array
        (
            [] => Array
                (
                    [] => 
                    [
0] => 1
                    
[1] => 2
                    
[2] => 3
                
)

            [
0] => 1
            
[1] => 2
            
[2] => 3
        
)

    [
prod_count] => 3
    
[product_price] => Array
        (
            [
0] => 50000
            
[1] => 100000
            
[2] => 34000
        
)

    [
product_count] => Array
        (
            [
0] => 1
            
[1] => 1
            
[2] => 1
        
)
)
?>

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

СПАСИБО ВАМ БОЛЬШОЕ!!!!! РАЗОБРАЛСЯ ЧТО Я НЕПРАВИЛЬНО СДЕЛАЛ!!!!!!! ОГРОМНОЕ СПАСИБО!!!!!!!!!!

вот что получилось:

<? session_start(); 
 
$_SESSION['product_id'][$incart] = $product_id
function 
addtocart($product_id$product_price) { 

if(
is_array($_SESSION['product_id']) && !empty($_SESSION['product_id'])){
if(
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

 } 
 }
}
?>

  Ответить  
 
 автор: RuslanBLR   (26.12.2011 в 14:18)   письмо автору
 
   для: cheops   (26.12.2011 в 13:56)
 

ошибку не выводит - но не чего и не добавляет!

может я опять не так проверяю ( не туда добавил) потому что без этой проверки все нормально - но ошибку выводит:

<?
function addtocart($product_id$product_price) { 
if(
is_array($_SESSION['product_id']) && !empty($_SESSION['product_id'])){
if(
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
 } 
 }
}
?>


ошибку выводит только один раз при первом добавлении товара - потом все нормально - это когда без проверки is_array

  Ответить  
 
 автор: cheops   (26.12.2011 в 13:56)   письмо автору
 
   для: RuslanBLR   (26.12.2011 в 13:41)
 

Попробуйте изменить вот это условие
if(is_array($_SESSION['product_id'])){
следующим образом
if(is_array($_SESSION['product_id']) && !empty($_SESSION['product_id'])){

  Ответить  
 
 автор: RuslanBLR   (26.12.2011 в 13:41)   письмо автору
 
   для: cheops   (24.12.2011 в 20:10)
 

СПАСИБО БОЛЬШОЕ - ВСЕ ПОЛУЧИЛОСЬ!!!!!!!! извините просто не туда вставил код.
Подскажите не получается убрать эту ошибку:

Warning: in_array() [function.in-array]: Wrong datatype for second argument in


уже все перепробовал - как вы сказали поставить перед i
f(in_array($product_id, $_SESSION['product_id']))


проверку:
if(is_array($_SESSION['product_id']))


но не чего не выходит. Помогите пожалуйсто, при таком коде вообще не чего не добавляет в корзину :

<? session_start(); 

function 
addtocart($product_id$product_price) {
if(
is_array($_SESSION['product_id'])){
if(
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;
 }
 }
}
?>

  Ответить  
 
 автор: RuslanBLR   (24.12.2011 в 20:19)   письмо автору
 
   для: cheops   (24.12.2011 в 20:10)
 

а что нам это дает - что мы узнали что переменная является массивом.

может можно реализовать так, только получается что товар добавляется 1 раз и все, и другие уже тоже не добавляются, как правильно написать чтобы $_SESSION[product_id] не добавила такой же id: ?


if($_SESSION[product_id]=$_SESSION[product_id])

  Ответить  
 
 автор: cheops   (24.12.2011 в 20:10)   письмо автору
 
   для: RuslanBLR   (24.12.2011 в 19:26)
 

Совершенно верно.

  Ответить  
 
 автор: RuslanBLR   (24.12.2011 в 19:50)   письмо автору
 
   для: cheops   (24.12.2011 в 19:10)
 

видимо я не туда вствил проверку if(in_array($product_id, $_SESSION['product_id']))

как я думаю, потому что когда обнавляю страницу и массив заполняется, то и ошибка пропадает, то и товар продолжает добавлятся в карзину при обновлении!!!!!

  Ответить  
 
 автор: RuslanBLR   (24.12.2011 в 19:26)   письмо автору
 
   для: RuslanBLR   (24.12.2011 в 19:24)
 

или вот так?

if(is_array($_SESSION['product_id']))

  Ответить  
 
 автор: RuslanBLR   (24.12.2011 в 19:24)   письмо автору
 
   для: cheops   (24.12.2011 в 19:10)
 

извините я не понимаю!!!!

проверка in_array() это как? так что ли? извините еще раз

if (isset(in_array($_SESSION['product_id'])))

  Ответить  

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

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

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