Добрый день,
Я сначала запущу с цели, которую я пытаюсь выполнить и затем дать очень простому образцу того, что я должен сделать.
Вместо того, чтобы собрать несколько переменных и назвать их с ключами индивидуально, я решил подать и использовать структуру массива для обработки всех исходных данных того же типа и правил. После того как у меня есть переменные, я проверю против них и если 'хорошо' хранят их в таблице MySQL. Таблица будет содержать информацию для потребителей и должна будет сохранить несколько строк того же типа информации.
Я не учту часть проверки этого вопроса, потому что я чувствую, что должен сначала понять основы.
<form action="?" method="POST" name="Form">
Member 1 First Name:<input type="text" name="MemberFirstName[]" /><br />
Member 1 Last Name: <input type="text" name="MemberLastName[]" /><br />
Member 1 Email: <input type="text" name="MemberEmail[]" /><br />
Member 2 First Name:<input type="text" name="MemberFirstName[]" /><br />
Member 2 Last Name: <input type="text" name="MemberLastName[]" /><br />
Member 2 Email: <input type="text" name="MemberEmail[]" /><br />
Member 3 First Name:<input type="text" name="MemberFirstName[]" /><br />
Member 3 Last Name: <input type="text" name="MemberLastName[]" /><br />
Member 3 Email: <input type="text" name="MemberEmail[]" /><br />
<input type="submit" name="submit" value="Continue" />
</form>
Я надеюсь, что каждый вход, данный для Имени (обязательное поле), генерирует уникальный ключ для той конкретной записи и не перезапишет любые вводимые данные. Поскольку я хранил информацию от страницы до страницы (форма контроля), я превращаю переменные POST в Переменные сеанса, затем хранящие в mysql базе данных в конце. Моя надежда состоит в том, чтобы иметь:
<?php
$conn = mysql_connect("localhost", "username", "password");
mysql_select_db("DBname",$conn);
$sql = "INSERT INTO tablename VALUES ('$_SESSION[Member1FirstName]', '$_SESSION[Member1LastName]', '$_SESSION[Member1Email]', '$_SESSION[Member2FirstName]', '$_SESSION[Member2LastName]', '$_SESSION[Member2Email]', '$_SESSION[Member1FirstName]', '$_SESSION[Member3LastName]', '$_SESSION[Member3Email]')";
$result = mysql_query($sql, $conn) or die(mysql_error());
Header ("Location: completed.php");
?>
Где Member1, Member2 и значения Member3 появятся на их собственной строке в таблице. Я ЗНАЮ, что мой код является неверным, но я даю первый выстрел в полную бизнес-цель, которой я пытаюсь достигнуть и пытаюсь изучить, как кодировать правильный путь.
Я очень, очень плохо знаком с программированием, таким образом, любой 'детский совет' значительно ценится.
В зависимости от имен столбцов следующие
INSERT INTO tablename
VALUES ('$_SESSION[Member1FirstName]', '$_SESSION[Member1LastName]', '$_SESSION[Member1Email]'),
('$_SESSION[Member2FirstName]', '$_SESSION[Member2LastName]', '$_SESSION[Member2Email]'),
('$_SESSION[Member1FirstName]', '$_SESSION[Member3LastName]', '$_SESSION[Member3Email]')"
будут работать с mysql, см. INSERT .
Однако это ответ, который приведет к большим проблемам, если вы не очистите ввод.
РЕДАКТИРОВАТЬ: Под дезинфекцией понимается атака sql-инъекция , при которой строки, передаваемые непосредственно в базу данных, могут содержать конструкции, которые позволят злоумышленнику изменить пароли базы данных или обновить или уничтожить данные.
РЕДАКТИРОВАТЬ2: Что касается синтаксиса php, я думаю , что этот вопрос имеет разумные ответы, из которых вы можете поучиться.
Если вам нужно связать поля в определенное количество наборов и все равно хотите, чтобы они были в массиве, тогда вам следует поместить индекс в имя. Пустой индекс полезен только тогда, когда вы не знаете, сколько элементов будет содержать конечный массив.
Member 1 First Name:<input type="text" name="MemberFirstName[1]" /><br />
Member 1 Last Name: <input type="text" name="MemberLastName[1]" /><br />
Member 1 Email: <input type="text" name="MemberEmail[1]" /><br />