Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Как увеличить счетчик по нажатию кнопки?
Craftsman1  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42984
На форуме: 6 месяцев, 18 дней
Карма:




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


<?PHP
$host="localhost";
$user="root";
$pass="123";
$db_name="test";
$Tema_rassilki_id="100";
session_start();
$start_pp=$_SESSION['start_pp'] = '1';
$link=mysql_connect($host,$user,$pass);
mysql_select_db($db_name,$link);
?>
<!-- Берем данные из базы -->
<?PHP
//Получаем email id из базы:
$query = ('SELECT allbase.ID,allbase.email FROM `allbase` WHERE ID='.$start_pp.'');
$sql = mysql_query($query) or die(mysql_error());
while ($res = mysql_fetch_array($sql)) {
$IDemail=$res['ID'];
}
?>

<?
PHP
//Получаем данные из формы и отправляем в базу
//Если переменная Name передана

if (isset($_POST["Name"])) {
++$start_pp; //увеличиваем счетчик +1

//Вставляем данные, подставляя их в запрос

$sql = mysql_query("INSERT INTO `rassilki_rezults` (`Tema_rassilki_id`,`Email_ID`,`Status`)
VALUES ('"
.$Tema_rassilki_id."','".$IDemail."','".$_POST['Name']."')");
//Если вставка прошла успешно
if ($sql) {
echo "<p>Данные успешно добавлены в таблицу. </p>";
} else {
echo "<p>Произошла ошибка.</p>";

}
}


//Получаем email из базы:
$query = ('SELECT allbase.ID,allbase.email FROM `allbase` WHERE ID='.$start_pp.'');
$sql = mysql_query($query) or die(mysql_error());
while ($res = mysql_fetch_array($sql)) {
$Email=$res['email'];
}
?>


<div id="email">
<?PHP
echo $Email;
?>

</div>

<!---
Форма через которую передаем -->
<
table>
<
form action="" method="post">
<
tr>
<
td>Данные:</td>
<
td><input type="text" name="Name"></td>
</
tr>
<
tr>
<
td colspan="2"><input type="submit" value="OK"></td>
</
tr>
</
form>
</
table>



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

Сейчас при нажатии на кнопку в форме прибавляется +1, но если нажимать дальше почему-то не работает.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 720
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 14 дней
Карма: 21




Вот Вам код

<?php
session_start();
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз. ";
echo '<br><a href="'.$_SERVER['PHP_SELF'].'">обновить</a>';
?>

взят отсюда, там еще много интересного! Вам остается, только расставить строчки как нужно!


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1357
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 11 дней
Карма: 77




Craftsman1
я сколько не смотрел - не вижу смысла в этом коде, и не догоняю зачем все это.
Может ты напишешь какая стоит задача ?

Могу предположить, что тебе нужна следующая почта по списку (из базы).

Это сообщение отредактировал Kusss - 21.05.2016 - 19:18
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Craftsman1  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42984
На форуме: 6 месяцев, 18 дней
Карма:




Цитата (Kusss @ 21.05.2016 - 19:16)
Craftsman1
я сколько не смотрел - не вижу смысла в этом коде, и не догоняю зачем все это.
Может ты напишешь какая стоит задача ?

Могу предположить, что тебе нужна следующая почта по списку (из базы).

Цитата
я сколько не смотрел - не вижу смысла в этом коде, и не догоняю зачем все это.
Может ты напишешь какая стоит задача ?

Могу предположить, что тебе нужна следующая почта по списку.


У меня достаточно простая задача:

Есть Таблица 1 в которой есть Idemail и email.
Мне нужно вывести email на станицу, написать к нему какой-то текст (например Рабочий) и сохранить Idemail и текст который ввел в форме в др Таблицу 2.

Это все нужно проделать с каждый email в Таблице 1.

Для этого я хотел сделать следующее:
1. Вывожу из Таблицы 1 email
2. В поле формы ввожу свой текст.
3. При нажатии кнопки в форме: (1. Сохраняется текст из формы в Таблицу 2, Сохраняется Idemail в Таблицу 2, и выводится следующий email из базы(Таблицы 1).

Все сделал кроме вывода следующего email при нажатии кнопки. Никак не пойму как это сделать.

Это сообщение отредактировал Craftsman1 - 21.05.2016 - 19:26
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Craftsman1  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42984
На форуме: 6 месяцев, 18 дней
Карма:




Цитата (arbuzmaster @ 21.05.2016 - 19:06)
Вот Вам код

<?php
session_start();
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз. ";
echo '<br><a href="'.$_SERVER['PHP_SELF'].'">обновить</a>';
?>

взят отсюда, там еще много интересного! Вам остается, только расставить строчки как нужно!



Спасибо за ссылку. Вроде почти разобрался, но почему-то появляется ошибка: Notice: Undefined variable: IDemail on line 55


<?php
$host="localhost";
$user="root";
$pass="123";
$db_name="test";
$Tema_rassilki_id="100";
$link=mysql_connect($host,$user,$pass);
mysql_select_db($db_name,$link);
session_start();
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
?>
<!-- Берем данные из базы -->
<?php
//Получаем email id из базы:
$query = ('SELECT allbase.ID FROM `allbase` WHERE ID='.$_SESSION['counter'].'');
$sql = mysql_query($query) or die(mysql_error());
while ($res = mysql_fetch_array($sql)) {
$IDemail=$res['ID'];
echo $IDemail;
}
?>

<?php

//Получаем данные из формы и отправляем в базу
//Если переменная Name передана

if (isset($_POST["Name"])) {
//Вставляем данные, подставляя их в запрос
$sql = mysql_query("INSERT INTO `rassilki_rezults` (`Tema_rassilki_id`,`Email_ID`,`Status`)
VALUES ('"
.$Tema_rassilki_id."','".$IDemail."','".$_POST['Name']."')");

$_SERVER['PHP_SELF'];
$_SESSION['counter']++;
//Если вставка прошла успешно
if ($sql) {
echo "<p>Данные успешно добавлены в таблицу. </p>";
} else {
echo "<p>Произошла ошибка.</p>";

}
}


//Получаем email из базы
$query = ('SELECT allbase.email FROM `allbase` WHERE ID='.$_SESSION['counter'].'');
$sql = mysql_query($query) or die(mysql_error());
while ($res = mysql_fetch_array($sql)) {
$Email=$res['email'];
echo $Email;
}

?>


<div id="email">
<?php
echo $IDemail;
echo $_SESSION['counter']++;
?>



</div>


<!---
Форма через которую передаем -->
<
table>
<
form action="" method="post">
<
tr>
<
td>Данные:</td>
<
td><input type="text" name="Name"></td>
</
tr>
<
tr>
<
td colspan="2"><input type="submit" value="OK"></td>
</
tr>
</
form>
</
table>


Не пойму что не так с переменной IDemail ?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 720
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 14 дней
Карма: 21




это

$_SERVER['PHP_SELF'];

Вам не нужно!
Здесь

echo $_SESSION['counter']++;

плюсики не надо!
А если вставка прошла не успешно ?

$_SESSION['counter']++; //это
//Если вставка прошла успешно

if ($sql) {
$_SESSION['counter']++; //сюда
echo "<p>Данные успешно добавлены в таблицу. </p>";
} else {
echo "<p>Произошла ошибка.</p>";

}

У Вас ID наверное с 1 начинаются, а не с нуля?

$_SESSION['counter']=0;


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Craftsman1  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42984
На форуме: 6 месяцев, 18 дней
Карма:




Цитата (arbuzmaster @ 21.05.2016 - 21:29)
это

$_SERVER['PHP_SELF'];

Вам не нужно!


Это да. Забыл удалить.


Цитата (arbuzmaster @ 21.05.2016 - 21:29)

Здесь

echo $_SESSION['counter']++;

плюсики не надо!


Почему не надо. Без них не работает. В sql запросе в "WHERE ID=" не увеличивается на+1


Цитата (arbuzmaster @ 21.05.2016 - 21:29)

А если вставка прошла не успешно ?

$_SESSION['counter']++; //это
//Если вставка прошла успешно

    if ($sql) {
            $_SESSION['counter']++; //сюда
        echo "<p>Данные успешно добавлены в таблицу. </p>";
    } else {
        echo "<p>Произошла ошибка.</p>";
 
    }



Если вставка прошла не успешно, то появится сообщение что Произошла ошибка.


Цитата (arbuzmaster @ 21.05.2016 - 21:29)

У Вас ID наверное с 1 начинаются, а не с нуля?

$_SESSION['counter']=0;


Это да. С этим подсказали. В этом и была ошибка. Поменял на 1 и все заработало.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 720
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 14 дней
Карма: 21




Цитата

Здесь

echo $_SESSION['counter']++;

плюсики не надо!
Судя по логике Вашего кода - если сработает isset, то счетчик будет уже +2 а не +1, короче плюсики надо удалить.


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Craftsman1  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42984
На форуме: 6 месяцев, 18 дней
Карма:




Цитата (arbuzmaster @ 21.05.2016 - 22:16)
Цитата

Здесь

echo $_SESSION['counter']++;

плюсики не надо!
Судя по логике Вашего кода - если сработает isset, то счетчик будет уже +2 а не +1,или тогда удалите из isset $_SESSION['counter']++;


Не совсем понял. Вы имеете ввиду значение будет 2 или будет прибавлять по +2, потом по +3?.

Логика такая. При каждом нажатии на кнопку в форме прибавляется +1 и из базы соответственно выводится следующий +1 email. 100 раз на кнопку нажали вывелось 100 emailов по одному. Сейчас тестирую. Вроде так все и работает.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 720
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 14 дней
Карма: 21




Поставьте

echo $_SESSION['counter'];

в самое начало после этого //Получаем email id из базы: и посмотрите, что будет!


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1357
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 11 дней
Карма: 77




не проверял. возможны какие-то ошибки
<?php	
$host="localhost";
$user="root";
$pass="123";
$db_name="test";
$Tema_rassilki_id="100";
$link = mysql_connect($host,$user,$pass);
mysql_select_db($db_name,$link);

$array = array();

// Получаем ПЕРВЫЕ данные из базы:
if (!isset($_SESSION['id']))
$array = nextId();


// Добавить
if (isset($_POST["add"])) {

$sql = "
INSERT INTO
`rassilki_rezults`
SET
`Tema_rassilki_id` = '"
.$Tema_rassilki_id."',
`Email_ID` = '"
.(int)$_POST['id']."',
`Status` = '"
.mysql_real_escape_string($_POST['Name'])."'
"
;

//Вставляем данные, подставляя их в запрос
$sql = mysql_query($sql);

//Если вставка прошла успешно
if ($sql) {

echo "<p>Данные успешно добавлены в таблицу. </p>";
// Находим следующий ID
$array = nextId($_SESSION['id']);

} else {
echo "<p>Произошла ошибка.</p>";
}
}


// Следующий
if (isset($_POST["next"])) {
$array = nextId($_SESSION['id']);
}

?>
<form action="" method="post">
<
table>
<
tr>
<
td>Данные: <?=$array['mail']?></td>
<
td>
<
input type="text" name="Name" value="<?=htmlspecialchars($array['Status'])?>">
<
input type="hidden" name="id" value="<?=$array['id']?>">
</
td>
</
tr>
<
tr>
<
td colspan="2">
<
input type="submit" name="next" value="Следующий" >
<
input type="submit" name="add" value="Добавить данные" >
</
td>
</
tr>
</
table>
</
form>
<?php

function
nextId($id = 0){
// Получаем данные и статус
$sql = "
SELECT
b.id, b.mail,
r.`Status`
FROM
`allbase` AS b
LEFT JOIN
`rassilki_rezults` AS r ON r.id = b.id
WHERE
b.id = (SELECT id FROM `allbase` WHERE id >
$id ORDER BY b.id LIMIT 0,1)
"
;
$sql = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($sql) > 0) {
$result = mysql_fetch_assoc($sql);
$_SESSION['id'] = $result['id'];
return $result;
} else
die('Больше ничего нет');
}

добавил кнопку Следующий

Это сообщение отредактировал Kusss - 21.05.2016 - 22:49
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса