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]   

> Без описания
Craftsman1
Отправлено: 21 Мая, 2016 - 17:54:54
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2016  


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




Здравствуйте. Подскажите как поправить этот код:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $host="localhost";
  4. $user="root";
  5. $pass="123";
  6. $db_name="test";
  7. $Tema_rassilki_id="100";
  8. $start_pp=$_SESSION['start_pp'] = '1';
  9. $link=mysql_connect($host,$user,$pass);
  10. mysql_select_db($db_name,$link);       
  11. ?>
  12. <!-- Берем данные из базы -->
  13. <?PHP
  14.                 //Получаем email id из базы:   
  15.         $query = ('SELECT allbase.ID,allbase.email FROM `allbase` WHERE ID='.$start_pp.'');
  16.             $sql = mysql_query($query) or die(mysql_error());
  17.             while ($res = mysql_fetch_array($sql)) {
  18.             $IDemail=$res['ID'];
  19.             }
  20. ?>
  21.  
  22. <?PHP
  23. //Получаем данные из формы и отправляем в базу 
  24. //Если переменная Name передана
  25. if (isset($_POST["Name"])) {
  26.         ++$start_pp; //увеличиваем счетчик +1
  27.                
  28.     //Вставляем данные, подставляя их в запрос
  29.     $sql = mysql_query("INSERT INTO `rassilki_rezults` (`Tema_rassilki_id`,`Email_ID`,`Status`)
  30.                        VALUES ('".$Tema_rassilki_id."','".$IDemail."','".$_POST['Name']."')");
  31.         //Если вставка прошла успешно
  32.     if ($sql) {
  33.         echo "<p>Данные успешно добавлены в таблицу. </p>";
  34.     } else {
  35.         echo "<p>Произошла ошибка.</p>";
  36.                
  37.     }
  38. }
  39.  
  40. //Получаем email из базы:
  41.  $query = ('SELECT allbase.ID,allbase.email FROM `allbase` WHERE ID='.$start_pp.'');
  42.             $sql = mysql_query($query) or die(mysql_error());
  43.             while ($res = mysql_fetch_array($sql)) {
  44.                         $Email=$res['email'];
  45.             }
  46. ?>
  47.  
  48.  
  49. <div id="email">
  50. <?PHP
  51. echo $Email;
  52. ?>
  53.  
  54. </div>
  55.  
  56. <!--- Форма через которую передаем -->
  57. <table>
  58. <form action="" method="post">
  59.     <tr>
  60.         <td>Данные:</td>
  61.         <td><input type="text" name="Name"></td>
  62.     </tr>
  63.     <tr>
  64.         <td colspan="2"><input type="submit" value="OK"></td>
  65.     </tr>
  66. </form>
  67. </table>
  68.  



Так чтобы при нажатии на кнопку в форме переменная $start_pp увеличивалась на +1.
Никак не пойму куда добавить ++$start_pp;.
Если поставить выше sql запроса из базы не работает $IDemail, если ниже не работает сам счетчик.

Сейчас при нажатии на кнопку в форме прибавляется +1, но если нажимать дальше почему-то не работает.
 
 Top
Viper
Отправлено: 21 Мая, 2016 - 18:07:44
Post Id



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


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


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




Вы начальное значение берете из $_SESSION['start_pp'], далее увеличиваете, но не сохраняете после увеличения. Т.е. в сессии у вас значение не поменялось.

После ++$start_pp;
PHP:
скопировать код в буфер обмена
  1. $_SESSION['start_pp'] = $start_pp;


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Craftsman1
Отправлено: 21 Мая, 2016 - 18:32:00
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2016  


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




Viper пишет:
Вы начальное значение берете из $_SESSION['start_pp'], далее увеличиваете, но не сохраняете после увеличения. Т.е. в сессии у вас значение не поменялось.


Спасибо за ответ. Добавил, но не помогло. Может быть из-за того что ++$start_pp; находится ниже WHERE ID='.$start_pp.' ?

Почему-то при нажатии кнопки один раз срабатывает все как нужно, но второй раз уже не хочет. Возможно нужно обнулять как-то форму после отправки данных в базу?
 
 Top
Viper
Отправлено: 21 Мая, 2016 - 20:20:59
Post Id



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


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


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




Возможно


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Craftsman1
Отправлено: 21 Мая, 2016 - 20:34:15
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2016  


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




Viper пишет:
Возможно


Сделал вот так:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $host="localhost";
  3. $user="root";
  4. $pass="1234";
  5. $db_name="test";
  6. $Tema_rassilki_id="100";
  7. $link=mysql_connect($host,$user,$pass);
  8. mysql_select_db($db_name,$link);
  9. if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;      
  10. ?>
  11. <!-- Берем данные из базы -->
  12. <?PHP
  13.                 //Получаем email id из базы:   
  14.         $query = ('SELECT allbase.ID FROM `allbase` WHERE ID='.$_SESSION['counter'].'');
  15.             $sql = mysql_query($query) or die(mysql_error());
  16.             while ($res = mysql_fetch_array($sql)) {
  17.             $IDemail=$res['ID'];
  18.                         echo $IDemail;
  19.             }
  20. ?>
  21.  
  22. <?PHP
  23. //Получаем данные из формы и отправляем в базу 
  24. //Если переменная Name передана
  25. if (isset($_POST["Name"])) {
  26.     //Вставляем данные, подставляя их в запрос
  27.     $sql = mysql_query("INSERT INTO `rassilki_rezults` (`Tema_rassilki_id`,`Email_ID`,`Status`)
  28.                        VALUES ('".$Tema_rassilki_id."','".$IDemail."','".$_POST['Name']."')");
  29.        
  30.         $_SERVER['PHP_SELF'];
  31.         $_SESSION['counter']++;
  32.         //Если вставка прошла успешно
  33.     if ($sql) {
  34.         echo "<p>Данные успешно добавлены в таблицу. </p>";
  35.     } else {
  36.         echo "<p>Произошла ошибка.</p>";
  37.                
  38.     }
  39. }
  40.  
  41. //Получаем email из базы       
  42. $query = ('SELECT allbase.email FROM `allbase` WHERE ID='.$_SESSION['counter'].'');
  43.                         $sql = mysql_query($query) or die(mysql_error());
  44.                         while ($res = mysql_fetch_array($sql)) {
  45.                 $Email=$res['email'];
  46.                         echo $Email;
  47.                         }
  48.                        
  49. ?>
  50.  
  51.  
  52. <div id="email">
  53. <?PHP
  54. echo $IDemail;
  55. echo $_SESSION['counter'];
  56. ?>
  57.  
  58.  
  59.  
  60. </div>
  61.  
  62.  
  63. <!--- Форма через которую передаем -->
  64. <table>
  65. <form action="" method="post">
  66.     <tr>
  67.         <td>Данные:</td>
  68.         <td><input type="text" name="Name"></td>
  69.     </tr>
  70.     <tr>
  71.         <td colspan="2"><input type="submit" value="OK"></td>
  72.     </tr>
  73. </form>
  74. </table>
  75.  


Теперь при открытии страницы ругается на переменную IDemail. Notice: Undefined variable: IDemail on line 55. Что с ней не так?
(Добавление)
Все разобрался. Надо было $_SESSION['counter']=0; поменять на $_SESSION['counter']=0; т.к. в базе поля начинались с 1, а не с 0. Из-за этого sql возвращал пустой запрос.
 
 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