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

Форум MySQL

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

 

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

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

тема: Update массива
 
 автор: Kien   (13.11.2007 в 18:39)   письмо автору
 
 

Здравствуйте, У меня возникла следующая проблема:

необходимо обновить сразу несколько записей в базе.

Вот код вывода формы:


<form name="postform" method="post" action="edit_dochazka.php">
<input value="<? echo $dochazka['pred_id']; ?>" type="hidden" name="pred_id">
<TABLE cellpadding="5" cellspacing="1" border="0">
                        <tr><td align="center" colspan="2">Dochazka studentu (predmet <? echo $dochazka['predmet_nazev']; ?>)</td></tr>
<tr>
 <td ><span class="style2">Student:</span></td> <td ><span class="style2">absence (hod)</span></td><td><span class="style2">absence za tento tyden</span></td>
</tr>
        <?
            
while(   $student = @mysql_fetch_array($abc2))
  {
  echo 
"
      <tr>
        <td><input value="
;
        echo 
$student['stud_id']; 
        echo 
" type=hidden name=stud_id>";
        echo 
$student['jmeno'];
        echo 
'&nbsp;';
        echo 
$student['prijmeni'];
        echo 
'</td><td align=center><input type=hidden name=hodiny_old value=';
        echo 
$student['hodiny'];
        echo 
">";
        echo 
$student['hodiny'];
        echo 
"</td><td><input type=text name=hodiny size=3>";
    echo 
"</td></tr>";
    }

    
?>    
     <tr><td align="center" colspan="2">
<input  name="submit" type="submit" value="Zmenit"> </td></tr>
    </tr>
        </table>
</form> 



Она выводит несколько записей по условию. Дальше необходимо обновить базу. Обновляю так, но так работает только для одной записи.
Вот код (причем надо сложить значения hodiny_old и hodiny и обновить поле hodiny ):


<?php 
 
 
require_once("config.php");
  
 
$absence =  $_POST['hodiny_old'] + $_POST['hodiny'];
 
$query "UPDATE dochazka SET hodiny='$absence' WHERE pred_id=".$_POST['pred_id']." and stud_id = ".$_POST['stud_id']; 
 if(!
mysql_query($query)) exit(mysql_error());
  else echo 
"<b>Udaje predmetu byly zmenene</b>";
?> 



Я не знаю как переделать код для нескольких записей. Чтобы правильно передавались значения из формы и правильно обновлялась база. Подскажите пожалуйста. Заранее спасибо

   
 
 автор: Kien   (14.11.2007 в 00:37)   письмо автору
 
   для: Kien   (13.11.2007 в 18:39)
 

Снова поднимаю тему - очень надо сделать. Подскажите пожалуйста

   
 
 автор: Волки   (14.11.2007 в 11:30)   письмо автору
 
   для: Kien   (13.11.2007 в 18:39)
 

сделай имена для полей добавляемых в цикле
name='stud_id[]'
и
name='hodiny_old[]'

при обработке POST посмотри что пришло (print_r($_POST) и сам поймёшь что делать.

   
 
 автор: Kien   (15.11.2007 в 14:03)   письмо автору
 
   для: Волки   (14.11.2007 в 11:30)
 

Получается примерно следующее:


Array
(
    [pred_id] => 6
    [stud_id] => Array
        (
            [0] => 2
            [1] => 5
        )

    [hodiny_old] => Array
        (
            [0] => 2
            [1] => 4
        )

    [hodiny] => Array
        (
            [0] => 4
            [1] => 4
        )

    [submit] => Zmenit
)



А как теперь вставить в отдну строку в таблице значения [stud_id] [0] , [hodiny] [0]; в другую [stud_id] [1] , [hodiny] [1];и тд?

Массивов может быть много.

   
 
 автор: Волки   (15.11.2007 в 14:17)   письмо автору
 
   для: Kien   (15.11.2007 в 14:03)
 


for ($i=0; $i<count($mas[stud_id]); $i++)
{
  $sql = "update .... where id='{$mas[stud_id][$i]}'; ";
  mysql_query($sql);
}

:) это больше пхп вопрос

   
 
 автор: Kien   (15.11.2007 в 18:36)   письмо автору
 
   для: Волки   (15.11.2007 в 14:17)
 

не получается...:((((

   
Rambler's Top100
вверх

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