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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Элен
Отправлено: 21 Ноября, 2009 - 12:16:43
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Нояб. 2009  


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

[+]


создание корзины в интернет-магазине на php у каждого товара есть свой id... подскажите как делается, а то все перепробовала и не получается, он не понимает что надо все отправить в корзину
вот код который выводит товар на страницу, у каждого товара есть checkbox вот как сделать чтоб он данные по товару который отмечен добавил в таблицу

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $result2 = mysql_query("SELECT id, kartinka,towar,opisanie,kol,cena FROM towar WHERE pcat='$pcat'",$db);
  3. if (isset($kartinka) && isset($towar) && isset($opisanie) && isset($kol) && isset($cena))
  4. {
  5. echo "<p>Запрос на выборку данных из базы не прошел. <br> <strong>Код ошибки:</strong></p>";
  6. }
  7. if (mysql_num_rows($result2) > 0)
  8. {
  9. $myrow2 = mysql_fetch_array($result2);
  10. do
  11. {
  12. printf("<table class='tabl1'>
  13. <tr>
  14. <td><input type='checkbox' name='id' value='%s'></td>
  15. <td width='150' class='ramka'><p>%s</p><br><p>%s</p></td>
  16. <td width='300' class='ramka'><p>%s</p></td>
  17. <td width='80' class='ramka'><p><strong>Ост.:</strong><br><br>%s шт.</p></td>
  18. <td width='90' class='ramka'><p><strong>Цена:</strong><br><br>%s руб.</p></td>
  19.  
  20. </p></td>
  21. </tr>
  22. </table>", $myrow2["id"],$myrow2["kartinka"],$myrow2["towar"],$myrow2["opisanie"],$myrow2["kol"],$myrow2["cena"]);
  23.  
  24. }
  25. while ($myrow2 = mysql_fetch_array($result2));
  26.  

он не понимает что надо кроме id в базу добавить и данные еще по товару


Отредактировано модератором: Champion, 21 Ноября, 2009 - 14:37:08
 
 Top
OverNik
Отправлено: 21 Ноября, 2009 - 12:27:53
Post Id



Частый гость


Покинул форум
Сообщений всего: 182
Дата рег-ции: Янв. 2008  


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




Сори за офтоп, ты случайно не смотрел видео учебник PHP Попова? Улыбка
Просто если тебе нужно вывести информацию, сделай это при помощи ECHO, PRINTF служит совсем для другого. да и удобней.
 
 Top
Элен
Отправлено: 21 Ноября, 2009 - 12:41:52
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Нояб. 2009  


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

[+]


смотрела, но мне же надо вывести много товара как я это сделаю с помощью ECHO, PRINTF
 
 Top
JROUD
Отправлено: 21 Ноября, 2009 - 12:50:49
Post Id


Гость


Покинул форум
Сообщений всего: 78
Дата рег-ции: Нояб. 2009  


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




Элен, тут не понятное условие:

И равно, это "==", а "=" это присвоить значение.
 
 Top
Мелкий Супермодератор
Отправлено: 21 Ноября, 2009 - 12:52:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Да хоть так. И вообще, корректнее будет так написать:
PHP:
скопировать код в буфер обмена
  1.  
  2. echo "<table class='tabl1'>";
  3. while ($myrow2 = mysql_fetch_array($result2))
  4. {
  5. echo "<tr>
  6. <td><input type='checkbox' name='id' value='".$myrow2["id"]."'></td>
  7. <td width='150' class='ramka'><p>".$myrow2["kartinka"];."</p><br><p>".$myrow2["towar"]."</p></td>
  8. <td width='300' class='ramka'><p>".$myrow2["opisanie"]."</p></td>
  9. <td width='80' class='ramka'><p><strong>Ост.:</strong><br><br>".$myrow2["kol"]." шт.</p></td>
  10. <td width='90' class='ramka'><p><strong>Цена:</strong><br><br>".$myrow2["cena"]." руб.</p></td>
  11. </tr>";
  12. }
  13. echo "</table>"

вместо if (mysql_num_rows($result2) > 0) и далее по тексту.

PHP:
скопировать код в буфер обмена
  1. if (isset($kartinka) && isset($towar) && isset($opisanie) && isset($kol) && isset($cena))

Не подскажете ещё, что общего между этим условием и невозможностью выбрать данные из БД?

По основному вопросу - где сама форма? С чего вы взяли, что в таблицу надо отправлять всё? Обычно отправляют только id, и по нему при надобности получают всю остальную информацию о цене.

JROUD, так в том и действие, присвоить, и только потом проверить само значение, не равно ли оно false.

(Отредактировано автором: 21 Ноября, 2009 - 12:54:10)



-----
PostgreSQL DBA
 
 Top
JROUD
Отправлено: 21 Ноября, 2009 - 12:58:46
Post Id


Гость


Покинул форум
Сообщений всего: 78
Дата рег-ции: Нояб. 2009  


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




Цитата:
JROUD, так в том и действие, присвоить, и только потом проверить само значение, не равно ли оно false.

Это понятно, НО, где проверка? В чём заключается условие?
 
 Top
Мелкий Супермодератор
Отправлено: 21 Ноября, 2009 - 13:00:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Стандартная проверка true-false переменной.
Не встречался разве с условиями видами
if ($param) {//этот код сработает, если $param при приведении типа не false
}


-----
PostgreSQL DBA
 
 Top
OverNik
Отправлено: 21 Ноября, 2009 - 13:50:41
Post Id



Частый гость


Покинул форум
Сообщений всего: 182
Дата рег-ции: Янв. 2008  


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




Элен пишет:
смотрела, но мне же надо вывести много товара как я это сделаю с помощью ECHO, PRINTF

так же как и ранше:
PHP:
скопировать код в буфер обмена
  1. echo "Товар".$tovar['name']."Цена:".$tovar['price'].";
 
 Top
Champion Супермодератор
Отправлено: 21 Ноября, 2009 - 14:35:35
Post Id



Активный участник


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


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




JROUD, который раз уже отвечаешь не подумав. Операции присваивания возвращают значение - результат присваивания. И его можно использовать в логических операциях.

По поводу вывода: да, echo предпочтительнее.

Элен, что ты написла, я пока не понял. Сейчас еще разок прочту)
(Добавление)
Элен пишет:
кроме id в базу добавить и данные еще по товару
Добавить? Я не вижу запросов INSERT. Условие с кучей isset я тоже не понял.
Вывод всего того чуда лучше сделать как показал Мелкий. Подумай, как отработает твой код, если запрос не вернет результата.
OverNik, я тоже не смотрел видео учебник PHP Попова, и даже не знаю кто это такой - что из этого? И вообще, изучать php по видеоучебникам - как-то не очень.
Элен пишет:
у каждого товара есть checkbox вот как сделать чтоб он данные по товару который отмечен добавил в таблицу
Принять данные чекбоксов из $_POST и сделать insert.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB