Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: проблема с формой
 
 автор: 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, и хотелось бы, получить их значение . можно ли так делать?

   
 
 автор: cheops   (08.01.2005 в 13:15)   письмо автору
 
   для: 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 - период

   
 
 автор: cheops   (08.01.2005 в 15:00)   письмо автору
 
   для: 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
все равно не работает. в чем может быть дело?

   
 
 автор: cheops   (08.01.2005 в 18:27)   письмо автору
 
   для: 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)
 

> А параметры передавать через скрытые поля формы.

а ка это можно сделать, не подскажете? )

насчет настройки пхп.ини сейчас узнаю у хостера

   
 
 автор: cheops   (08.01.2005 в 18:50)   письмо автору
 
   для: 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)
 

я так сделал, но ведь это никакого значения не имеет.
все равно почему-то у меня не изменяется таблица, не могу понять почему, просто данные не проходят в скрипт.

   
 
 автор: cheops   (08.01.2005 в 21:28)   письмо автору
 
   для: 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 включена, вообще не понимаю в чем дело, уже несколько дней мучаюсь с этим скриптом, как только его не переедедлывал.

   
 
 автор: cheops   (10.01.2005 в 11:53)   письмо автору
 
   для: pavlik   (10.01.2005 в 11:40)
 

Если не хотите светить базу - вы можете выслать (предварительно упаковав архиватором) мне её на почту cheops@sofftime.ru - я попробую отладить ваш скрипт.

   
 
 автор: pavlik   (10.01.2005 в 17:12)
 
   для: cheops   (10.01.2005 в 11:53)
 

ок, как буду дома - вышлю . вам только таблицу успев_итог?

   
 
 автор: cheops   (10.01.2005 в 21:30)   письмо автору
 
   для: 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, однако данные в них не сохраняются.

   
 
 автор: cheops   (13.01.2005 в 12:57)   письмо автору
 
   для: 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)

щас вышлю по пм, если оно тут есть

   
 
 автор: cheops   (13.01.2005 в 15:02)   письмо автору
 
   для: pavlik   (13.01.2005 в 14:56)
 

Ага, я ошибся в написании хоста, следует использовать cheops@softtime.ru

   
 
 автор: pavlik   (13.01.2005 в 15:11)
 
   для: cheops   (13.01.2005 в 15:02)
 

отправил
и отправил усовершенствованные скрипты

   
 
 автор: cheops   (13.01.2005 в 15:54)   письмо автору
 
   для: pavlik   (13.01.2005 в 15:11)
 

Ага, получил, постараюсь вечером отписаться...

   
 
 автор: pavlik   (14.01.2005 в 17:44)
 
   для: cheops   (13.01.2005 в 15:54)
 

посмотрели скрипты?

   
 
 автор: cheops   (14.01.2005 в 17:55)   письмо автору
 
   для: pavlik   (14.01.2005 в 17:44)
 

Если честно, то никак не могу пока добраться до вашей задачи :(((, но я об ней помню, так как ваши два письма единственные не убранные из папки "Входящие"...

PS Как только добью 17 главу "Разное" нашей третьей книги, сразу займусь вашим скриптом.

   
 
 автор: cheops   (14.01.2005 в 21:38)   письмо автору
 
   для: pavlik   (14.01.2005 в 17:44)
 

Тема длинная, поэтому на тот случай если возникнут вопросы отвечу в другой

http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=1523

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования