|
|
|
| Есть скрипт,в котором я вывожу из бд построчно товар и его цену. Цена в текстовом поле, значение которого можно изменять. и кнопко submit, по которой изменения в цене должны вноситься в бд. только вот проблема в том, что изменения вносятся только в последнюю запись а не во все измененные.... | |
|
|
|
|
|
|
|
для: alfred
(20.04.2007 в 17:02)
| | Значит запрос к базе неправильный. | |
|
|
|
|
|
|
|
для: alfred
(20.04.2007 в 17:02)
| | код в студию.... | |
|
|
|
|
|
|
|
для: hammet
(20.04.2007 в 17:52)
| | пишу коротко. тут я вывожк товары и цену
while($b=mysql_fetch_row($qwery)){
echo "
<input type='hidden' name='idp' value='{$b[0]}' />
<span title='name'>{$b[1]}</span>
<input type='text' name='price' value='{$b[4]}' size='6' />
}
|
а тут сохраня. изменения
$idp1=$_POST["idp"];
$pr1=$_POST["price"];
$q=mysql_query("update products set price='$pr1' where id='$idp1'");
|
| |
|
|
|
|
|
|
|
для: alfred
(20.04.2007 в 18:17)
| | >пишу коротко
напрасно.
Интересно посмотреть где у вас теги <form></form> и что находится между ними | |
|
|
|
|
|
|
|
для: hammet
(20.04.2007 в 18:23)
| | рекомендую во время вывода не генерировать форму, а ссылку(ну или кнопку image).
что то типа <a href="delete.php?id={$id}"> | |
|
|
|
|
|
|
|
для: hammet
(20.04.2007 в 18:26)
| | >рекомендую во время вывода не генерировать форму, а ссылку(ну или кнопку image).
не.. так не подходит - нужно, чтоб таблицей, все товары сразу можно было изменить....
а вот код целиком....
<form method="post" action="overprice.php">
<table style='border:1 solid white; background-color: #999999; color: black;' width='600' align='center'>
<?php
// generating a table for variants saving
include("mylp.php");
$link=mysql_connect($myhost,$mylogin,$mypwd) or die(mysql_error());
mysql_select_db("mydb");
// geting products id
if(isset($_POST["id"])){
$rq=mysql_query("select * from products where id_label={$_POST['id']}");
while($b=mysql_fetch_row($rq))
{
echo "
<tr>
<td>
<input type='hidden' name='idp' value='{$b[0]}' /></td>
<td align='left'>
<span title='Name' style=' font-weight : bold; font-size: 12pt; '>{$b[1]}<br /> </span>
</td>
<td align='right'> </td>
</tr>
<tr>
<td> </td>
<td>
<span title='header' style='font-size:10pt; '> {$b[2]} </span>
</td>
<td><span title='price' style='color:#990000'><b><input type='text' name='price' value='{$b[4]}' size='6' /> y.e.</b></span></td>
</tr>
<tr>
<td colspan='4'>
<hr align='right' width='98%' size='1' color='#990000' /></td>
<td align='left' valign='top'> </td>
</tr>
";
}
echo "<tr align='right'><td colspan='3'><input type='submit' value='Сохранить' /></td></tr>";
}
mysql_close($link);
?>
</table>
</form>
<?php
include("mylp.php");
$link2=mysql_connect($myhost,$mylogin,$mypwd) or die(mysql_error());
mysql_select_db("mydb");
$idp1=$_POST["idp"];
$pr1=$_POST["price"];
//change price of product
$q=mysql_query("update products set price='$pr1' where id='$idp1'");
if(mysql_affected_rows()!=0){
echo "Цена в товаре ".$idp1." успешно изменена на ".$pr1." y.e.";
}
?>
|
| |
|
|
|
|
|
|
|
для: alfred
(20.04.2007 в 18:47)
| | У вас идет попытка сформировать два независимых массива:
idp - идентификаторы продукта
price - цены
поскольку, имена в форме скалярные, а не массивные - все значения, кроме последних - теряются.
Чтобы они не терялись - нужно написать теги полей примерно так.
<input type='hidden' name='idp[]' value='{$b[0]}' />
<input type='text' name='price[]' value='{$b[4]}' size='6' />
|
Тут есть два замечания
1. скрытому полю отдельный столбец html-таблицы не нужен - он вообще места на листе не занимает.
2. массивы всё равно останутся независимыми, и обрабатывать их будет неудобно.
Лучше hidden-поле вообще убрать, а цену сделать индексированной идентификатором продукта:
<input type='text' name='price[{$b[0]}]' value='{$b[4]}' size='6' />
|
В обработчике придется пробежаться по массиву price и для каждой пары ключ - значение построить и выполнить отдельный sql-запрос update | |
|
|
|