|
автор: pavlik (08.01.2005 в 03:31) |
|
| function EditData($pupl)
{
echo "<br><br><table border=1>";
echo "<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=http://site.php?cont=1&edits=$pupl
method=POST>";
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';");
$cc_row = mysql_fetch_array($predm);
$kaka = $cc_row[predmet];
echo "<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);
echo "<td><center><input size=2 type=text name=$i3 value=$uspev_ito[mark]></center></td>";
$i2 = $i2 + 1;
$i3 = $i3 + 1;
}
echo "</tr>";
$i = $i + 1;
$i2 = 1;
}
}
print "<input type=submit value=Сохранить></form><br><br></td></table><tbody>";
}
if (@$cont)
{
$i = 1;
$i1 = 1;
$i2 = 1;
$var = 120;
$var1 = 20;
$var2 = 6;
while($i <= $var)
{
while($i1 <= $var1)
{
while($i2 <= $var2)
{
$query = "UPDATE uspev_itog SET mark = '$i' WHERE id='$pupl' and period='$i2' and predmet='$i1'";
$i2 = $i2 + 1;
}
$i1 = $i1 + 1;
$i2 = 1;
}
$i = $i + 1;
}
Print " Данные успешно изменены ";
}
написал скрипт для вывода успеваемости, но почему-то в форме не передаются данные
<input size=2 type=text name=$i3 value=$uspev_ito[mark]> вот эти.
всего в скрипт должно передаваться 120 значений для разных переменных. вот они почему-то и не передаются.
кто бы мог подсказать, в чем ошибка?
Заранее спасибо, Павел. | |
|
|
|
|
автор: pavlik (08.01.2005 в 03:39) |
|
|
для: pavlik
(08.01.2005 в 03:31)
| | нашел одну ошибочку
$query = "UPDATE uspev_itog SET mark = '$i' WHERE id='$pupl' and period='$i2' and predmet='$i1'";
тут хотел сделать
не mark = '$i' , а что-то типа mark = '$($i)'
можно ли так сделать?
у меня $i принимает значения от 1 до 120, и у меня еще в скрипт передаются переменные с названиями от 1 до 120, и хотелось бы, получить их значение . можно ли так делать? | |
|
|
|
|
|
|
|
для: pavlik
(08.01.2005 в 03:39)
| | Хм... а немогли бы вы приложить структуру таблицы uspev_itog? Иначе отлаживать очень неудобно... | |
|
|
|
|
автор: pavlik (08.01.2005 в 14:21) |
|
|
для: cheops
(08.01.2005 в 13:15)
| | uspev_itog:
id - id ученика
predmet - код предмета
period - код периода выставления оценки
mark - оценка
predmet:
kod - код предмета
kod2 - код периода
predmet - предмет
period - период | |
|
|
|
|
|
|
|
для: pavlik
(08.01.2005 в 14:21)
| | У меня, конечно нет полной базы, но для одной записи ваш код всё прекрасно исправляет:
<?php
EditData(1);
function EditData($pupl)
{
echo "<br><br><table border=1>";
echo "<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;
$var = 1;
$var2 = 1;
$i = 1;
$i2 = 1;
// $var3 = 120;
$var3 = 1;
$i3 = 1;
print "<form action=http://site.php?cont=1&edits=$pupl method=POST>";
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];
echo "<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);
echo "<td><center><input size=2 type=text name=$i3 value=$uspev_ito[mark]></center></td>";
$i2 = $i2 + 1;
$i3 = $i3 + 1;
}
echo "</tr>";
$i = $i + 1;
$i2 = 1;
}
}
print "<input type=submit value=Сохранить></form><br><br></td></table><tbody>";
}
if (@$cont)
{
$i = 1;
$i1 = 1;
$i2 = 1;
$var = 120;
$var1 = 20;
$var2 = 6;
while($i <= $var)
{
while($i1 <= $var1)
{
while($i2 <= $var2)
{
$query = "UPDATE uspev_itog SET mark = '$i' WHERE id='$pupl' and period='$i2' and predmet='$i1'";
$i2 = $i2 + 1;
}
$i1 = $i1 + 1;
$i2 = 1;
}
$i = $i + 1;
}
Print " Данные успешно изменены ";
}
?>
|
| |
|
|
|
|
автор: pavlik (08.01.2005 в 17:15) |
|
|
для: cheops
(08.01.2005 в 15:00)
| | странно, у меня все равно не работает, ничего не изменяется, просто в скрипт ничего почему-то не передается:
?cont=1&edits=id
и больше ничего, пробовал вручную заполнять
?cont=1&edits=id&1=1&2=1&3=1
все равно не работает. в чем может быть дело? | |
|
|
|
|
|
|
|
для: pavlik
(08.01.2005 в 17:15)
| | Хм... а у вас обработчки действительно какой странный... Так не следует писать. Нужно
<?php
print "<form action=http://site.php?cont=1&edits=$pupl method=POST>";
?>
|
исправить на
<?php
print "<form action=http://site.php method=POST>";
?>
|
А параметры передавать через скрытые поля формы.
PS Директива register_globals в конфигурационном файле php.ini включена? | |
|
|
|
|
автор: pavlik (08.01.2005 в 18:45) |
|
|
для: cheops
(08.01.2005 в 18:27)
| | > А параметры передавать через скрытые поля формы.
а ка это можно сделать, не подскажете? )
насчет настройки пхп.ини сейчас узнаю у хостера | |
|
|
|
|
|
|
|
для: pavlik
(08.01.2005 в 18:45)
| | Т.е. если вам необходимо вместе с формой предать какие-то переменные следует к форме прикрепить дополнительные скрытые поля:
<input type=hidden name=cont value=1>
<input type=hidden name=edits value=<?php echo $pupl; ?>>
|
Их не будет видно, но они будут доступны в скрипте-обработчике. | |
|
|
|
|
автор: pavlik (08.01.2005 в 20:26) |
|
|
для: cheops
(08.01.2005 в 18:50)
| | я так сделал, но ведь это никакого значения не имеет.
все равно почему-то у меня не изменяется таблица, не могу понять почему, просто данные не проходят в скрипт. | |
|
|
|
|
|
|
|
для: pavlik
(08.01.2005 в 20:26)
| | Попробуйте использовать суперглобальные массивы - http://www.softtime.ru/info/articlephp.php?id_article=13 - может дело действительно в отключённой директиве register_globals? | |
|
|
|
|
автор: pavlik (10.01.2005 в 11:40) |
|
|
для: cheops
(08.01.2005 в 21:28)
| | register_globals включена, вообще не понимаю в чем дело, уже несколько дней мучаюсь с этим скриптом, как только его не переедедлывал. | |
|
|
|
|
|
|
|
для: pavlik
(10.01.2005 в 11:40)
| | Если не хотите светить базу - вы можете выслать (предварительно упаковав архиватором) мне её на почту cheops@sofftime.ru - я попробую отладить ваш скрипт. | |
|
|
|
|
автор: pavlik (10.01.2005 в 17:12) |
|
|
для: cheops
(10.01.2005 в 11:53)
| | ок, как буду дома - вышлю . вам только таблицу успев_итог? | |
|
|
|
|
|
|
|
для: pavlik
(10.01.2005 в 17:12)
| | Ну для цельности и predmet можно... так чтобы у меня была замкнутая база, без повисших ключей... | |
|
|
|
|
автор: pavlik (13.01.2005 в 00:37) |
|
|
для: cheops
(10.01.2005 в 21:30)
| | выслал вам на емайл
вообщем у меня проблема вот в чем:
<input size=2 type=text name=$i3 value=$uspev_ito[mark]>
i3 идет от 1 до 120, т.е. должны быть переменные $1 - $120, однако данные в них не сохраняются. | |
|
|
|
|
|
|
|
для: pavlik
(13.01.2005 в 00:37)
| | Хм... кстати, письмо до меня до сих пор ещё не дошло - это нормально? | |
|
|
|
|
автор: pavlik (13.01.2005 в 14:56) |
|
|
для: cheops
(13.01.2005 в 12:57)
| | пришел ответ от майлердемона:
Hi. This is the qmail-send program at nextmail.ru.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.
<cheops@sofftime.ru>:
Sorry, I couldn't find any host named sofftime.ru. (#5.1.2)
щас вышлю по пм, если оно тут есть | |
|
|
|
|
|
|
|
для: pavlik
(13.01.2005 в 14:56)
| | Ага, я ошибся в написании хоста, следует использовать cheops@softtime.ru | |
|
|
|
|
автор: pavlik (13.01.2005 в 15:11) |
|
|
для: cheops
(13.01.2005 в 15:02)
| | отправил
и отправил усовершенствованные скрипты | |
|
|
|
|
|
|
|
для: pavlik
(13.01.2005 в 15:11)
| | Ага, получил, постараюсь вечером отписаться... | |
|
|
|
|
автор: pavlik (14.01.2005 в 17:44) |
|
|
для: cheops
(13.01.2005 в 15:54)
| | посмотрели скрипты? | |
|
|
|
|
|
|
|
для: pavlik
(14.01.2005 в 17:44)
| | Если честно, то никак не могу пока добраться до вашей задачи :(((, но я об ней помню, так как ваши два письма единственные не убранные из папки "Входящие"...
PS Как только добью 17 главу "Разное" нашей третьей книги, сразу займусь вашим скриптом. | |
|
|
|
|
|
|
|
для: pavlik
(14.01.2005 в 17:44)
| | Тема длинная, поэтому на тот случай если возникнут вопросы отвечу в другой
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=1523 | |
|
|
|