Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: покупательская корзина

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
alfred
Отправлено: 01 Марта, 2007 - 11:40:53
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2007  
Откуда: Украина, Одесса


Помог: 0 раз(а)




Прошу помощи в создании корзины.
Из найденных сообщений я не нашла подходящих мне советов. Такая задача:выбирается товар, помещается в масив SESSION , а затем этот масив должен попастьв файл 1, где в виде таблицы выводятся все выбранные товары. Вопрос - как передать массив в файл 1?
 
 Top
evgenijj
Отправлено: 01 Марта, 2007 - 15:26:42
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




alfred пишет:
Прошу помощи в создании корзины.
Из найденных сообщений я не нашла подходящих мне советов. Такая задача:выбирается товар, помещается в масив SESSION , а затем этот масив должен попастьв файл 1, где в виде таблицы выводятся все выбранные товары. Вопрос - как передать массив в файл 1?

Честно говоря - ничего не понял. "Массив должен попасть в файл 1" - что означает это загадочная фраза? Информация о заказах будет храниться в файлах, а не в БД? Если да - то в каком формате? CSV, HTML? Или надо сгенерировать HTML и вывести его в браузер? Что значить - передать массив в файл? Как записать информацию в файл? Или как получить информацию из массива $_SESSION?

Если хотите получить ответ на свой вопрос - так надо четко и ясно объяснить, что надо сделать, и что не получается. Такие вопросы (ничего конкретного) обычно остаются без ответа.
 
 Top
alfred
Отправлено: 01 Марта, 2007 - 15:32:50
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2007  
Откуда: Украина, Одесса


Помог: 0 раз(а)




да, это уже понятно....что остаются баз ответа. Просто когда человек видит, что по данному вопросу он может чем-то помочь - уже он конкретизирует задачу...\n\n(Добавление)
а еще понятно , что на форуме все раввно никогда не получишь нужной тебе информации.... у человека, имеющего мало опыта в прогрпммировании, недостаточно велик его словарный запас, что бы конкретно, описать что не работает. т.к. если б он знал свои ошибки - то он бы не просил помощи у других....
 
 Top
evgenijj
Отправлено: 01 Марта, 2007 - 15:46:11
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Так ты расскажешь, в чем проблема - или просто поговорить зашел? Улыбка

P.S. В свое время, когда я первый раз столкнулся с необходимостью написать Интернет-магазин, я нашел бесплатный скрипт магазина Shop-Script FREE, доступный для скачивания на сайте http://www[dot]shop-script[dot]ru/ и внимательно изучил исходники. Нашел ответы на многие вопросы.
 
 Top
alfred
Отправлено: 01 Марта, 2007 - 15:53:44
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2007  
Откуда: Украина, Одесса


Помог: 0 раз(а)




зашла...
проблему не могу найти нужно чтобы кто-то посмотрел код.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.         $idp=$_GET["id"];
  4.         $q=1;
  5.         $totalprice=0;
  6.         include("mylp.php");
  7.         $link=mysql_connect($myhost,$mylogin,$mypwd) or die(mysql_error());
  8.         mysql_select_db("mydb");
  9.         $r=mysql_query("select  name,header,price,imgsrc from products where id={$idp}");
  10.            
  11.                 $cartinfo = array();
  12.         list($name,$header,$price,$imgsrc)=mysql_fetch_row($r);
  13.         $cartinfo["name"]=$name;
  14.         $cartinfo["header"]=$header;
  15.         $cartinfo["price"]=$price;
  16.         $cartinfo["imgsrc"]=$imgsrc;
  17.         $cartinfo["quantity"]=$q;
  18.         $_SESSION["cart"][$idp]=$cartinfo;
  19.  
  20.         header("Location: into_cart.php");
  21.  
  22. ?>
  23.  

в этот файл попадают выбранные пользователем товары... а отсюда в файл ниже
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  while(list($key,$value)=each($_SESSION["cart"]))
  4.  {
  5.           if($value["quantity"]<0){
  6.                  $value["quantity"]=1;
  7.            }
  8.  
  9.         $value["q"] = $_POST["quantity_".$key];
  10.         $totalprice = 0;
  11.         $total = 0;
  12.  
  13.         $name = $value["name"];
  14.         $header = $value["header"];
  15.         $price = $value["price"];
  16.         $imgsrc = $value["imgsrc"];
  17.         $q = $value["q"];
  18.     $_SESSION["cart"][$idp]=$cartinfo;
  19.         $totalprice = $price*$q;
  20.         $total+=$totalprice;
  21.  
  22.     echo "
  23.  

проблема - какой то глюк - вмнсте с товаром отображается пустая строка, кот не удаляется....
посмотрите, може де-то ошибка....
зараннее спасибо!
 
 Top
alfred
Отправлено: 05 Марта, 2007 - 12:46:22
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2007  
Откуда: Украина, Одесса


Помог: 0 раз(а)




подскажите плиз как мне по кнопке "Обновить" изменить вводимое пользователем в текстовое поле число, в данном случае количество товара в корзине:?
я пишу так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $q=$_GET["$q"];
  3.  while(list($key,$value)=each($_SESSION["cart"]))
  4.  {
  5.         $value["quntity"] = $_GET["quantity_".$key];
  6.         $totalprice = 0;
  7.         $total = 0;
  8.         // здесь нужно проверить, верное ли значение ввел пользователь в поле с количеством. Фхтагн!
  9.         //  if($value["quantity"] < 0){
  10.         //         $value["quantity"] = 1;
  11.         //   }
  12. // }
  13.  //while(list($key,$value)=each($_SESSION["cart"])){      //Variable passed to each() is not an array or object
  14.         $name = $value["name"];
  15.         $header = $value["header"];
  16.         $price = $value["price"];
  17.         $imgsrc = $value["imgsrc"];
  18.         $q = $value["quantity"];
  19.     $_SESSION["cart"][$idp]=$cartinfo;
  20.         $totalprice = $price*$q;
  21.         $total+=$totalprice;
  22.     echo "<tr><td align='center'><img src='$imgsrc' width='50' height='50' /></td>
  23.              <td align='left' valign='top' title='names'><b>$name</b><br />$header</td>
  24.              <td title='price' width='15%'>$price<span style='color:#990000;'> y.e.</span></td>
  25.              <td width='15%'><input type='text' value='$q' name='quantity_$key' style='background-color:#333333;color:white' size='3' /></td>
  26.              <td align='center'>$totalprice<span style='color:#990000;'> y.e.</span></td>
  27.              <td align='center'><a href='del_o.php?key=$key'><span style='font-size: 13px;'><b>Удалить</b></span></a></td>
  28.         </tr>
  29.         <tr align='right'><td>&nbsp;</td>
  30.                           <td>&nbsp;</td>
  31.                           <td>&nbsp;</td>
  32.                           <td>&nbsp;</td>
  33.                           <td><input type='submit' value='Обновить'  /></td>
  34.                           <td>&nbsp;</td>
  35.         </tr>";
  36.  }
  37.  
 
 Top
evgenijj
Отправлено: 05 Марта, 2007 - 14:36:36
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Примерно так:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. // $_SESSION["ids"][$i] содержит ID i-го товара в корзине
  5. // $_SESSION["counts"][$i] содержит количество товара в корзине
  6. // $_SESSION["names"][$i] содержит наименование товара в корзине
  7. // $_SESSION["prices"][$i] содержит цену товара в корзине
  8. // $_SESSION["ids"][$i] == 0 означает, что элемент $i пустой
  9.  
  10. if ( isset($_POST["update"]) ) // Обновить содержимое корзины
  11. {
  12.     foreach ($_POST as $key => $value)
  13.     {
  14.         if (strstr($key, "count_"))
  15.         {
  16.             if ($value >= 1)
  17.             {
  18.                 for ($i=0; $i<count($_SESSION["ids"]); $i++)
  19.                 {
  20.                     if ($_SESSION["ids"][$i] == str_replace("count_","",$key))
  21.                     {
  22.                         $_SESSION["counts"][$i] = floor($value);
  23.                         if( !$_SESSION["counts"][$i] ) $_SESSION["counts"][$i] = 0;
  24.                     }
  25.                 }
  26.             }
  27.             else // удаляем товар из корзины, количество которого в корзине - ноль
  28.             {
  29.                 $i=0;
  30.                 while ($_SESSION["ids"][$i] != str_replace("count_","",$key) && $i<count($_SESSION["ids"])) $i++;
  31.                 $_SESSION["ids"][$i] = 0;
  32.                 $_SESSION["counts"][$i] = 0;
  33.             }
  34.         }
  35.     }
  36. }
  37.  
  38. echo "<form name='cart' action='".$_SERVER["PHP_SELF"]."' method='POST'>"
  39. echo "<table>";
  40. echo "<tr><th>ID</th><th>Наименование</th><th>Количество</th><th>Цена</th></tr>";
  41. for ( $i=0; $i < count($_SESSION["ids"]); $i++ )
  42. {
  43.     if ($_SESSION["ids"][$i])
  44.     {
  45.         echo "<tr>";
  46.         echo "<td>".$_SESSION["ids"][$i]."</td>";
  47.         echo "<td>".$_SESSION["names"][$i]."</td>";
  48.         echo "<td><input type='text' value='".$_SESSION["counts"][$i]."' name='count_".$_SESSION["ids"][$i]."' /></td>";
  49.         echo "<td>".$_SESSION["prices"][$i]."</td>";
  50.         echo "</tr>";
  51.     }
  52. }
  53. echo "</table>";
  54. echo "<input type='submit' name='update' value='Обновить' />"
  55. echo "</form>";
  56. ?>
  57.  
 
 Top
alfred
Отправлено: 05 Марта, 2007 - 14:42:36
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2007  
Откуда: Украина, Одесса


Помог: 0 раз(а)




а чтотакое if (strstr($key, "count_")) ?
 
 Top
evgenijj
Отправлено: 05 Марта, 2007 - 14:52:06
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




alfred пишет:
а чтотакое if (strstr($key, "count_")) ?

strstr -- Находит первое вхождение подстроки; в случае успеха возвращает TRUE

У нас в форме для каждой товарной позиции из покупательской корзины определено поле
<input type='text' value='3' name='count_57' />
где 3 - количество товара в корзине
57 - ID этого товара

Ведь если пользователь изменил количество товара в корзине и нажал кнопку обновить - мы пересылаем эти данные на сервер, читаем массив $_POST и обновляем массив $_SESSION. Но из массива $_POST мы отбираем только "наши" значения (содержащие подстроку "count_"), относящиеся к изменению количества товара в корзине.
 
 Top
alfred
Отправлено: 05 Марта, 2007 - 14:57:48
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2007  
Откуда: Украина, Одесса


Помог: 0 раз(а)




посотрите пожалуйста мой код, что-то я не могу разобраться!
Скачать файл: ____________________2_.txt
Скачан раз: 351
 
 Top
evgenijj
Отправлено: 05 Марта, 2007 - 17:10:18
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. // Получаем ID товаров в корзине
  4. $ids = array_keys($_SESSION["cart"])
  5. // Обновляем количество товара в корзине
  6. foreach( $ids as $id )
  7. {
  8.         if ( $_GET["quantity_".$id] > 0 )
  9.                 $_SESSION["cart"][$id]["quantity"] = $_GET["quantity_".$id];
  10.         else
  11.                 unset($_SESSION["cart"][$id]);
  12. }
  13. echo "<form name='cart' action='".$_SERVER["PHP_SELF"]."' method='GET'>";
  14. echo "<table>";
  15. $total = 0;
  16. foreach( $_SESSION["cart"] as $key => $value )
  17. {
  18.         $name = $value["name"];
  19.         $header = $value["header"];
  20.         $price = $value["price"];
  21.         $imgsrc = $value["imgsrc"];
  22.         $quantity = $value["quantity"];
  23.         $totalprice = $price*$quantity;
  24.         $total+=$totalprice;
  25.        echo "<tr><td align='center'><img src='".$imgsrc."' width='50' height='50' /></td>
  26.              <td align='left' valign='top' title='names'><b>".$name."</b><br />".$header."</td>
  27.              <td title='price' width='15%'>".$price."<span style='color:#990000;'> y.e.</span></td>
  28.              <td width='15%'><input type='text' value='".$quantity."' name='quantity_".$key."' style='background-color:#333333;color:white' size='3' /></td>
  29.              <td align='center'>".$totalprice."<span style='color:#990000;'> y.e.</span></td>
  30.              <td align='center'><a href='del_o.php?key=".$key."'><span style='font-size: 13px;'><b>Удалить</b></span></a></td>
  31.         </tr>";
  32. }
  33. echo "</table>";
  34. echo "<input type='submit' name='update' value='Обновить' />";
  35. echo "</form>";
  36. ?>
  37.  
 
 Top
alfred
Отправлено: 06 Марта, 2007 - 10:31:02
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2007  
Откуда: Украина, Одесса


Помог: 0 раз(а)




Ругается на эту строку

foreach( $ids as $id )
parse error, unexpected T_FOREACH
 
 Top
evgenijj
Отправлено: 06 Марта, 2007 - 11:38:11
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




alfred пишет:
Ругается на эту строку

foreach( $ids as $id )
parse error, unexpected T_FOREACH

В предыдущей строке пропустил закрывающую ";"
 
 Top
alfred
Отправлено: 06 Марта, 2007 - 12:10:46
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2007  
Откуда: Украина, Одесса


Помог: 0 раз(а)




Спасабо огромное! Все получилось... только плюется Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource
на эту строку

list($name,$header,$price,$imgsrc)=mysql_fetch_row($r);
как попросить пхп не ругаться?

PS мне просто надоело искать ошибки... вроде все работает... только ругается!
Еще интересно, почему ето все на сервере не работает!!!!
корзина пустая.... подскажите, может чего-то я не знаю
 
 Top
evgenijj
Отправлено: 06 Марта, 2007 - 13:18:34
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




alfred пишет:
Спасабо огромное! Все получилось... только плюется Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource
на эту строку

list($name,$header,$price,$imgsrc)=mysql_fetch_row($r);
как попросить пхп не ругаться?

PS мне просто надоело искать ошибки... вроде все работает... только ругается!
Еще интересно, почему ето все на сервере не работает!!!!
корзина пустая.... подскажите, может чего-то я не знаю

Запрос к БД возвращает некорректный результат:
$r=mysql_query("select name,header,price,imgsrc from products where id={$idp}");

Надо просматривать результаты запроса - он вообще что-нибудь возвращает?

Кстати, а зачем там фигурные скобки - какую функциональную нагрузку они несут?

$r=mysql_query("select name,header,price,imgsrc from products where id=".$idp);


P.S. Переменная $idp = $_GET["id"] А $_GET["id"] всегда определена, она не равна пустой строке? Это точно число, а не строка?
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB