Обновление нескольких записей в таблице MySQL через таблицу веб-форм PHP? - PullRequest
0 голосов
/ 30 марта 2011

Нужна небольшая помощь ...

У меня есть базовая HTML-таблица с формой текстового поля в последнем столбце и скрытым полем в каждой строке веб-таблицы. Данные в этой таблице извлекаются из таблицы в базе данных.

Я хочу, чтобы мои пользователи могли обновлять одно поле в базе данных (счет) с помощью этой веб-формы (страницы).

У меня есть скрытый компонент веб-формы в каждой строке, который содержит уникальный идентификатор записи в базе данных для каждой строки в таблице веб-страниц.

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

Вот мой код: (сокращенно для сохранения байтов ...)

<?php

//Do all the database connection stuff up front


if (isset($_POST[‘score’]))
{
     $student_id = $_POST[‘student_id’];
      $score = $_POST['score'];
      $n        = count($score);
       $i        = 0;

echo "You have updated these student scores on this assignment. \r\n" .
"<ol>";
   while ($i < $n)
{
echo "<hr><P>{$score[$i]} \r\n";
echo "<hr><P>{$student_id[$i]} \r\n";

$qry = "UPDATE assignments SET score = ".$score[$i]." WHERE student_id = " .$student_id[$i]. '"';
$result=@mysql_query($qry);

$i++;
   }
}
if($result) {
        header("location: member-index.php");
        exit();
    }else {
        die("Query failed");
    }
?>

Я на правильном пути? Есть ли лучший способ сделать то, что я пытаюсь сделать? Все предложения и идеи приветствуются!

Заранее спасибо!

1 Ответ

0 голосов
/ 30 марта 2011

Я предполагаю, что вы используете

<input name="scores[]"/>

почему бы не ввести уникальный идентификатор во имя ввода?

<input name="score[<?php echo $unique_id ?>]" />

это означает, что в цикле $ i будет уникальным идентификатором (на одну переменную меньше и меньше HTML).

и, пожалуйста, используйте mysql_real_escape_string () при работе с транзакциями БД. Я знаю, что это пример кода, но, пожалуйста, не забывайте, что

Кроме того, да, вы на правильном пути

...