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

Форум MySQL

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

 

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

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

тема: pavlik, редактирование таблицы
 
 автор: cheops   (14.01.2005 в 21:36)   письмо автору
 
 

Попробуйте вот этот код
<?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 выводилось сообщение, не подскажите?

   
 
 автор: cheops   (17.01.2005 в 21:50)   письмо автору
 
   для: 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() от символов имеет одинаковое значение?

   
 
 автор: cheops   (17.01.2005 в 22:58)   письмо автору
 
   для: pavlik   (17.01.2005 в 22:13)
 

Вообще говоря нет... хм... а почему бы вам на цифры не проверять? зачем ещё символы помимо цифр?

   
 
 автор: Crux   (18.01.2005 в 06:55)   письмо автору
 
   для: cheops   (17.01.2005 в 22:58)
 

>Вообще говоря нет...

а помоему цифры во всех кодировках имеют одинаковое значение chr(), вот буквы они разные...

   
Rambler's Top100
вверх

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