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 :: покупательская корзина [2]
Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2007 Откуда: Украина, Одесса
Помог: 0 раз(а)
почему некоректный? он возвращает имя, заголовок, цену выбранного товара. ну да, это число... наверное... а преобразовать строку в число можно $idp=(int)$_GET["id"] ? может есть какая-то другая функция? а то эта вылазит боком...
evgenijj
Отправлено: 06 Марта, 2007 - 14:48:06
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006 Откуда: Москва
Помог: 10 раз(а)
alfred пишет:
почему некоректный?
Потому что
Цитата:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource
Это ты считаешь, что запрос возвращает имя, заголовок, цену выбранного товара. А на самом деле этот запрос просто не выполняется. Поэтому результат запроса - переменная $r - просто не определена (или равна FALSE - точно не знаю, надо посмотреть в справочнике функций). И попытка обработать этот результат с помощью функции mysql_fetch_row( $r ) вызывает предупреждение (warning): переданный аргумент НЕ ЯВЛЯЕТСЯ корректным результатом запроса к БД MySQL
Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2007 Откуда: Украина, Одесса
Помог: 0 раз(а)
но ведь запрос написа правильно. может дело в переменной idp?
evgenijj
Отправлено: 06 Марта, 2007 - 16:02:06
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006 Откуда: Москва
Помог: 10 раз(а)
alfred пишет:
но ведь запрос написа правильно. может дело в переменной idp?
Запрос
$r=mysql_query("select name,header,price,imgsrc from products where id=".$idp);
написан верно. Дело именно в переменной $idp. Я поэтому и спрашивал - всегда ли она определена, не равна ли пустой строке и т.п.
Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2007 Откуда: Украина, Одесса
Помог: 0 раз(а)
я не сильна в пхп.... я не совсем понимаю...
переменную idp я получаю методом гет в начале скрипта...
evgenijj
Отправлено: 06 Марта, 2007 - 17:12:55
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006 Откуда: Москва
Помог: 10 раз(а)
alfred пишет:
я не сильна в пхп.... я не совсем понимаю...
переменную idp я получаю методом гет в начале скрипта...
Тяжело с тобой. Раз у нас есть Интернет-магазин, логично предположить, что есть и какой-то каталог продукции для продажи. Ссылка "Добавить в корзину" вероятнее всего расположена на странице "Карточка товара".
Эта ссылка имеет примерно такой вид <a href="basket.php?action=addtocart&id_prd=5">Добавить в корзину</a> При нажатии на ссылку происходит переход на страницу "Корзина". При формировании этой страницы мы должны обновить и массив $_SESSION. Возможны и варианты - мы перезагружаем страницу "Карточка товара", но не забываем опять-таки обновить массив $_SESSION.
Главное, что ссылка содержит переменную id_prd=5, передаваемую методом $_GET.
Это может быть и форма на странице "Карточка товара":
Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2007 Откуда: Украина, Одесса
Помог: 0 раз(а)
[quote=evgenijj]
alfred пишет:
Тяжело с тобой.
не правда - я просто пытаюсь разобраться! и у меня почти получилось. только теперь на хосте это все дело(мой скрипт) не работает.... посмотрите djbeat.com.ua
evgenijj
Отправлено: 06 Марта, 2007 - 20:03:28
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006 Откуда: Москва
Помог: 10 раз(а)
alfred пишет:
<?php
$idp=$_GET["id"];
$q=1;
$totalprice=0;
include("mylp.php");
$link=mysql_connect($myhost,$mylogin,$mypwd) or die(mysql_error());
mysql_select_db("mydb");
$r=mysql_query("select name,header,price,imgsrc from products where id={$idp}");
?>
в этот файл попадают выбранные пользователем товары... а отсюда в файл ниже
<?php while(list($key,$value)=each($_SESSION["cart"]))
{
if($value["quantity"]<0){
$value["quantity"]=1;
}
Понимаешь, в чем проблема? Я зашел на твой сайт, и увидел, что про нажатии на ссылку "Заказать" происходит переход на строницу http://djbeat.com.ua/into_cart.php?id=30. Тут все понятно. Но что это за кусок кода?!
Цитата:
$idp=$_GET["id"];
$q=1;
$totalprice=0;
include("mylp.php");
$link=mysql_connect($myhost,$mylogin,$mypwd) or die(mysql_error());
mysql_select_db("mydb");
$r=mysql_query("select name,header,price,imgsrc from products where id={$idp}");
Зачем идет преренаправление header("Location: into_cart.php") ?!
Файл into_cart.php обращается к себе? И что означает загадочная фраза "в этот файл попадают выбранные пользователем товары... а отсюда в файл ниже" ? Так это один файл или два?
Ты произвольно "выдираешь" куски кода из разных файлов - и просишь тебе помочь. Хуже того - ты еще пытаешься эти куски кода комментировать... Я бы и рад тебе помочь - да не могу. Исходников нет - только отдельные кусочки (которые, как ты считаешь, работают неправильно).
Подводя итог. Нужен исходник (ПОЛНОСТЬЮ, а не то, что ты считаешь достаточным) скрипта, который отвечает за вывод товарных позиций, и исходник скрипта корзины - опять же полностью. Тогда можно будет сказать, что и где не так.
Покинул форум
Сообщений всего: 48
Дата рег-ции: Февр. 2007 Откуда: Украина, Одесса
Помог: 0 раз(а)
ссори, я просто переделала из двух файлов в один... очень странные вещи происходят% код корзины не работаетв в Explorer и Mozilla, а в Opera - работает....
оч странно...
Покинул форум
Сообщений всего: 1
Дата рег-ции: Июль 2008
Помог: 0 раз(а)
Добрый день!
Я дико извиняюсь что поднимаю старую тему. Иду по этим же стопам, пытаюсь написать простенькую реализацию магазина.
Суть такова: есть страничка с товарами ввиде таблицы:
название, цена,ссылка с надписью в "корзину"
Данные беру из бд Product
при выполнени этого кода отображается табличка со списком товаров, при нажатии на "в корзину" происходит отображение файла into_cart. т.е видно название выбранного товара, его цена, тектбокс для ввода количества(по умолчанию 1). при попытке ввести новое количество и нажать на кнопку обновить получаю ошибку:
Цитата:
Notice: Undefined variable: _SESSION in z:\home\localhost\www\nat\html\into_cart.php on line 27
[ убрать подсказку | никогда больше не показывать ]
Это предупреждение, вероятнее всего, возникает вследствие высокого уровня контроля ошибок в PHP, по умолчанию установленного в Денвере (E_ALL). Такой режим вывода ошибок является рекомендуемым и сильно помогает при отладке скриптов. Однако множество готовых скриптов требуют более низкого уровня ошибок.
Вы можете установить более слабый контроль ошибок одним из следующих способов:
* Впишите в скрипты строчку:
Error_Reporting(E_ALL & ~E_NOTICE);
Этот способ особенно удобен, если в скрипте есть один файл (конфигурационный), который подключается всеми остальными.
* Рекомендуемый способ. Создайте в директории со скриптом файл .htaccess следующего содержания:
php_value error_reporting 7
* Исправьте в /usr/local/php/php.ini значение error_reporting на E_ALL & ~E_NOTICE. Этот способ не является рекомендуемым и может привести к серьезным неудобствам при отладке!
[Денвер: показать возможную причину ошибки]
Warning: array_keys(): The first argument should be an array in z:\home\localhost\www\nat\html\into_cart.php on line 27
Warning: Invalid argument supplied for foreach() in z:\home\localhost\www\nat\html\into_cart.php on line 28
Warning: Invalid argument supplied for foreach() in z:\home\localhost\www\nat\html\into_cart.php on line 43
Itogo: 0 y.e
если прописать вначале
session_start();
то при нажатии "в корзину"
Цитата:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at z:\home\localhost\www\nat\html\into_cart.php:1) in z:\home\localhost\www\nat\html\into_cart.php on line 3
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at z:\home\localhost\www\nat\html\into_cart.php:1) in z:\home\localhost\www\nat\html\into_cart.php on line 3
а при нажатии "обновить"
Цитата:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at z:\home\localhost\www\nat\html\into_cart.php:1) in z:\home\localhost\www\nat\html\into_cart.php on line 3
Notice: Undefined index: quantity_1 in z:\home\localhost\www\nat\html\into_cart.php on line 30
[ убрать подсказку | никогда больше не показывать ]
Это предупреждение, вероятнее всего, возникает вследствие высокого уровня контроля ошибок в PHP, по умолчанию установленного в Денвере (E_ALL). Такой режим вывода ошибок является рекомендуемым и сильно помогает при отладке скриптов. Однако множество готовых скриптов требуют более низкого уровня ошибок.
Вы можете установить более слабый контроль ошибок одним из следующих способов:
* Впишите в скрипты строчку:
Error_Reporting(E_ALL & ~E_NOTICE);
Этот способ особенно удобен, если в скрипте есть один файл (конфигурационный), который подключается всеми остальными.
* Рекомендуемый способ. Создайте в директории со скриптом файл .htaccess следующего содержания:
php_value error_reporting 7
* Исправьте в /usr/local/php/php.ini значение error_reporting на E_ALL & ~E_NOTICE. Этот способ не является рекомендуемым и может привести к серьезным неудобствам при отладке!
Itogo: 0 y.e
уже второй день ламаю голову но немогу понять, как мне сделать чтоб товары добавлялись в корзину, чтоб можно было вернутся к товарам и продолжить выбор, как сделать чтоб товар всетаки множился, сумировался...
несудите меня строго,я немогу понять как это все работает...
EuGen
Отправлено: 28 Июля, 2008 - 09:47:58
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.