|
|
|
| Попробуйте вот этот код
<?php
include("config.php");
function EditData($pupl)
{
print "<br><br><table border=1>";
print "<tr><td align=center>Предмет</td>
<td align=center>1 триместр</td>
<td align=center>2 триместр</td>
<td align=center>3 триместр</td>
<td align=center>Годовая</td>
<td align=center>Экзамен</td>
<td align=center>Итоговая</td></tr>";
$var = 20;
$var2 = 6;
$i = 1;
$i2 = 1;
$var3 = 120;
$i3 = 1;
print "<form action=function_itog.php method=POST>";
print "<input type=hidden name=cont1 value=y><input type=hidden name=edits value=$pupl>";
while($i3 <= $var3)
{
while($i <= $var)
{
$ath = mysql_query("SELECT * FROM uspev_itog where id='$pupl' and predmet='$i' and period='$i2';");
$predm = mysql_query("SELECT predmet FROM predmet WHERE kod='$i';");
if(!$predm) exit(mysql_error());
$cc_row = mysql_fetch_array($predm);
$kaka = $cc_row[predmet];
print "<tr><td>".$kaka."</td>";
while($i2 <= $var2)
{
$ath2 = mysql_query("SELECT * FROM uspev_itog where id='$pupl' and predmet='$i' and period='$i2';");
$uspev_ito = mysql_fetch_array($ath2);
print "<td><center><input size=2 type=text name=re".$i3." value=".$uspev_ito[mark]."></center></td>";
$i2 = $i2 + 1;
$i3 = $i3 + 1;
}
print "</tr>";
$i = $i + 1;
$i2 = 1;
}
}
print "<input type=submit value=Сохранить></form>";
print "<br><br></td></table><tbody>";
print "$re1 $re2 $re3 $re4 $re121";
}
if($cont1=='y')
{
$i = 1;
$i1 = 1;
$i2 = 1;
$var = 120;
$var1 = 20;
$var2 = 6;
$qwe = $$re1;
print "$qwe";
while($i <= $var)
{
while($i1 <= $var1)
{
while($i2 <= $var2)
{
$query = "UPDATE uspev_itog SET mark = '".$_POST["re".$i]."' WHERE period='$i2' and predmet='$i1' and id='$edits'";
mysql_query($query);
$i2 = $i2 + 1;
$i = $i + 1;
}
$i1 = $i1 + 1;
$i2 = 1;
}
}
Print " Данные успешно изменены ";
Print " <a href=uspev_itog.php>Вернуться назад</a>";
}
?>
|
| |
|
|
|
|
автор: pavlik (17.01.2005 в 21:43) |
|
|
для: cheops
(14.01.2005 в 21:36)
| | Огромное спасибо, все работает, я просто забыл написать
mysql_query($query); =))
А не подскажите как контроль на вводимые данные поставить?
print "<td><center><input size=2 type=text name=re".$i3." value=".$uspev_ito[mark]."></center></td>";
как бы сделать, чтобы если в поле введено не цифра в пределах 0-5 выводилось сообщение, не подскажите? | |
|
|
|
|
|
|
|
для: pavlik
(17.01.2005 в 21:43)
| | Следует все оценки прогнать через цикл в котором проверить их при помощи регулярных выражений, например, можно перед
<?php
$query = "UPDATE uspev_itog SET mark = '".$_POST["re".$i]."' WHERE period='$i2' and predmet='$i1' and id='$edits'";
?>
|
поставить
<?php
if(!preg_match("#[0-5]#",$_POST["re".$i])) exit("Не корректная оценка - ".$_POST["re".$i]);
?>
|
| |
|
|
|
|
автор: pavlik (17.01.2005 в 22:13) |
|
|
для: cheops
(17.01.2005 в 21:50)
| | <input maxlength=1 size=2 type=text name=re".$i3."
value=".$uspev_ito[mark]." onkeypress='if ((event.keyCode < 48) ||
(event.keyCode > 53)) event.returnValue = false;'>
я вот так решил свой вопрос.. во всех ли кодировках chr() от символов имеет одинаковое значение? | |
|
|
|
|
|
|
|
для: pavlik
(17.01.2005 в 22:13)
| | Вообще говоря нет... хм... а почему бы вам на цифры не проверять? зачем ещё символы помимо цифр? | |
|
|
|
|
|
|
|
для: cheops
(17.01.2005 в 22:58)
| | >Вообще говоря нет...
а помоему цифры во всех кодировках имеют одинаковое значение chr(), вот буквы они разные... | |
|
|
|