2013-04-16 5 views
1

Привет, я новичок в PHP и Mysql - хорошо, что я разрабатываю приложение для Android, которое будет извлекать некоторые пользовательские данные с сервера mysql db table - данные, такие как имя пользователя, имя, фамилия, адрес и т. Д., И у пользователя есть опция чтобы изменить все или некоторые из них ... и, наконец, нажмите кнопку обновления, чтобы обновить данные обратно в базу данных mysql.Обновление некоторых столбцов в таблице mySql?

Таким образом, проблема заключается в том, что я должен вернуть все значения (отредактированные и те, что не являются) с помощью POST ['username'], POST ['fname'], .... etc - и затем обновить базу данных с измененными и не измененными данными - или я должен ВОЗВРАТЬ ТОЛЬКО ИЗОБРЕТЕННЫЕ ДАННЫЕ, а затем каким-то образом обновить эти поля в таблице (НО я не уверен, как это реализовать), чтобы сделать инструкцию SWITCH с случаями для каждого типа POST [ 'fname'], и обновить каждый столбец значением POST)

ИЛИ ВЫ ЗНАЕТЕ НЕКОТОРЫЕ ЛУЧШИЕ ЛОГИКИ/ШАБЛОНЫ ДЛЯ ЭТОГО - вставьте некоторые ссылки с примерами/tuts, если вы знаете?

БЛАГОДАРЯ

ответ

1

Это работает в PHP, хотя подготовленные заявления являются лучше:

$sql = " 
UPDATE userData 
    SET 
"; 

if(isset($_POST['firstname']) 
    $sql .= "`firstname` = '" . $_POST['firstname'] . "'"; 
if(isset($_POST['lastname']) 
    $sql .= "`lastname` = '" . $_POST['lastname'] . "'"; 
// You get the picture 

$sql .= " 
WHERE userid = $id"; 
+0

Вы хотите сказать, что я должен отправить все данные из приложения Android (отредактированные и неотредактированные) и обновить таблицу этими данными (даже если некоторые поля строк будут обновлены с теми же данными)? – CicPot

+0

Если приложение является ТОЛЬКО местом, где данные могут быть отредактированы, то это не имеет большого значения. Если данные могут быть отредактированы пользователем где-то еще (например, веб-страница), вам нужно решить, что вы хотите сделать. Вы можете позволить приложению перезаписать все, что мог сделать другой экземпляр, обновив все поля, или вы можете обновлять изменения только в том случае, если вы хотите, чтобы изменения в сети сохранялись. – Lawson

+0

приложение является единственным местом, которое может редактировать данные - я получу его как-то ... – CicPot

0

Вы должны послать флаг указать, отредактированные поля и в зависимости от флага написать заявление обновления, например, если имя пользователя и fname изменены, отправьте флаг USERNAME_FNAME_CHANGED, а затем ожидайте, что на вашем устройстве будет отправлено 2 имени пользователя и fname. Затем на сервере выполняется инструкция switch для записи инструкции обновления соответственно.

Смежные вопросы