У меня есть небольшая проблема, я надеюсь, что вы сможете мне помочь.Вставьте несколько строк в БД, нажав только одну кнопку отправки
Прежде всего моей БД таблицы, вовлеченная выглядеть следующим образом:
+---------------+--------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| KlubID | varchar(11) | NO | | 0 | |
| Medlemsnummer | varchar(11) | NO | | 0 | |
| KlubType | varchar(128) | NO | | | |
| Handling | varchar(128) | NO | | | |
| Tidspunkt | timestamp | NO | | CURRENT_TIMESTAMP | |
+---------------+--------------+------+-----+-------------------+----------------+
Say я получил X записи, где «Обработка» равно Y в моей таблице позволяет назвать результаты P. Теперь я хотел бы взять все P и вставить строку foreach P, где значение «Обработка» теперь будет равно Q.
Проблема в том, что я хочу сделать вставку с помощью одной кнопки (submit), а не нескольких форм.
Заранее благодарю вас за помощь. Не стесняйтесь спрашивать больше информации, если это требует большей ясности.
/Nicki
EDIT: Для большей ясности
public static function find_todays_children() {
global $db;
$sql = "SELECT *
FROM (
SELECT *
FROM Handlinger
AS a
WHERE date(Tidspunkt) = curdate()
AND Tidspunkt = (
SELECT max(Tidspunkt)
FROM Handlinger
AS b
WHERE a.Medlemsnummer = b.Medlemsnummer
)
)
AS c
ORDER BY handling DESC, medlemsnummer";
return static::find_by_sql($sql);
}
Этот запрос возвращает выше, следующее.
+------+--------+---------------+----------+----------+---------------------+
| id | KlubID | Medlemsnummer | KlubType | Handling | Tidspunkt |
+------+--------+---------------+----------+----------+---------------------+
| 5786 | 0 | 1 | FK | Kommet | 2010-10-06 13:48:06 |
| 5787 | 0 | 2 | FK | Kommet | 2010-10-06 13:48:10 |
| 5789 | 0 | 4 | FK | Kommet | 2010-10-06 13:48:16 |
| 5790 | 0 | 3 | FK | G?et | 2010-10-06 13:48:27 |
+------+--------+---------------+----------+----------+---------------------+
Я хочу, чтобы иметь возможность вставить 3 строки, где поле «Обработка» является другим значением. Я могу сделать это с помощью HTML-формы с PHP, но я не могу понять, как это сделать, только щелкнув один раз ... Важно то, что не вставлять ничего, где самая последняя запись для определенного «Medlemsnummer» (user_id) уже равна значению "Gået"
Моя форма выглядит следующим образом:
...
if(isset($action->Handling) != "Kommet") {
$do_action = "Kommet";
} else {
$do_action = "Gået";
}
...
<section>
<form action="phineaslog_barn.php" method="post">
<label for="Status">Klub Navn: </label>
<input type="text" name="Medlemsnummer" value="<?php echo $child->Medlemsnummer; ?>" />
<input type="text" name="Handling" value="<?php echo $do_action; ?>" />
<input type="submit" name="submit" value="<?php echo $do_action; ?>" />
</form>
</section>
Я принимаю вас за ваше предложение и требую большей ясности. Используйте реальный пример. –
Ваш вопрос читается как побег из математического экзамена. Может быть, вы хотели бы использовать пример реальной жизни? – Extrakun
Вопрос немного неясен. Разумеется, я понимаю: вы просто хотите найти каждую строку, где значение «Обработка» равно Y, и заменить «Обработка» Q? Почему не просто 'UPDATE table SET Handling = Q WHERE Handling = Y'? – stevendesu