|
|
|
| 1) В первом файле у меня стоят checkbox <input type='checkbox' name='item[]' value='%s' /> в которые вписываются значения "ID Вагона" из базы: т.е. я беру всего лишь числа пример: 2,8,13
они добавляются в массив
2) Затем я перехожу по ссылке и заполняю другие поля: Дата, Время, Место нах, Дата прибытия, Время Прибытия. Эти поля будут одинаковые для вагонов под ID 2,8,13
<form action="add_proslejivanie.php" method="post" id="form1">
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="16%"><img src="images/code.jpg" width="23" height="23" align="absmiddle" /> ID № вагона</td>
<td width="17%"><img src="images/cal.jpg" alt="" width="27" height="23" align="absmiddle" /> Дата</td>
<td width="16%"><img src="images/time.jpg" alt="" width="23" height="23" align="absmiddle" /> Время</td>
<td width="18%"><img src="images/z1.gif" alt="" width="23" height="23" align="absmiddle" /> Местонахождение</td>
<td width="16%"><img src="images/cal.jpg" alt="" width="27" height="23" align="absmiddle" /> Дата прибытия</td>
<td width="17%"><img src="images/time.jpg" alt="" width="23" height="23" align="absmiddle" /> Время прибытия</td>
</tr>
<tr>
<td><?
$a=$_POST['item'];
$ids = implode( ',', $_POST['item'] );
echo"$ids";
?></td>
<td><input name="data" type="text" size="10" value="<?php echo (date("Y-m-d "));?>"/></td>
<td><input name="time" type="text" size="6" value="<?php echo (date("G:i "));?>"/></td>
<td><input name="mesto" type="text" id="mesto" size="15" /></td>
<td><input name="datapr" value="<?php echo (date("Y-m-d "));?>" type="text" size="8" /></td>
<td><input name="vremeapr" type="text" id="zayavki" size="10" value="<?php echo (date("G:i "));?>"/></td>
<input name="aidi" type="hidden" value="<? $a ?>">
<input name="idz" type="hidden" value="<? $_POST['item']; ?>">
</tr>
</table>
<table border="1" cellspacing="0" cellpadding="0">
<tr><td>Дополнительная информация:</td></tr>
<tr><td>
<p><textarea name="dopinfo" cols="70" rows="4"></textarea></p></td></tr></table>
<p>
<label>
<br /> <br /><input type="submit" name="Submit" id="Submit" value=" Добавить " />
</label>
</p>
</form>
3) сам файл add_proslejivanie.php содержит запись данных в таблицу:
<?php
if (isset($aidi) && isset($idz) && isset($data) && isset($time) && isset($mesto) && isset($datapr) && isset($vremeapr))
{
$result = mysql_query ("INSERT INTO proslej (id_vag,data,time,mesto,datapr,vremeapr,dopinfo,idz) VALUES ('$aidi','$data','$time','$mesto','$datapr','$vremeapr','$dopinfo','$idz')" );
if ($result == 'true') { echo "
Вы успешно добавили:
";}
else { echo "<p> Произошла ошибка</p> " ;}
}
else
{
echo "<p>Вы не ввели все поля.</p> " ;
}
?>
Теперь проблема:
Если выбрать 1 вагон, то всё записывается, а если выбрать вагоны например 2,8,13 то после завершения в таблице будет только одна строка и одно значение в id_vag : 0.
А мне нужно 3 строки абсолютно одинаковые, кроме значение id_vag соответсвенно 2, 8 , 13. | |
|
|
|
|
|
|
|
для: Bourov
(14.07.2009 в 13:59)
| | Вы бы попроще сказали - как выглядит форма?
Не php-текст её порождающий, а html-код формы. | |
|
|
|
|
 11.1 Кб |
|
|
для: Trianon
(14.07.2009 в 14:02)
| | Форма выглядит как в присоединёном файле.
В ID № вагона записались данные 2,15 следовательно после выполнения action
будет 2 строчки, в одну из которых пойдёт 2 в поле ID № вагона, в другую 15. | |
|
|
|
|
|
|
|
для: Bourov
(14.07.2009 в 14:12)
| | Вот форма из этого файла.
<form action="add_proslejivanie.php" method="post" id="form1">
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="16%"><img src="images/code.jpg" width="23" height="23" align="absmiddle" /> ID № вагона</td>
<td width="17%"><img src="images/cal.jpg" alt="" width="27" height="23" align="absmiddle" /> Дата</td>
<td width="16%"><img src="images/time.jpg" alt="" width="23" height="23" align="absmiddle" /> Время</td>
<td width="18%"><img src="images/z1.gif" alt="" width="23" height="23" align="absmiddle" /> Местонахождение</td>
<td width="16%"><img src="images/cal.jpg" alt="" width="27" height="23" align="absmiddle" /> Дата прибытия</td>
<td width="17%"><img src="images/time.jpg" alt="" width="23" height="23" align="absmiddle" /> Время прибытия</td>
</tr>
<tr>
<td>2,15</td>
<td><input name="data" type="text" size="10" value="2009-07-14 "/></td>
<td><input name="time" type="text" size="6" value="13:07 "/></td>
<td><input name="mesto" type="text" id="mesto" size="15" /></td>
<td><input name="datapr" value="2009-07-14 " type="text" size="8" /></td>
<td><input name="vremeapr" type="text" id="zayavki" size="10" value="13:07 "/></td>
<input name="aidi" type="hidden" value="">
<input name="idz" type="hidden" value="">
</tr>
</table>
<table border="1" cellspacing="0" cellpadding="0">
<tr><td>Дополнительная информация:</td></tr>
<tr><td>
<p><textarea name="dopinfo" cols="70" rows="4"></textarea></p></td></tr></table>
<p>
<label>
<br /> <br /><input type="submit" name="Submit" id="Submit" value=" Добавить " />
</label>
</p>
</form>
|
ID вагонов в элементах формы не видны вообще. | |
|
|
|
|
|
|
|
для: Trianon
(14.07.2009 в 14:18)
| | Объясню по порядку.
На 1ой странице у меня таблица с чекбоксами. Выбираю пару чекбоксов ( в чекбоксах ID вагона)
Перехожу на 2ую страницу, чью форму я прислал. (соответсвенно там значения 2,15 уже с первой страницы) вывел я 2 и 15 через функицю
<? $ids = implode( ',', $_POST['item'] );
echo"$ids";
?>
Что мне нужно:
Чтобы не заполнять по 100 раз одинаковую информацию (ведь по факту разные только ID вагона) я хочу вытащить из массива эти значения 2 и 15
и вставить в базу их как 2 строчки:
ID вагона / Дата / Время / Местонахождение / Дата прибытия / Время прибытия
2 ............... одинаковое
15 всё остальное........ одинаковое | |
|
|
|
|
|
|
|
для: Bourov
(14.07.2009 в 13:59)
| | >><input name="aidi" type="hidden" value="<? $a ?>">
>><input name="idz" type="hidden" value="<? $_POST['item']; ?>">
одни значения для разных инпутов?
могу предположить, что у вас в таблице proslej поле id_vag числовое, а вы пытаетесь вставить строку $aidi.
покажите структуру таблицы | |
|
|
|
|
|
|
|
для: ride
(14.07.2009 в 14:19)
| | Числовое.
CREATE TABLE `proslej` (
`id` int(20) NOT NULL auto_increment,
`id_vag` int(20) NOT NULL default '0',
`data` date NOT NULL default '0000-00-00',
`time` time NOT NULL default '00:00:00',
`mesto` varchar(255) NOT NULL default '',
`dopinfo` text NOT NULL,
`datapr` date NOT NULL default '0000-00-00',
`vremeapr` time NOT NULL default '00:00:00',
`idz` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=29 ; | |
|
|
|
|
|
|
|
для: Bourov
(14.07.2009 в 13:59)
| | > А мне нужно 3 строки абсолютно одинаковые, кроме значение id_vag соответсвенно 2, 8 , 13.
Если вам нужно 3 строки в базе, то запрос должен выполняться либо 3 раза в цикле либо содержать три набора значений в скобках, иначе удачи не видать.... | |
|
|
|
|
|
|
|
для: buldovsky
(14.07.2009 в 14:24)
| | Вот и хочу узнать как в цикле загонять в базу данных, когда одно поле берётся из массива, а остальные из формы, потом 2ое поле из массива, и опять всё остальное из формы | |
|
|
|
|
|
|
|
для: Bourov
(14.07.2009 в 14:28)
| |
<?php
$query = "INSERT INTO proslej (id_vag,data,time,mesto,datapr,vremeapr,dopinfo,idz) VALUES ";
foreach ($_POST['item'] as $id) $query .= "('$id','$data','$time','$mesto','$datapr','$vremeapr','$dopinfo','$idz'),";
// удаляем последнюю запятую
$query{strlen($query)-1} = "";
?>
|
| |
|
|
|
|
 159.6 Кб |
|
|
для: buldovsky
(14.07.2009 в 14:34)
| | Спасибо. Попробую.
В целом свою задачу выложил в приложенном файле.
Может есть более оптимальный способ для её выполнения. | |
|
|
|
|
|
|
|
для: Bourov
(14.07.2009 в 14:58)
| | На мой взгляд неразумно заполнять базу одинаковыми строками, если разница только в поле id. Храните информацию о всем составе одной строкой. А для вагонов которые вы прослеживаете создайте отдельную таблицу в которой каждому вагону соответствует id состава. И еще зачем хранить date и time в разных полях таблицы? | |
|
|
|