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]   

> Описание: Есть проблемы
lawer85
Отправлено: 09 Января, 2014 - 20:38:16
Post Id


Частый гость


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


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




Значит есть страница товара

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         function P($result_set) {
  3.                 while (($row = $result_set->fetch_assoc()) != false) {
  4.                         echo "         
  5.                         <table border='1'>
  6.                                                 <tr align='center'>
  7.                                                         <td width='10'>
  8.                                                                 <a href=../zakaz.php?product=".$row[id].">Заказать</a>
  9.                                                         </td>
  10.                                                         <td width='20'>
  11.                                                                 ".$row[id]."
  12.                                                         </td>
  13.                                                         <td width='200'>
  14.                                                                 ".$row["nazvanie tovara"]."
  15.                                                         </td>
  16.                                                         <td width='300'>
  17.                                                                 ".$row["kratkoe opisanie tovara"]."
  18.                                                         </td>
  19.                                                         <td width='600'>
  20.                                                                 ".$row["polnoe opisanie tovara"]."
  21.                                                         </td>
  22.                                                         <td width='20'>
  23.                                                                 ".$row["skolko kupili"]."
  24.                                                         </td>
  25.                                                 </tr>
  26.                                 </table>";
  27.                 }
  28.         }
  29.  
  30.         $mysqli = new mysqli("localhost", "root", "", "bd");
  31.         $mysqli->query("SET NAMES 'utf8'");
  32.         $result_set = $mysqli->query("SELECT * FROM `tovar`");
  33.         P($result_set);
  34.         $mysqli->close();
  35. ?>


Вот страница с формой заказа

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.  
  4. if (isset($_POST["zakaz"])) {
  5.        
  6.         if ($_POST["fio"] == "") echo "<span style='color: red;'>Вы не ввели ФИО</span>";
  7.         elseif ($_POST["mail"] == "") echo "<span style='color: red;'>Вы не ввели e-mail</span>";
  8.         else
  9.         $mysqli = new mysqli("localhost", "root", "", "bd");
  10.         $mysqli->query("SET NAMES 'utf8'");
  11.         $mysqli->query("INSERT INTO `zakaz` (`id tovara`, `name`, `e-mail`, `comment`, `data zakaza`) VALUES ('".$_GET["product"]."', '".$_POST["fio"]."', '".$_POST["mail"]."', '".$_POST["comment"]."','".time()."')");
  12.         $mysqli->close();
  13.  
  14. }
  15.  
  16.  
  17. ?>
  18.  
  19. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  20. <html xmlns="http://www.w3.org/1999/xhtml">
  21. <head>
  22.         <title>Оформление заказа</title>
  23. </head>
  24. <body>
  25.         <form name="myform" action="zakaz.php" method="post">
  26.                 <table>
  27.                         <tr>
  28.                                 <td colspan = 2><h1>Заполните форму заказа</h1></td>
  29.                         </tr>
  30.                         <tr>
  31.                                 <td>ФИО:</td>
  32.                                 <td>
  33.                                         <input type="text" name="fio" />
  34.                                 </td>
  35.                         </tr>  
  36.                         <tr>
  37.                                 <td>e-mail:</td>
  38.                                 <td>
  39.                                         <input type="text" name="mail" />
  40.                                 </td>
  41.                         </tr>
  42.                         <tr>
  43.                                 <td>Комментарий к заказу:</td>
  44.                                 <td>
  45.                                         <input type="text" name="comment" />
  46.                                 </td>
  47.                         </tr>
  48.                         <tr>
  49.                                 <td>
  50.                                         <input type="submit" value="Отправить" name="zakaz" />
  51.                                 </td>
  52.                         </tr>                          
  53.                 </table>
  54.         </form>
  55. </body>
  56. </html>
  57.  


Проблема в том, что мне надо чтобы id tovara автоматом подставлялось в запрос к БД. Пробовал через ссылку с анкором ЗАКАЗАТЬ передать GET параметр и потом просто записать от туда значение в запрос, но не получается, вместо нужного подставляется 0. Я так понимаю, что при отправке формы параметр GET пропадает. Подскажите как решить эту проблему?
 
 Top
caballero
Отправлено: 09 Января, 2014 - 20:57:33
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




ну так форма методом post отправляется
откуда там get

используй $_REQUEST чтобы не путаться


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
lawer85
Отправлено: 09 Января, 2014 - 21:07:07
Post Id


Частый гость


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


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




caballero пишет:
ну так форма методом post отправляется
откуда там get

используй $_REQUEST чтобы не путаться


сделал так

PHP:
скопировать код в буфер обмена
  1. $mysqli->query("INSERT INTO `zakaz` (`id tovara`, `name`, `e-mail`, `comment`, `data zakaza`) VALUES ('".$_REQUEST["product"]."', '".$_POST["fio"]."', '".$_POST["mail"]."', '".$_POST["comment"]."','".time()."')");



Результат тот же.
 
 Top
peters
Отправлено: 09 Января, 2014 - 22:46:53
Post Id


Гость


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


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




Можно так:

поменять
CODE (html):
скопировать код в буфер обмена
  1. <form name="myform" action="zakaz.php" method="post">

на
CODE (html):
скопировать код в буфер обмена
  1. <form name="myform" action="zakaz.php?product=<?=$_GET["product"];?>" method="post">



либо добавить внутри формы:
CODE (html):
скопировать код в буфер обмена
  1. <input type="hidden" name="product" value="<?=$_GET["product"];?>" />

и поменять в запросе $_GET["product"] на POST
 
 Top
lawer85
Отправлено: 10 Января, 2014 - 00:35:23
Post Id


Частый гость


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


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




peters пишет:
Можно так:

поменять
CODE (html):
скопировать код в буфер обмена
  1. <form name="myform" action="zakaz.php" method="post">

на
CODE (html):
скопировать код в буфер обмена
  1. <form name="myform" action="zakaz.php?product=<?=$_GET["product"];?>" method="post">



либо добавить внутри формы:
CODE (html):
скопировать код в буфер обмена
  1. <input type="hidden" name="product" value="<?=$_GET["product"];?>" />

и поменять в запросе $_GET["product"] на POST

Оба варианта не подходят.
 
 Top
peters
Отправлено: 10 Января, 2014 - 11:14:45
Post Id


Гость


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


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




CODE (html):
скопировать код в буфер обмена
  1. <form name="myform" action="zakaz.php?product=<?PHP echo $_GET["product"]; ?>" method="post">


а так?

если нет, напишите исходник, который выдает браузер при переходе с 1-й страницы на страницу заказа
 
 Top
lawer85
Отправлено: 10 Января, 2014 - 20:42:51
Post Id


Частый гость


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


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




peters пишет:
CODE (html):
скопировать код в буфер обмена
  1. <form name="myform" action="zakaz.php?product=<?PHP echo $_GET["product"]; ?>" method="post">


а так?

если нет, напишите исходник, который выдает браузер при переходе с 1-й страницы на страницу заказа


Да получилось спасибо!
(Добавление)
А можно ли туже задачу решить с помощью сессии и как?
 
 Top
peters
Отправлено: 11 Января, 2014 - 13:50:25
Post Id


Гость


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


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




Наверное можно, но зачем??? В сессии хранятся переменные, Вы хотите там хранить код товара? не понимаю зачем... если бы у Вас было предусмотрено заказывать несколько товаров в одном заказе (корзина без регистрации клиента), то можно было бы хранить в сессии (или в куки) содержание корзины. А для одного товара не за чем...
 
 Top
lawer85
Отправлено: 11 Января, 2014 - 21:27:55
Post Id


Частый гость


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


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




peters пишет:
Наверное можно, но зачем??? В сессии хранятся переменные, Вы хотите там хранить код товара? не понимаю зачем... если бы у Вас было предусмотрено заказывать несколько товаров в одном заказе (корзина без регистрации клиента), то можно было бы хранить в сессии (или в куки) содержание корзины. А для одного товара не за чем...


Спросил на будущее Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB