Я хочу вытащить 2 поля из базы данных MySQL и использовать их в 2 скрытых полях формы, а также позволить пользователю вводить данные в дополнительные поля формы. Я использую следующий код, чтобы сделать это:Вставка нескольких строк в базу данных MySQL из формы HTML
$yesterday = date('d/m/Y',strtotime("-1 days"));
$sql="SELECT acct_backup_servers.server_desc, acct_customer.customer from acct_backup_servers, acct_customer
where acct_backup_servers.cust_act=acct_customer.acct_no ";
$result=mysql_query($sql);
echo '<form action="http://www.bimotech.co.uk/admin/insert_backup_rec/index.php" method="post">
<table>
<tr>
<th width="20%" align="left" valign="top">Server</th>
<th width="20%" align="left" valign="top">Customer</th>
<th align="left" valign="top">Date</th>
<th width="25%" align="left" valign="top">Status</th>
<th width="30%" align="left" valign="top">Notes</th>
<th align="left" valign="top"></th>
</tr>';
while($rows=mysql_fetch_array($result)){
$server_notes = $rows['server_desc'];
echo "
<input type='hidden' name='server' value='".$rows['server_desc']."'>
<input type='hidden' name='customer' value='".$rows['customer']."'>
<tr>
<td valign='top'>".$rows['server_desc']."</td>
<td valign='top'>".$rows['customer']."</td>
<td valign='top'><input type='text' name='date' size='10' id='datepicker' value='".$yesterday."'></td>
<td valign='top'>
<select name='status'>";
$sql2 = mysql_query("SELECT cat_desc FROM acct_backup_category");
while ($row = mysql_fetch_array($sql2)){
echo "<option value='category'>" . $row['cat_desc'] . "</option>";
}
echo "</select></td>
<td valign='top'><textarea name='notes'></textarea></td>
<td valign='top'><input type='checkbox' name='completed'></td>
</tr>";
}
echo "</table>
</br>
<input type='submit' class='btn' value='Submit'>
</form>";
mysql_close();
Я имею установку страницы, что эта форма пост до и echo'd результатов, но все я получаю это последняя запись. Есть ли способ, чтобы я мог получить все результаты для каждой строки и опубликовать их за один проход в базу данных?
EDIT: PHP Echo ниже.
$backup_date = $_POST['date'];
$server_desc = $_POST['server'];
$customer = $_POST['customer'];
echo $backup_date;
echo $server_desc;
echo $customer;
Я очень новичок в PHP, так что ценю любую помощь на этом.
Далее EDIT:
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
foreach($customer as $key => $value) {
$date = $backup_date[$key];
$server = $server_desc[$key];
$customer_id = $value;
$backup_code = $status[$key];
$notes_field = $notes[$key];
$been_checked = $checked[$key];
mysql_query("INSERT INTO acct_backups (backup_date, server_code, cust_act, backup_code, notes, checked) VALUES ($date, $server, $customer_id, $backup_code, $notes_field, $been_checked)");
}
mysql_close();
Спасибо,
Джон
Не достаточно информации. Как вы эхом отдаете результаты? Я подозреваю, так как у вас есть значения формы с тем же именем, что вы не смотрите на массив, просто один элемент. Я не специалист по php, но вижу этот пост: http://stackoverflow.com/questions/3980228/multiple-http-get-parameters-with-the-same-identifier с этим предложением: «Если вы можете изменить поле name, чтобы включить [], тогда PHP создаст массив, содержащий все соответствующие значения. « –
Hi - Просто добавлена дополнительная информация. Я новичок в этом и нахожу свой путь вокруг PHP, поэтому буду признателен за любую помощь. –