1) данные обновляются сразу в 3- таблицах. Поэтому переходить к update_name.php нужно только после обновления последней таблицы- в куске кода строки 99-120 - нужно удалить лишние переходы: PHP: $q="update name set fam='$fam',name='$imia',otch='$otch', dolzhnost='$dolzhnost', otdel='$otdel' where id='{$_SESSION['record_id']}'"; $ath = mysql_query($q); if($ath) { $q2="update person set ulisa='$id_ul',dom='$id_dom',korpus='$id_korpus', bithday='$id_bithday', kvartira='$id_kvar', home_phone='$id_hph', mob_phone='$id_mph', mail='$id_mail' where id='{$_SESSION['record_id']}'"; $ath2 = mysql_query($q2); if($ath2) { $q3="update other set comment='$id_comment' where id='{$_SESSION['record_id']}'"; $ath3 = mysql_query($q3); if($ath3) { header('Location: update_name.php'); } } } 2) один лишний завершающий тэг form в строке 191: Код (Text): <center> <form action="editform_name.php" method="post"> <table border=5> <br><br><br><br><br><br><br><br> <tr><basefont face=\"Arial, sans-serif\" size=3>Данные сотрудника:</tr> <tr><td><basefont face=\"Arial, sans-serif\" size=3>Фамилия:</td> <td><input type=text size=30 name=fam value=<? echo $fam; ?>></basefont></td></tr> <tr><td><basefont face=\"Arial, sans-serif\" size=3>Имя:</td> <td><input type=text size=30 name=name value=<? echo $imia; ?>></basefont></td></tr> <tr><td><basefont face=\"Arial, sans-serif\" size=3>Отчество:</td> <td><input type=text size=30 name=otch value=<? echo $otch; ?>></basefont></td></tr> <tr><td><basefont face=\"Arial, sans-serif\" size=3>Должность:</td> <td><? echo $form_dolj; ?></basefont></td></tr> <tr><td><basefont face=\"Arial, sans-serif\" size=3>Отдел:</td> <td><? echo $form_otd; ?></basefont></td></tr> </table></center> <center> <table border=5> <tr><basefont face=\"Arial, sans-serif\" size=3>Остальные данные:</tr> <tr><td><basefont face=\"Arial, sans-serif\" size=3>Дата рождения:</td> <td><input type=text size=30 name=bithday value=<? echo $id_bithday; ?>></basefont></td></tr> <tr><td><basefont face=\"Arial, sans-serif\" size=3>Улица:</td> <td><input type=text size=30 name=ulisa value=<? echo $id_ul; ?>></basefont></td></tr> <tr><td><basefont face=\"Arial, sans-serif\" size=3>Дом:</td> <td><input type=text size=30 name=dom value=<? echo $id_dom; ?>></basefont></td></tr> <tr><td><basefont face=\"Arial, sans-serif\" size=3>Корпус:</td> <td><input type=text size=30 name=korpus value=<? echo $id_korpus; ?>></basefont></td></tr> <tr><td><basefont face=\"Arial, sans-serif\" size=3>Квартира:</td> <td><input type=text size=30 name=kvartira value=<? echo $id_kvar; ?>></basefont></td></tr> <tr><td><basefont face=\"Arial, sans-serif\" size=3>Домашний тел:</td> <td><input type=text size=30 name=home_phone value=<? echo $id_hph; ?>></basefont></td></tr> <tr><td><basefont face=\"Arial, sans-serif\" size=3>Мобильный телефон:</td> <td><input type=text size=30 name=mob_phone value=<? echo $id_mph; ?>></basefont></td></tr> <tr><td><basefont face=\"Arial, sans-serif\" size=3>E-Mail:</td> <td><input type=text size=30 name=mail value=<? echo $id_mail; ?>></basefont></td></tr> <tr><td valign=top>Другая информация:</td> <td><textarea rows=5 cols=24><? echo $id_comment;?></textarea></td></tr> <tr><td colspan=2 align=center><input type=submit name=update value=Обновить></td></tr> </table></form></center> </body></html>"; 3) если по прежнему не работает, то понадобятся структуры всех новых таблиц- person,comment, otdel
Пока писал вам вопрос, сам нашёл ошибку Надо было в условии писать: ...where id_name='{$_SESSION['record_id']}'"; а не id= Спасибо, за помощь с редактированием!
В чём у меня ошибка тут, почему выводит по 1 последней записи из таблицы, вместо всех, что есть? PHP: <html> <HEAD> <META http-equiv=content-type content="text/html; charset=windows-1251"> </HEAD> <body bgcolor = "0d6666"> <br><br><br><br><br> <center><h2>Формы</h2></center> <table align="center"border=5> <tr align="center"> <td><font color="77dd77"><font size="3px"><b>Название формы:</b></font></font></td> <td><font color="77dd77"><font size="3px"><b>Сроки обработки:</b></font></font></td> <td><font color="77dd77"><font size="3px"><b>Отдел</b></font></font></td> <td><font color="77dd77"><font size="3px"><b>Сотрудник</b></font></font></td> <td><font color="ff00gg"><font size="3px"><b>Редактирование</b></font></font></td> </tr> <?php $link = mysql_connect("localhost", "root","") or die("Could not connect"); mysql_select_db("stat_forms") or die("Could not select database"); $ath = mysql_query("SELECT * FROM forms ORDER BY nazv"); if($ath) while($form = mysql_fetch_array($ath)) { $form_id=$form['id']; $form_nazv=$form['nazv']; $form_obr=$form['period_obr']; $form_otdel=$form['otdel']; $form_id_name=$form['id_sotr']; } $ath2 = mysql_query("SELECT * FROM name WHERE id=".$form_id_name); if($ath2) while($sotr = mysql_fetch_array($ath2)) { $sotr_fam=$sotr['fam']; } { echo "<tr><td><font color=\"00cccc\">".$form_nazv."</font></td><td><font color=\"00cccc\">".$form_obr."</font></td><td><font color=\"00cccc\">".$form_otdel."</font></td><td><font color=\"00cccc\">".$sotr_fam."</font></td> <td><a href=editform_form.php?id=".$form_id.">Редактировать</a></td></tr>"; } echo "</table>"; ?> </table> </body> </html> И ещё одно! Почему у меня на просмотр слова с использованием пробелов не выводятся, т.е. Если я ввёл где то "Начальник отдела", то на просмотр у меня выводит лишь слово "Начальник".. Как это понять???
PHP: <?php session_start(); $dblocation = "localhost"; $dbname = "stat_forms"; $dbuser = "root"; $dbpassword = ""; $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpassword); if (!$dbcnx) { echo( "<html><body><P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P></body></html>" ); exit(); } if (!@mysql_select_db($dbname, $dbcnx)) { echo( "<html><body><P>Невозможно подключиться к БД.</P></body></html>" ); exit(); } if(isset($_GET['id'])) { //передан id записи для редактирования $ath = mysql_query("SELECT * FROM forms WHERE id=".$_GET['id']); if($ath) { //присваивание переменных для дальнейшего вызова! $form = mysql_fetch_array($ath); $form_nazv=$form['nazv']; $form_obr=$form['period_obr']; $form_otdel=$form['otdel']; //код сотрудника $sotrudnik=$name['id_sotr']; // добавлено-сохраняем в сессионной переменной id записи $_SESSION['record_id']=$_GET['id']; } else { echo( "<html><body><P>{$_GET['id']}-Запись не найдена</P></body></html>" ); exit(); } } elseif(isset($_POST['update'])) { $form_nazv=mysql_real_escape_string($_POST["nazv"]); $form_obr=mysql_real_escape_string($_POST["period_obr"]); $form_otdel=$_POST["otdel"]; //!!! код сотрудника!!! $sotrudnik=$_POST["sotrudnik"]; $q="update forms set nazv='$form_nazv',period_obr='$form_obr',otdel='$form_otdel', id_sotr='$sotrudnik' where id='{$_SESSION['record_id']}'"; $ath = mysql_query($q); if($ath) { header('Location: update_name.php'); } } echo"<html><body bgcolor = \"0d6666\">"; //Как вместо этой формы сделать выпадающий список с полями ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО(fam,name,otch) ??? // точно также как с отделами - получаешь список сотрудников и формирушь список - в качестве атрибута value берешь код сотрудника // а в качестве описания комбинацию полей fam,name, otch $query1="SELECT * FROM name ORDER BY fam,name "; $result1=mysql_query($query1); $form_sotrudnik=" <select type=class name=sotrudnik>"; while ($row=mysql_fetch_array($result1, MYSQL_ASSOC)) { $name=$row['fam'].' '.$row['name'].' '.$row['otch']; if($sotrudnik==$row['id']) { $form_sotrudnik.="<option value={$row['id']} selected>$name</option>\n"; } else { $form_sotrudnik.="<option value={$row['id']}>$name</option>\n"; } } $form_sotrudnik.="</select>"; $query2="SELECT otdel FROM otdel ORDER BY otdel "; $result2=mysql_query($query2); $form_otd=" <select type=class name=otdel>"; while ($num_otd=mysql_fetch_array($result2, MYSQL_ASSOC)) { // !!!! текущая должность должна быть выбрана + элементы массива в фигурные скобки !!!! if($form_otdel==$num_otd['otdel']) { $form_otd.="<option value={$num_otd['otdel']} selected>{$num_otd['otdel']}</option>\n"; } else { $form_otd.="<option value={$num_otd['otdel']}>{$num_otd['otdel']}</option>\n"; } } $form_otd.="</select>"; mysql_free_result($result2); ?> <center> <form action="editform_form.php" method="post"> <table border=5> <br><br><br><br><br><br><br><br> <tr><h2>Формы</h2></tr> <tr><td><font color="00cccc"><font size="3px">Название формы:</font></font></td> <td><input type=text size=30 name=fam value=<?php echo $form_nazv; ?>></td></tr> <tr><td><font color="00cccc"><font size="3px">Период обработки:</font></font></td> <td><input type=text size=30 name=name value=<?php echo $form_obr; ?>></td></tr> <tr><td><font color="00cccc"><font size="3px">Отдел:</font></font></td> <td><?php echo $form_otd; ?></td></tr> <tr><td><font color="00cccc"><font size="3px">Сотрудник:</font></font></td> <td><?php echo $form_sotrudnik;?></basefont></td></tr> <tr><td colspan=2 align=center><input type=submit name=update value=Обновить></td></tr> </table></form></center> </body></html>";