Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
Skmaestro
4 / 4 / 0
Регистрация: 14.11.2010
Сообщений: 334
1

Форма на цикле

06.01.2012, 19:19. Просмотров 1570. Ответов 11
Метки нет (Все метки)

Привет всем
Помогите пожалуйста сделать форму на цыкле
вот часть кода какой цикл
Действие которые там выполняются
Захожу в этот файл
Там сразу мне список из бд выводит в таком порядке
Имя / Логин / Доступ / Удалить
ыы / ыыыы / 1 / Кнопка удалить
Я нажымаю на удалить оно посылает пост и пишет вы нажали на кул но я хочу чтобы было
вы нажали на .$row['Id']. кул
.$row['Id']. - это я просто так поставил ибо хз что туда поставить
Помогите пожалуйста

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$query = "SELECT * FROM Admin";
$result = mysql_query($query);
echo '<table width="450" border="3">
<tr><td>id:   </td><td>'; echo 'Имя:               </td>'; echo '<td>Логин:               </td>'; echo '<td>Права:        </td>'; echo '<td>Удалить  </td></tr>';
while ($row = mysql_fetch_assoc($result)) 
{
echo '<tr>
<td>'.$row["Id"].'</td>
<td>'.$row["Name"].'</td>
<td>'.$row["Login"].'</td>
<td>'.$row["Admin"].'</td>
<td>
<form action="" method="post">
<input type="submit" name="'.$row['Id'].'" value="Удалить '.$row['Id'].'?" /><br>
</td></tr>';
}
if (count($_POST) > 0)
{
echo 'вы нажали на '.$row['Id'].'кул';
}
Добавлено через 1 минуту
Просто я хочу нажал удалить и оно удаляет то что пишет слева от него посылает запрос
DELETE FROM ... .... .. WHERE Login = .$row['Login'];
Может возможно сделать
($_POST.от кого пришло)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2012, 19:19
Ответы с готовыми решениями:

Форма в цикле
Здравствуйте уважаемые! Подскажите плиз: как данные из цикла передать в...

Как сделать чтоб форма обратной связи не отправляла письмо если форма не заполнена
Добрый день. Подскажите пожалуйста как сделать чтоб форма обратной связи не...

Регистрационная форма и форма авторизации
Здравствуйте! Есть готовые файлы, которые работают как регистрационная форма...

Форма отправки в цикле
цикл выводит данные с БД.Эти данные имеют поле для ввода текста.Куда мне...

Добавление записи в Listview(1 форма) через Диалоговое окно(3 форма) другой формы (2 форма)
Всем доброго дня и с наступающими праздниками! Знаю, тема 7 частых вопросов...

11
__PION__
956 / 797 / 85
Регистрация: 21.07.2010
Сообщений: 3,521
07.01.2012, 08:04 2
не поянтно, что конкретно те нужно. может по другому пересформулируешь вопрос?
1
Skmaestro
4 / 4 / 0
Регистрация: 14.11.2010
Сообщений: 334
07.01.2012, 17:11  [ТС] 3
Я незнаю как это по другому обьяснить
у меня есть доступ к бд
я хочу нажал на кнопку и удаляет поле с таблици ...
полей много определить которое нужно в визуальности могу но вот в скрипте что-то не могу
вот пример
У меня в бд есть таблица Админы В ней
ИД / Имя / Логин / Пароль / Доступ
Захожу на сайт там я создал скрипт но я его не могу доделать
он циклом выводит все данные с бд без пароля в таблицу
в таком порядке
Ид / Имя / Логин / Доступ / а тут кнопкочка удалить - она удаляет ету запись
1 / Олег/ Скмаестро / 1 / Удалить
2 / Виталий / 123 / 0 / Удалить
я нажал на кнопку Удалить в 1 иде оно должно послать запрос Delete FROM ADMINS WHERE ID=1
нажал на вторую Delete FROM ADMINS WHERE ID=2
но я не ставлю это руками а это делает цикл и он сам генерирует там возможно 100 записей и будет 100 кнопок и каждая удаляет запись на которой стоит
Вот как такое сгенерировать?
0
__PION__
956 / 797 / 85
Регистрация: 21.07.2010
Сообщений: 3,521
07.01.2012, 17:47 4
а.., все, понял. Раз у тя напротив каждой записи кнопки (значит и форма), то можно передавать id через скрытое поле.
Просто добавь в форму с кнопкой такое поле (кстати у вас тег формы не закрыт!)
PHP
1
2
3
4
<form action="" method="post">
<input type="hidden" name="'.$row['Name'].'" value="'.$row['Id'].'" />
<input type="submit" name="'.$row['Id'].'" value="Удалить '.$row['Id'].'?" />
</form>
А в условие удаления передавать значение скрытого поля
PHP
1
2
3
4
$del = mysql_real_escape_string($_POST[$row['Name']]);
$del = (int)$del;
$query = "DELETEFROM ADMINS WHERE ID=$del";
mysql_query($query);
так посмортикась
1
Skmaestro
4 / 4 / 0
Регистрация: 14.11.2010
Сообщений: 334
07.01.2012, 18:15  [ТС] 5
все пашет на 1000000+
токо одно но я сделал
PHP
1
2
3
4
5
6
7
8
9
10
11
<form action="" method="post">
            <input type="hidden" name="'.$row['Name'].'" value="'.$row['Id'].'" />
            <input type="submit" name="'.$row['Id'].'" value="Удалить '.$row['Id'].'?" />
            </form>
            </td></tr>';
                if (count($_POST) > 0)
                {
                $del = mysql_real_escape_string($_POST[$row['Name']]);
                $del = (int)$del;
                echo $del;
                }
а оно мне выбевает все что нужно но с лишним(
нажму на поле 1 удалить будет
1
0
нажму на поле 2 удалить будет
0
2
если 3 профа и нажму на 1 удалить будет
1
0
0
3 поля нажму на 2 будет
0
2
0
3 поля нажму на 3 будет
0
0
3
и так далее оно просто вставляет если на то не нажал всеравно вставляем как 0
0
__PION__
956 / 797 / 85
Регистрация: 21.07.2010
Сообщений: 3,521
07.01.2012, 18:26 6
а если это условие
Цитата Сообщение от Skmaestro Посмотреть сообщение
if (count($_POST) > 0)
поменять на такое
PHP
1
if (isset($_POST[$row['Id']]))
1
Skmaestro
4 / 4 / 0
Регистрация: 14.11.2010
Сообщений: 334
07.01.2012, 18:30  [ТС] 7
да и кстате если 2 поля будут иметь такоеже имя будет баг) уже попробывал изменил на Логин надеюсь все норм будет

Добавлено через 1 минуту
Парень да ты супер я реально отвечаю
Спасибо Большое 1005000+ все на макс пашет Спасибо еще раз очень большое
0
__PION__
956 / 797 / 85
Регистрация: 21.07.2010
Сообщений: 3,521
07.01.2012, 18:55 8
Цитата Сообщение от Skmaestro Посмотреть сообщение
да и кстате если 2 поля будут иметь такоеже имя будет баг)
2 одинкаовых имен не будет, т.к., id в таблице имеют уникальные значения.
А вот такое может быть, например, если зайти в firebug через firefox и поменять значение скрытого поля на другое, то удалится не та запись, которую хотели,
или еще хуже, если набрать там значение, которого в таблице нет (напр., у тя 100 пользователей, а набрать там 101, или вместо цифры набрать строку даст уже падение), то запрос сломается с выводом ошибки. Это плохо.
Нужны дополнительные проверки, напр., на удаление можно повесить условие чтобы не передавали строки
PHP
1
2
3
4
5
6
if (is_integer($del))
{
   // удаление
}
else
   die('не ломай мой сайт!');
а чтобы не передавали id, которых у тя в таблице нет, то можно вывести заранее все id и поставть еще проверку, есть ли такое id в массиве подготовленных (выведенных) ранее id'шек.
если такого id, опять вызвать die();
1
Skmaestro
4 / 4 / 0
Регистрация: 14.11.2010
Сообщений: 334
07.01.2012, 19:02  [ТС] 9
+1 спасибо уже поставил да такого не будет но спасибо что сказал
я переделал уже под логин все 100500
нету бага
нажал удалить оно удаляет
но нада обновить чтоб таблицу наново пробывал без обновки еще раз нажал и все пошло на 100500 нету некакого бага и нече вообще не удаляет)
0
__PION__
956 / 797 / 85
Регистрация: 21.07.2010
Сообщений: 3,521
07.01.2012, 19:18 10
ну если все ратает еще лучше, просто имей ввиду. каша происходит если подменивать $_GET, я знаю несколько сайтов, у которых такая проблема, и написав простую sql-инъекцию через адресную строку можно все у них разрушить
1
rozmakc
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 74
06.01.2015, 07:03 11
вопросик, а если в цикле одна форма и одна кнопка а вместо "удалить" чекбокс например, как удалить нужные записи одной кнопкой?
0
pav1uxa
1857 / 1711 / 802
Регистрация: 23.01.2014
Сообщений: 6,082
Завершенные тесты: 1
06.01.2015, 11:52 12
Цитата Сообщение от rozmakc Посмотреть сообщение
вопросик, а если в цикле одна форма и одна кнопка а вместо "удалить" чекбокс например, как удалить нужные записи одной кнопкой?
а в чем именно проблема? через эти чекбоксы передаете все направленные на удаление строки в скрипт-обработчик, который их удаляет. обычным запросом POST или GET. вы хотябы попробуйте, а если будут проблемы пишите.

Не по теме:

И на будущее - не стоит писать в темах двухгодичной давности. Лучше создайте свою тему. Вот сейчас люди будут сюда заходить, читать первый пост, пытаться помочь автору темы...

0
06.01.2015, 11:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2015, 11:52

Форма 1 вызывает форму 2, форма 2 закрывается, форма 1 продолжает работать дальше
Вынес предстартовые действия формы1 в форму2 (там у меня проверка существования...

Как програмно в цикле не доходя до конца, пропустить шаг в цикле?
Как програмно в цикле не доходя до конца, пропустить шаг в цикле?

При склеивании строк в цикле, уже на пятом цикле возникает переполнение памяти
При склеивании строк в цикле, уже на пятом цикле возникает переполнение памяти....


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru