Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Mc Doc
1 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 111
MySQL

Удалить уникальную строку в таблице

07.07.2014, 13:33. Показов 1190. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не удаляется уникальная строка из таблицы при нажатии на кнопку. Уникальность - это id каждой уникальной учетной записи.

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" value='.$row['id'].' where "id = '.$row['id'].'" /></form></td>';
Обновление в таблице делается, но только СРАЗУ для ВСЕХ записей ((( А нужно что бы для одной, уникальной в строке которой нажали на кнопку.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.07.2014, 13:33
Ответы с готовыми решениями:

Выбрать строку из определенного значения в таблице и удалить ее
Доброго дня форумчане, подскажите решение данного вопроса. Есть таблица &quot;testtable&quot;, в ней 2 значения, это &quot;id&quot; и...

Взять уникальную строку с файла (большой файл)
Посоветуйте как лучше решить проблему. Есть тхт-файл больше 10 млн. строк При каждом вызове скрипта нужно брать уникальную строчку ...

Добавить/удалить строку в таблице БД
Нужно написать страничку на Php для удаления/добавления строки в Базу Данных.

15
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
07.07.2014, 13:42
Ну так where подставь
0
 Аватар для Mc Doc
1 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 111
07.07.2014, 13:49  [ТС]
Я подставил, или не туда????

where "id = '.$row['id'].'"

так же - where value="'.$row['id'].'" - тоже не работает.
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
07.07.2014, 13:53
PHP
1
$q = "delete from `table` where `pole` = '" .  $row['id']  . "'";
0
 Аватар для Mc Doc
1 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 111
07.07.2014, 14:07  [ТС]
Спасибо, но
Я не верно объяснил.
Нужно удалить из таблицы со страницы, в таблице БД менятеся значение и больше эта строка не показывается. Там немного по другому:

PHP
1
$result2 = mysqli_query($con, "update tasks set finished = replace (finished, '0', '1') ");
Добавлено через 8 минут
На основе примера сделал

PHP
1
$result2 = mysqli_query($con, "update tasks set finished = replace (finished, '0', '1') where id = '".$row['id']."' " );
При нажатии на кнопку выдает ошибку:
Notice: Undefined variable: row in C:\xampp\htdocs\Inform_dash\index.php on line 99 - это как раз приведеная выше линия.
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
07.07.2014, 15:01
Переменной row нет на момент запроса. Откуда вы берете row?
0
 Аватар для Mc Doc
1 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 111
07.07.2014, 15:05  [ТС]
1 - у меня есть первый запрос, который помещает данные в таблицу,
2 - второй запрос должен поменять значение в таблице с 0 на 1
3 - при обнавлении страницы так как условие не соблюдено - с 1-цей не вызавается.
Вот весь код:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Refresh" content="60">
<body topmargin="0" leftmargin="100" link="#0033FF"" vlink="#FF00CC" text="#FFFFFF" bgcolor="#000000">
<!-- ...................... Font Style ........................................................ -->
<style>
p.sansserif{font-family:Arial;}
</style>
<!-- ******************************************************************************************* -->
<table border='0' width='1000' align=center bgcolor="#FFFFFF">
  <tr>
    <th width=50%><img src="image/logo.jpg"></th>
    <th width=50% style="color: #a8388e;"><p class="sansserif"><h2><p class="sansserif">List of tasks in HETG on:</p></h2></p>
        <script type="text/javascript">
        document.write ('<p><p class="sansserif"><span id="date-time">', new Date().toLocaleString(), '<\/span>.<\/p>')
        if (document.getElementById) onload = function () {
            setInterval ("document.getElementById ('date-time').firstChild.data = new Date().toLocaleString()", 50)
        }
        </script></p>
        </th>
      </tr>
</table>    
<!-- ******************************************************************************************* -->
<?php
        ini_set('display_errors','On');
        error_reporting(E_ALL|E_STRICT);
 
        $con=mysqli_connect('localhost', 'root', '', 'task_db');
 
        if (mysqli_connect_errno())
          {
             echo "Failed to connect to MySQL: " . mysqli_connect_error();
          }
            $result = mysqli_query($con, "(SELECT id, description, start_time
            FROM tasks 
            WHERE code LIKE 'once'
            AND start_date = current_date
            AND start_time < date_add(current_time, interval + 15 minute)
            AND exp_day >= current_date
            AND finished = 0)
            UNION ALL
                (SELECT id, description, start_time
                FROM tasks
                WHERE  code LIKE  'daily'
                AND  start_time < date_add(current_time, interval + 15 minute)
                AND  exp_day >= current_date
                AND finished = 0)
                UNION ALL
                    (SELECT id, description, start_time
                    FROM tasks
                    WHERE  code LIKE  'weekly'
                    AND  start_time < date_add(current_time, interval + 15 minute)
                    AND  exp_day >= current_date
                    AND 
                    (case 
                     when frequency in (1,2,3,4,5) then frequency = WEEKDAY (current_date)
                     when frequency=7 then true
                     when frequency=6 then DAY(current_date)>DAY(date_add(current_date,interval 1 week))
                     end)
                     AND finished = 0)
                     UNION ALL
                        (SELECT id, description, start_time
                        FROM tasks
                        WHERE  code LIKE  'monthly'
                        AND  start_time < date_add(current_time, interval + 15 minute)
                        AND  exp_day >= current_date
                        AND  day_of_week = DAYOFWEEK( current_date ) 
                        AND  month_of_year = MONTHNAME( current_date ) 
                        AND 
                        (case 
                         when frequency in (1,2,3,4,5) then frequency = WEEKDAY (current_date)
                         when frequency=7 then true
                         when frequency=6 then DAY(current_date)>DAY(date_add(current_date,interval 1 week))
                         end)
                         AND finished = 0)
                         UNION ALL
                            (SELECT id, description, start_time
                            FROM tasks
                            WHERE  code LIKE  'yearly'
                            AND  start_time < date_add(current_time, interval + 15 minute)
                            AND  exp_day >= current_date
                            AND  month_of_year = MONTHNAME( current_date ) 
                            AND  specific_day = DAYOFMONTH( current_date )
                            AND finished = 0)
                            ORDER BY  start_time "); 
            
                
            $delete_task = isset($_POST['delete_task'])?($_POST['delete_task']):'';
    
            if (isset($_POST['delete_task']) ) {
                
            if (empty($delete_task)){echo "Task do not exist"; exit;}
            
            $result2 = mysqli_query($con, "update tasks set finished = 1  where id = '".$row['id']."' ");
            }           
            
            if (!$result) die("Query failed");              // test for valid $result 
            //if (!$result2) die("Query 2 failed");              // test for valid $result2
            
            echo "<center><table border='1' width='1000'><center
            <tr>
            <th><h3><p class='sansserif'>Task for execution</p></h3></th>
            <th><h3><p class='sansserif'>Current date</p></h3></th>
            <th><h3><p class='sansserif'>Time for execution</p></h3></th>
            <th><h3><p class='sansserif'>Button</p></h3></th>
            </tr>";
                        
            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%"><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> '.$row['id'].' </td>';
            }
                $result->close();
                echo "</table>";
                
mysqli_close($con);
?>
<br>
<br>
<p class="sansserif">
<table border='0' width='800'>
  <tr>
    <th width=20%></th>
    <th width=47%><div id="timer">
        </div></th>
    <th width=33% align=right><a href="admin.php" target="_blank">@ Admin</a> </right></th>
  </tr>
</table>
    </body>
    </p>    
        </HTML>
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
07.07.2014, 18:36
Разве не присланный my_secret_field нужно изменять?
PHP
1
<input type="hidden" name="my_secret_field" where value="'.$row['id'].'" /></form> '.$row['id'].' </td>';
0
 Аватар для Mc Doc
1 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 111
07.07.2014, 18:47  [ТС]
Да все верно.
У меня в этой строчке он как Скрытый, так и открытый (показан в ячейке - это я для себя - для теста добавил).
Вот именно это уникалное id и нужно в колонке finished изменить с 0 на 1.
Сейчас покажу скриншот.



Под кнопкой и есть id - нажав на кнопку в колонке finished меняется значение с 0 на 1.
Миниатюры
Удалить уникальную строку в таблице  
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
07.07.2014, 18:51
Лучший ответ Сообщение было отмечено Mc Doc как решение

Решение

Ну так его и поставляйте, что вы какой-то row пихаете?
PHP
1
$q = "update tasks set finished = 1  where id = '". $_POST['my_secret_field'] ."'";
1
 Аватар для Mc Doc
1 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 111
07.07.2014, 18:56  [ТС]
у всех id по умолчанию 0. Только после нажатия на кнопку, скриптом он должен меняться на 1-цу.

Добавлено через 2 минуты
Тоже самое:
Notice: Undefined index: my_secret_field in C:\xampp\htdocs\Inform_dash\index.php on line 87

Добавлено через 2 минуты
ЕСТЬ!!!!!
Я спустил ниже за таблицу запрос!!! и все заработало!!!!!
Спасибо, гениально!!!
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
07.07.2014, 18:57
Цитата Сообщение от Mc Doc Посмотреть сообщение
Undefined index: my_secret_field
Не может быть. Первой строкой
PHP
1
<? var_dump($_POST); ?>
и посмотрите какие поля после отправки приходят

Добавлено через 24 секунды
Цитата Сообщение от Mc Doc Посмотреть сообщение
ЕСТЬ!!!!!
А, ну вот.
0
 Аватар для Mc Doc
1 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 111
07.07.2014, 19:00  [ТС]
В догонку еще вопрос, как сделать, что бы после нажатия на кнопку, шло СРАЗУ обновление страницы уже без удаленой строчки?????
А то она у меня только через 60 секунд после обновления уходит.
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
07.07.2014, 19:01
Цитата Сообщение от Mc Doc Посмотреть сообщение
В догонку еще вопрос, как сделать, что бы после нажатия на кнопку, шло СРАЗУ обновление страницы уже без удаленой строчки?????
Выполнить запрос с апдейтом до запроса с селектом
0
 Аватар для Mc Doc
1 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 111
07.07.2014, 19:03  [ТС]
Не понимаю, почему выходит. Все работает (((
Миниатюры
Удалить уникальную строку в таблице  
0
 Аватар для Mc Doc
1 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 111
07.07.2014, 20:47  [ТС]
Цитата Сообщение от crautcher Посмотреть сообщение
Выполнить запрос с апдейтом до запроса с селектом
Ошибка вылезла над таблице, если переставить запрос выше. Над селектом.

Добавлено через 3 минуты
Вот что интересно!
Если запускаем страницу - то ошибка выходит сразу! Как только сделаешь первое удаление - ошибка исчезает. И как только происходит обновление страницы через 60 секунд выходит снова.

Добавлено через 41 минуту
Добавил,
PHP
1
var_dump($_POST);
При загрузке страницы соответственно:
array(0) { }
Нажал на кнопку, строка исчезла и результат:
array(4) { ["delete_task_x"]=> string(2) "38" ["delete_task_y"]=> string(2) "13" ["delete_task"]=> string(6) "submit" ["my_secret_field"]=> string(1) "4" }

Добавлено через 53 минуты
РЕШЕНО:

Вернул проверку, итоговый код:
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'] ."' ");
            }
crautcher - спасибо за сотрудничество.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.07.2014, 20:47
Помогаю со студенческими работами здесь

Как реализовать Уникальную строку?
Всем привет, подскажите, пожалуйста, Как реализовать Уникальную строку? Например: Таблица: При попытке добавить - ничего не...

Как получить уникальную строку из множество записей?
Мир все и привет как получить уникальную строку из множество записей? Например в таком запросе query.sql.add ( 'Where...

Используя число и unix время получить уникальную 7-ми знаковую строку
Добрый день. Подскажите, пожалуйста, как используя число и unix время получить уникальную 7-ми знаковую строку?

Как удалить последнюю строку в таблице?
Пусть имеется таблица Person, где для простоты есть всего два столбца: Name и Surname. Задача - удалить последнюю строку в таблице. ID в...

Как удалить строку в таблице из WFA
Добрый день. Проблема в следующем: - В проекте WFA подключаю БД MsAccess (mdb). - Есть 2 кнопки: первая вставляет данные в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru