array сохранить в таблицу

xoxa

Новичок
array сохранить в таблицу

Есть массив, который получен mysql_fetch_assoc. Потом там изменили некоторые значения. id записи не меняется и нам надо запихнуть все это обратно. Как сделать проще и надежнее, чтобы не заморачиваться с типом полей и тп? Кто делал ?

Просьба ногами не пинать - я начинающий.
 

Voldar

Новичок
Пройдись в цикле по массиву, собери из него запрос типа UPDATE и выполни.
Если хотя-бы часть даннных получаешь от пользователя, при проходе по массиву проверь данные на корректность.
 

xoxa

Новичок
это все понятно. Допустим у меня есть count(int) и name(varchar). Запрос будет выглядеть так:
UPDATE `users` SET (count = 1) (name = 'вася') WHERE (uid = 5)

как такой запрос сгенерировать программно ? Причем поле разных типом может быть сколько угодно.
 

Voldar

Новичок
А в чем сложность?
PHP:
$sql = 'UPDATE `'.$table_name.'` SET ';

foreach($myarray as $key => $val) {
  $vals[] = '`'.$key.'`=\''.$val.'\'';
}

$sql .= join(', ',$vals);
$sql .= ' WHERE `id`=\''.$id.'\'';
Естественно, проверок всяких в цикл добавить по-вкусу.

Если хочешь типы полей брать из базы - 'SHOW FULL FIELDS FROM '.$table_name и парсишь.

Хотя ИМХО не самый лучший вариант так к базе привязываться. Базы они простые достаточно, а в реальности обычно нужны всякие хитрые проверки - например проверка значения на то, что это e-mail.
 
Сверху