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 :: как выполнить sql запрос из цикла while
, данный код нам выдает все нужные строки в таблицу. Не пойму как сделать после конца каждой строчки кнопку, при нажатии на которую будет выполнен SQl запрос к базе данных MySQl, и будет действовать только на определенный ID строки. Например у нас в базе три строки, выводим все три строки из базы циклом while, и нам нужно чтоб при нажатии каждой кнопки, запрос в базу выполнялся именно с идентификатором конкретной строчки. То есть я нажму на кнопку возле третьей строки, именно третья строка пошлет запрос в базу данных
miketomlin
Отправлено: 22 Июля, 2018 - 14:54:00
Частый гость
Покинул форум
Сообщений всего: 129
Дата рег-ции: Июль 2016
Помог: 5 раз(а)
Идентификатор конкретной записи указывайте в ссылке, в имени кнопки и т.п. Потом обрабатывайте запрос.
Вот, например, почитайте мою статью Как сделать вывод списка статей? и обязательно комменты к ней, т.к. в самой стать предполагается использование движка, который сам выбирает отдельные записи. (Добавление)
P.S. Вот это переливание из пустого в порожнее: $numid = $myrow['num_id']; и т.п.
Используйте какое-нибудь современное расширение для работы с БД, например mysqli.
В шаблоне лучше использовать альт. синтаксис (см. шаблоны в статье).
Соединение с базой лучше закрывать до выполнения шаблонов или вообще этого не делать, полагаясь на «сборку мусора».
myvin
Отправлено: 22 Июля, 2018 - 15:53:28
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2018
Помог: 0 раз(а)
miketomlin пишет:
Идентификатор конкретной записи указывайте в ссылке, в имени кнопки и т.п. Потом обрабатывайте запрос.
Вот, например, почитайте мою статью Как сделать вывод списка статей? и обязательно комменты к ней, т.к. в самой стать предполагается использование движка, который сам выбирает отдельные записи. (Добавление)
P.S. Вот это переливание из пустого в порожнее: $numid = $myrow['num_id']; и т.п.
Используйте какое-нибудь современное расширение для работы с БД, например mysqli.
В шаблоне лучше использовать альт. синтаксис (см. шаблоны в статье).
Соединение с базой лучше закрывать до выполнения шаблонов или вообще этого не делать, полагаясь на «сборку мусора».
Чуть переделал код, но все равно не то, что требуется.
и действие применяется не к одной строке status2, а ко всем строкам сразу, имеющимся в таблице, а нужно только строго к той строке, напротив которой я нажму на кнопку (имеется скажем html таблица с 10 строк, при нажатии на кнопку submit, значение столбца status2 меняется сразу во всех строках, а не только к той, возле которой кнопка
miketomlin
Отправлено: 22 Июля, 2018 - 18:30:28
Частый гость
Покинул форум
Сообщений всего: 129
Дата рег-ции: Июль 2016
Помог: 5 раз(а)
О каком конкретно действии идет речь? Если о просмотре, редактировании (именно редактировании, а не сохранении отредактированного), то достаточно простых ссылок и метода GET.
Для изменения и т.п. можно использовать чекбоксы, индивидуальные формы, кнопки с собственными обработчиками и т.п. (Добавление)
Значение $ident должно как-то передаваться в обработчик.
myvin
Отправлено: 23 Июля, 2018 - 11:46:43
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2018
Помог: 0 раз(а)
miketomlin пишет:
О каком конкретно действии идет речь? Если о просмотре, редактировании (именно редактировании, а не сохранении отредактированного), то достаточно простых ссылок и метода GET.
Для изменения и т.п. можно использовать чекбоксы, индивидуальные формы, кнопки с собственными обработчиками и т.п. (Добавление)
Значение $ident должно как-то передаваться в обработчик.
Напишу так - имеется 5 столбцов в базе данных MySQL. Строк у этих столбцов может быть немерено, от 1 до там сотен тысяч (конечно когда их будет уже столько много, буду оптимизировать, не о этом речь), и каждая строка выводится на сайт циклом, то есть если строк в базе 500, то выводится 500 строк на сайт. Каждая отдельная строка имеет свой ID, который идет от 1 до.. до сколько строк в базе будет, столько и будет. В итоге мы имеем таблицу на сайте с каким то там числом строк. Мне нужно возле каждой строки кнопку, при нажатии на которую в определенный столбец базы данных будет вписана информация, но вписана она должна быть только строго для той строки, возле которой была нажата кнопка. То есть вывод информации у нас циклом while, и когда я вывожу кнопку sumbit для строки (они так же выводятся циклом while возле каждой), при нажатии информация нужная попадает в базу для всех строк разом, а не для конкретно той возле которой была нажата кнопка
Мелкий
Отправлено: 23 Июля, 2018 - 11:52:58
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
myvin пишет:
при нажатии информация нужная попадает в базу для всех строк разом
Потому что именно это поведение и написано у вас в скрипте.
Для каждой строки проверяется, пользователь нажал кнопку? (любую кнопку!) Если да, то обновим строку. Каждую строку.
Что делать:
miketomlin пишет:
Идентификатор конкретной записи указывайте в ссылке, в имени кнопки и т.п. Потом обрабатывайте запрос.
miketomlin пишет:
Значение $ident должно как-то передаваться в обработчик.
И обновлять только переданную с формы строку.
----- PostgreSQL DBA
myvin
Отправлено: 23 Июля, 2018 - 12:01:11
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2018
Помог: 0 раз(а)
Мелкий пишет:
myvin пишет:
при нажатии информация нужная попадает в базу для всех строк разом
Потому что именно это поведение и написано у вас в скрипте.
Для каждой строки проверяется, пользователь нажал кнопку? (любую кнопку!) Если да, то обновим строку. Каждую строку.
Что делать:
miketomlin пишет:
Идентификатор конкретной записи указывайте в ссылке, в имени кнопки и т.п. Потом обрабатывайте запрос.
miketomlin пишет:
Значение $ident должно как-то передаваться в обработчик.
И обновлять только переданную с формы строку.
В том то всё и дело, что не получается почем то. Обновляется либо с самой нижней строки, независимо от того, на какую кнопку нажал, либо сразу для всех, если пытаешся что-либо изменить в коде (Добавление)
Мелкий пишет:
myvin пишет:
при нажатии информация нужная попадает в базу для всех строк разом
Потому что именно это поведение и написано у вас в скрипте.
Для каждой строки проверяется, пользователь нажал кнопку? (любую кнопку!) Если да, то обновим строку. Каждую строку.
Что делать:
miketomlin пишет:
Идентификатор конкретной записи указывайте в ссылке, в имени кнопки и т.п. Потом обрабатывайте запрос.
miketomlin пишет:
Значение $ident должно как-то передаваться в обработчик.
и обновляется для всех строк разом, весь столбец в mysql
Мелкий
Отправлено: 23 Июля, 2018 - 12:19:55
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Непосредственно внутри table не может быть form, кстати говоря. Внутри td - может быть.
Ваш браузер может ошибочную разметку переписывать странных образом.
И, опять же, где вы передаёте желаемый num_id с формы?
Возможно, у вас опыт разработки десктоп-приложений и вы просто не понимаете, когда именно работает php и соответствующую модель запрос-ответ, а не интерактивного приложения?
----- PostgreSQL DBA
myvin
Отправлено: 23 Июля, 2018 - 12:36:04
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2018
Помог: 0 раз(а)
Мелкий пишет:
Непосредственно внутри table не может быть form, кстати говоря. Внутри td - может быть.
Ваш браузер может ошибочную разметку переписывать странных образом.
И, опять же, где вы передаёте желаемый num_id с формы?
Возможно, у вас опыт разработки десктоп-приложений и вы просто не понимаете, когда именно работает php и соответствующую модель запрос-ответ, а не интерактивного приложения?
Нет, опыта у меня совсем нет, тут я полный нуб пока что, как говорится не побоюсь этого слова - дно )). Поэтому, увы.. и никто не может конкретным примером показать вот как в моем случае
miketomlin
Отправлено: 23 Июля, 2018 - 13:55:21
Частый гость
Покинул форум
Сообщений всего: 129
Дата рег-ции: Июль 2016
Помог: 5 раз(а)
Я вам варианты приводил:
Цитата:
Для изменения и т.п. можно использовать чекбоксы, индивидуальные формы, кнопки с собственными обработчиками и т.п.
Значение $ident должно как-то передаваться в обработчик.
Но если нет знаний и опыта, то тут конечно остается надеяться только на примеры, хотя и это не совсем правильно, потому что пример != готовое решение. Лучше заплатите кому-нибудь, если нужно срочно и нет желания учиться в экстремально ускоренном режиме.
myvin
Отправлено: 30 Июля, 2018 - 19:24:02
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2018
Помог: 0 раз(а)
все решилось проше, сделал скрытую форму, в которой присваивается конкретное значение переменной, добавил кнопку и обработчик в другом скрипте. На данный момент это для меня лучшее решение.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.