Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Удалить строку из таблицы и заменить аргумент в ДБ. / 8 сообщений из 8, страница 1 из 1
03.07.2014, 14:06
    #38686819
Mc Doc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить строку из таблицы и заменить аргумент в ДБ.
Ребят, задача сложная, но мне кажется решаемая. Есть примерное направление решения... но нужна подсказака.
По порядку.
Есть - БД MYSQL - РНР страница которая отображает запрос из БД.

Страница:


В БД есть таблица. Все что вывидите на экране - это одна таблица. У задания есть уникальный ID.
Вот таблица:


Каждую минуту страница обновляется и загружаются новые задания в таблицу на страницу. Все работает отлично. По умолчанию в последней колонке (finished) стоит 0 (ноль) - помечено как невыполненое задание, соответственно загружется в таблицу.

ЗАДАЧА - после того как задание выполнено - (не важно что было написано на экране), кликаем на кнопку accept - и это задание исчезает с экрана (из таблицы строка), в БД помечается как 1 (один). Соответственно при перезагрузке страницы оно больше не вывоится на экран.

Пробема - как это все выполнить? И самое важное, что бы в поночь ежедневно, точнее в 00-01 все 1-ки (еденички) поменялись на 0-ли (нули). Так как в новый день нужно, ежедневные задания к примеру, загружать по новой. Для этого я понимаю нужен дополнительный запрос в БД проверка и если найдена еденичка - менятеся на ноль.

По возможности реализовать все старым "дедовским" способом, ajax пока не знаю и не изучал. Как мне уже подсказали, нужно задекларироват id задания вместе с кнопкой, что бы была проверка и пометка правильного задания как finished 1.

Вот место в таблице где декларируется кнопка:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
while($row = mysqli_fetch_array($result))
			{		
				echo "<tr>";
				echo "<td width=50%>" . "<p class='sansserif'>" . $row['description'] . "</p>" . "</td>";
			    echo "<td width=21%>" . "<center>" . "<p class='sansserif'>". date('l jS \of F Y ') . "</p>" . "</center>" . "</td>";
				echo "<td width=18%>" . "<center>" . "<p class='sansserif'>" . $row['start_time'] . "</p>" . "</center>" .  "</td>";
				echo "<td width=11%>" . "<img src = image/sign.png>" . "</td>";
				echo "</tr>";
			}



Соответственно мне нужна форма для субмита:

Код: html
1.
2.
3.
4.
<form action=" " method="POST">
	<input type="submit" name="delete_task" value="sign.png" />
	<input type="hidden" name="my_secret_field" value="вот тут id моего задания "/>
</form>



и конечно форма проверки и отправки для замены нуля на еденичку. С выводом ошибок...

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?php

	ini_set('display_errors','On');
	error_reporting(E_ALL|E_STRICT);

	$delete_task = isset($_POST['delete_task'])?($_POST['delete_task']):''; // Тут неверно походу, так как $delete_task - не декларировали. 
	
	if (isset($_POST['delete_task']) ) {
	
	
  тут уже проверяем скрытое поле, тут же валидация и проверка её существования в БД.
  ну и если всё ок то обновляем поле finished на 1 где id =з начение скрытого поля
}

?>



Помогите дособрать до кучи все.
...
Рейтинг: 0 / 0
03.07.2014, 14:12
    #38686829
Mc Doc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить строку из таблицы и заменить аргумент в ДБ.
Пока писал возникла идея.

Когда кликаем на кнопку, при соблюдении всех условий - она меняется на "зеленую" (как пример), и максимумчерез минуту послеобновления экрана эта запись исчезнет, так как в БД 0 поменяется на 1.
...
Рейтинг: 0 / 0
03.07.2014, 15:10
    #38686904
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить строку из таблицы и заменить аргумент в ДБ.
ты пока будешь реализовывать свою мега идею ,на каждый шаг будешь тему делать???

сделал бы одну общую, с названием задачи в теме... а то лично я уже даже не читаю твои посты, так как воспринимаеться как спам.
...
Рейтинг: 0 / 0
03.07.2014, 15:13
    #38686911
Mc Doc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить строку из таблицы и заменить аргумент в ДБ.
alex564657498765453,
В принцыпе это последний шаг.
Реализовываю, что то сам, что то спрашиваю.
...
Рейтинг: 0 / 0
04.07.2014, 17:30
    #38688277
Mc Doc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить строку из таблицы и заменить аргумент в ДБ.
может кто знает, как добавить кнопку в таблицу, если:

Код: html
1.
2.
3.
4.
<form action=" " method="POST">
	<input type="image" name="delete_task" src="image/sign.png" value="submit"/>
	<input type="hidden" name="my_secret_field" value="id"/>
</form>



в эту строчку:

echo "<td width=11%>" . сюда кнопку . сюда secret field . $delete_task . "</td>";
...
Рейтинг: 0 / 0
07.07.2014, 11:58
    #38689281
Mc Doc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить строку из таблицы и заменить аргумент в ДБ.
Решил обратную смену 1 на 0 (ноль).
Все реализовывается через event. Не так сложно оказалось:


Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE EVENT IF NOT EXISTS название_эвента_тут
ON SCHEDULE EVERY 1 DAY                  -- будет запускаться каждый день
STARTS  '2014-07-04 00:00:00'             -- как пример, с какого дня начинать и время
ON COMPLETION PRESERVE ENABLE
DO
    update tasks 
    set finished = replace (finished, '1', '0')     -- что делает



Не забудте так же в MyPhpAdmin - включить кнопку ON. Даже еcли вы создадите эвент, он будет OFF.
Решать по другому, наверное можно, но уже сама БД будет сделать за тем, что сделать вне зависимости от того перегружена страница или нет. За счет этого решения мы избавляемся от необходимости перегружать страницу, или вообще ее запускать.
...
Рейтинг: 0 / 0
07.07.2014, 20:49
    #38689793
Mc Doc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить строку из таблицы и заменить аргумент в ДБ.
Решено, код если кому понадобится.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
$delete_task = isset($_POST['my_secret_field'])?($_POST['my_secret_field']):'';
    
            if (isset($_POST['my_secret_field']) ) {
                
            if (empty($delete_task)){echo "Task do not exist"; exit;}
            
            $result2 = mysqli_query($con, "update tasks set finished = 1  where id = '". $_POST['my_secret_field'] ."' ");
            }



ну и конечно ячейка с кнопкой.

Код: php
1.
2.
3.
echo '<td width="11%"><form action=" " method="POST">
       					<input type="image" name="delete_task" src="image/sign.png" value="submit"/>
       					<input type="hidden" name="my_secret_field" where value="'.$row['id'].'" /></form></td>';
...
Рейтинг: 0 / 0
07.07.2014, 23:42
    #38689887
MikkiMouse
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить строку из таблицы и заменить аргумент в ДБ.
Mc Doc,

это ни кому ни панадобится

Модератор:
MikkiMouse , прочтите еще раз правила форума. В частности:
http://www.sql.ru/forum/rules.aspx Содержание сообщений
Запрещается:

"Коверканье" слов русского языка.

Рекомендуется:

Использовать хотя бы основные правила русского языка при составлении сообщений.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Удалить строку из таблицы и заменить аргумент в ДБ. / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]