помогите записать $_POST в бд

Runapa

Постоялец
Регистрация
30 Окт 2010
Сообщения
63
Реакции
5
Что-то я понять не могу, как такой массив -
Код:
Array
(
[u_id] => Array
(
[0] => 3d3aac5857cac816191a72ec0bddc14a
[1] => 3ee6f2485868320575aa90235a69c90a
[2] => 02cdcb3b3a61ded94c6952897549cffb
[3] => 9ead3fd83050c97cce7188405363a9a0
[4] => 0e7ed4bad9278b3a294f4ba78a009d26
[5] => 3a075929e8f761f354ac983a6fb0599d
)

[point] => Array
(
[0] => 5
[1] =>
[2] =>
[3] =>
[4] =>
[5] =>
)

[comment] => Array
(
[0] => qwerty
[1] =>
[2] =>
[3] =>
[4] =>
[5] =>
)

[submit] => Сохранить
)

записать в бд.
Имена полей совпадают с ключами.
Помогите разобраться. Что-то не получается вывести что-то типа $row['u_id'].
 
PHP:
foreach ($array[u_id] as $key => $value) {
/// INSERT INTO `table` (`u_id`, `point`, `comment`) VALUES ($array[u_id][$key], $array[point][$key], $array[comment][$key])
}

Код не готовый, принцип работы описан
 
А как можно определить, какой элемент изменился, и записать только его ?
 
А как можно определить, какой элемент изменился, и записать только его ?
можно сделать проверку на стороне клиента в браузере средствами скрытых полей и javascript, и отправлять форму только с измененными полями
однако такой вариант может быть небезопасен, поскольку пользователь сможет умышленно подправить поля по своему усмотрению

второй вариант - отправка всех данных на сервер, далее сервер делает выборку из таблицы, и методом перебора полей со сравнением определяет какие поля изменились. и делает запрос
Код:
UPDATE table SET ......

но я не представляю себе, где бы это пригодилось на практике... быстрее и проще обновить все поля строки
 
я бы сделал так:
PHP:
for ($i = 0; $i < count($_POST['u_id']); $i++) {
  if (!empty($_POST['u_id'][$i])) {
    $find = mysql_fetch_array(mysql_query('SELECT u_id FROM test_table WHERE u_id='.$_POST['u_id'][$i]));
    if (empty($find)) {
      /* новая запись, добавляем */
      $sql = 'INSERT INTO test_table (u_id,point,comment) VALUES ('.$_POST['u_id'][$i].','.
              (empty($_POST['point'][$i])?'null':$_POST['point'][$i]).','.
              '"'.(empty($_POST['comment'][$i])?'null':$_POST['comment'][$i]).'")';
    } else {
      /* запись уже есть, обновляем */
      $sql = 'UPDATE test_table SET '.
             'point='.(empty($_POST['point'][$i])?'null':$_POST['point'][$i]).' ,'.
             'comment="'.(empty($_POST['comment'][$i])?'null':$_POST['comment'][$i]).'" '.
             'WHERE u_id='.$_POST['u_id'][$i];
    }
    mysql_query($sql);
  } else {
    echo 'u_id не может быть пустым !';
  }
}
 
Назад
Сверху