Как отправлять и обрабатывать значения из формы внутри таблицы

У меня есть HTML-таблица с произвольным количеством строк, каждая с 4 столбцами. И идея состоит в том, чтобы позволить пользователю редактировать любую из этих строк, а затем сохранить результат. Эти изменения должны быть сохранены в базе данных. Но у меня есть несколько проблем.

Я нашел несколько сообщений о stackoverflow, указывающих на то, как вы должны подходить к этому, но ни один совершенно не полезен в моем случае. Вот как это выглядит, когда пользователь редактирует мою таблицу (хотя у меня сейчас только одна строка, их может быть несколько).

мой стол http://oi58.tinypic.com/2gvq9nb.jpg

И, конечно же, есть кнопка отправки, которая переводит мой файл php с именем что-то вроде «handle_edit.php».

Сейчас еще один пост на stackoverflow Об этом указывалось, что я должен использовать какой-то цикл foreach для редактирования одной строки в таблице SQL на строку в моей таблице HTML. Моя версия этого цикла в «handle_edit.php» выглядит следующим образом:

foreach( $_POST['appearances'] as $appearances ) {
$goals = $_POST['goals'];
$assists = $_POST['assists'];
$name = ??????? //How to I do this?

mysqli_query($connection, "UPDATE players
SET appearances=$appearances, goals=$goals, assists=$assists
WHERE name=$name");
}

Прежде всего. foreach Цикл должен содержать выражение массива, и компилятор говорит мне, что сейчас это не так. Но я понятия не имею, как посчитать количество строк. В теме, которую я связал выше, они делают что-то похожее на это, но я не думаю, что полностью понимаю, что они делают, так как мой foreach цикл не работает.

Во-вторых, поскольку столбец имени в таблице не является полем ввода, я не знаю, как отправить его на эту страницу с остальной информацией. Мне нужно как-то это сделать, поскольку я хочу определить, какую строку редактировать, исходя из предоставленного имени. Каждый из игроков в этой таблице SQL имеет уникальный идентификатор игрока. Могу ли я использовать это как-нибудь?

Может быть, я подхожу к этому неправильно? Есть ли более жизнеспособное решение?

Пожалуйста, скажите мне, если вам нужен дополнительный код.

Заранее спасибо!

0

Решение

Прежде всего, имя переменной.
вам нужно добавить <input type='hidden' name='name' value='<*YOUR WAY OF GETTING THE NAME*>'/> к вашей форме. если вы сделаете это, вы можете получить значение имени в цикле foreach с помощью $_POST['name'], Для получения дополнительной информации о том, как сделать форму для PHP, смотрите здесь: http://www.w3schools.com/php/php_forms.asp

Во-вторых, неверно использовать строку sql. Вы не можете вводить имена переменных в строке. Я предлагаю сначала объявить строку sql следующим образом:

$sql = "UPDATE players SET appearances=" . $appearances . ", goals=" . $goals . ", assists=" . $assists . " WHERE name=". $name;

Затем установите соединение и выполните запрос следующим образом:

mysqli_query($connection, $sql);

для проблемы foreach я предлагаю отладку с использованием var_dump() метод и посмотреть, если вы действительно получите массив с $_POST['appearances'],

Надеюсь, это поможет.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]