|
|
|
|
|
для: lilu
(10.04.2007 в 18:31)
| | Теперь приступайте к п 2. | |
|
|
|
|
|
|
|
для: Trianon
(10.04.2007 в 17:52)
| | Всё заработало -- спасибо вам!!!! И хватило же терпения....:))) | |
|
|
|
|
|
|
|
для: lilu
(10.04.2007 в 17:35)
| | Вот видите?
Вот этот цикл
foreach($chk1 as $num => $value)
{
if($value == "on")
{
$rez2=mysql_query("UPDATE smi SET name_smi=".$_POST['new_name_smi[$id]'].",
tel_kont=".$_POST['new_phone_smi[$id]'].", e-mail=".$_POST['new_mail_smi[$id]'].", grafik=".$_POST['new_gr_smi[$id]'].", ed_tarif=".$_POST['new_ed_tarif[$id]'].", tarif=".$_POST['new_tar_smi[$id]']."
WHERE id_smi = '$num' ",$db);
if($rez2) { echo "изменения приняты<br>";}
}//if($value == "on")
}// foreach($chk as $num => $value
нужно построить по-другому.
1. if($value == 'on') не требуется. Дело в том, что неотмеченные чекбоксы в параметры скрипта просто не передаются - там будут лишь отмеченные, соответственно, в $value кроме on ничего и не будет.
2. А вот $num, который на самом деле является нашим id - нам может помочь.
3. К массивам в POST адресуются не так $_POST['new_name_smi[$id]'], а так $_POST['new_name_smi'][$id]
Соответственно:
<?
foreach($chk1 as $id => $value)
{ // чтобы не путаться - вынем значения из параметров.
$name = $_POST['new_name_smi'][$id];
$phone = $_POST['new_phone_smi'][$id];
$mail = $_POST['new_name_smi'][$id];
$grafik = $_POST['new_gr_smi'][$id];
$ed = $_POST['new_ed_tarif'][$id];
$tar = $_POST['new_tar_smi'][$id];
// теперь можно написать запрос.
$rez2=mysql_query("UPDATE smi
SET
name_smi='$name' ,
tel_kont='$phone',
`e-mail`=$mail,
grafik='$grafik',
ed_tarif='$ed',
tarif='$tar'
WHERE id_smi = '$id' ",$db);
if($rez2) echo "изменения для строки $id приняты<br>";
}
|
| |
|
|
|
|
|
|
|
для: Trianon
(10.04.2007 в 17:27)
| | Array
(
[change] => изменить
[new_name_smi] => Array
(
[0] => Иванов88888888888
[1] => Петров
и т.д.
)
[new_phone_smi] => Array
(
[0] => 22-85-34
[1] => 44-18-15
[2] => 22-46-93
.....)
и так все переменные.....
[chk1] => Array
(
[1] => on
)
)
Иванов88888888888 - это изменённое значение..., т.е. понимает где и на что поменять но не запонимает | |
|
|
|
|
|
|
|
для: lilu
(10.04.2007 в 16:24)
| | >Должно
>только вот даже если в цикле echo $_POST['new_name_smi[$id]']; -- в ответ - ничего...
>Я уже не говорю про update
echo '<pre>';print_r($_POST); что показывает? | |
|
|
|
|
|
|
|
для: lilu
(10.04.2007 в 16:24)
| | Я бы страшно удивился если бы это заработало... даже не знаю с чего тут начинать править... | |
|
|
|
|
|
|
|
для: Trianon
(10.04.2007 в 16:20)
| | Должно
только вот даже если в цикле echo $_POST['new_name_smi[$id]']; -- в ответ - ничего...
Я уже не говорю про update | |
|
|
|
|
|
|
|
для: lilu
(10.04.2007 в 16:17)
| | >а таблица у меня в форме просто этого я не написала (я думаю это само собой понятно)
Собственно, я тоже это предполагал. Но тогда всё должно работать. | |
|
|
|
|
|
|
|
для: Trianon
(10.04.2007 в 15:55)
| | Вы меня простите я не спец, но $change - это кнопка она описана выше просто (в шапке выводимой таблицы), а таблица у меня в форме просто этого я не написала (я думаю это само собой понятно)
<form action="<?php echo $_SERVER['REQUEST_URI']?>" method="post">
<?
$rez = mysql_query("SELECT * FROM table",$db);
if($rez)
{
echo "<table border=1 bgcolor='#F1F1F1'>\n";
echo "<tr><td>тел</td><td>наимен.</td><td>работа</td><td>адрес</td>
<td><input name='CHANGE' type='SUBMIT' value='изменить'></td></tr>";
while($myrow=mysql_fetch_array($rez))
{ $id = $myrow['id'];
echo "<tr>
<td><input type =\"text\" name=\"new_phone[$id]\" value =\"$myrow[2]\" size=\"10\"></td>
<td><input type =\"text\" name=\"new_name[$id]\" value =\"$myrow[3]\" size=\"10\"></td>
<td><input type =\"text\" name=\"new_job[$id]\" value =\"$myrow[4]\" size=\"10\"></td>
<td><input type =\"text\" name=\"new_adres[$id]\" value =\"$myrow[5]\" size=\"10\"></td>
<td><input type=\"checkbox\" name=\"chk1[$id]\"></td>
</tr>\r\n";
}
echo "</table>";
if($change)
{ $chk1 = $_POST['chk1'];
if($chk1)
{
foreach($chk1 as $num => $value)
{
if($value == "on")
{
$rez2=mysql_query("UPDATE smi SET name_smi=".$_POST['new_name_smi[$id]'].",
tel_kont=".$_POST['new_phone_smi[$id]'].", e-mail=".$_POST['new_mail_smi[$id]'].", grafik=".$_POST['new_gr_smi[$id]'].", ed_tarif=".$_POST['new_ed_tarif[$id]'].", tarif=".$_POST['new_tar_smi[$id]']."
WHERE id_smi = '$num' ",$db);
if($rez2) { echo "изменения приняты<br>";}
}//if($value == "on")
}// foreach($chk as $num => $value
}// if($chk)
}
}?>
</form>
|
Я когда echo $_POST['new_name_smi[$id]']; ничего вообще....
Второй момент на логику не влияет, но эти проверки напишу обязательно.... | |
|
|
|
|
|
|
|
для: lilu
(10.04.2007 в 15:02)
| | $change - это не кнопка, а переменная.
Вы нигде её не определяете.
Если имеется в виду что $change = @$_POST['change']; то надо так и писать.
так... если уж мы перешли к деталям, то я не вижу ни этой кнопки, ни самой формы вокруг таблицы.
Кстати, в форме нужно не забыть поставить method=post . Я - в своем примере - забыл. :)
Ну а 2.... Это надо один раз усвоить. Так чтобы стало понятно, откуда ноги растут. И тогда вы научитесь эти вещи ставить на автомате, и они не будут отвлекать Вас от логики алгоритма. | |
|
|
|
|