Используйте CodeIgniter для циклического просмотра почтовых данных и обновления / сохранения в БД - PullRequest
0 голосов
/ 04 марта 2012

У меня есть страница, где вы можете обновить много данных, мне интересно, как лучше всего хранить эти данные в бэкэнде (обычно с использованием наименьшего количества кода).

Набор данных на странице, где можно изменить каждое значение, будет выглядеть примерно так:

   ID NAME   DATA MURDATA FINALDATA
   1  MyName XYZ  425     Blah
   2  Anoth  ASDF 87      987
   3  Last   DKL  38      19bm

Как мне просмотреть данные поста, чтобы я мог обновлять все эти данные сразу?

1 Ответ

2 голосов
/ 04 марта 2012

Вы не можете обновить два кортежа с разными значениями. Вам нужно будет сделать один UPDATE для каждого кортежа или выполнить массовую вставку, используя ON DUPLICATE KEY UPDATE -синтаксис. См. справочник MySQL .

Иметь форму с входными данными, в которых [] имеет суффикс к своим именам. Таким образом, вы можете получить доступ к этим входам в виде массива в PHP:

$result = mysql_query("SELECT * FROM table");
while ($tuple = mysql_fetch_assoc($result))
{
    echo '<input type="text" name="name['.(int)$tuple["id"].']" value="'.htmlentities($tuple["name"]).'" />';
    // echo more inputs ...
}

Ваш код постобработки может выглядеть следующим образом

foreach ($_POST["name"] as $id => $data)
{
    // todo: check if all $_POST columns are set, before accessing them
    // if (!isset($_POST["data"][$id], $_POST["murdata"][$id], ...)
    //     continue;

    $query = "UPDATE table SET ".
    $query .= "name = ".mysql_real_escape_string($_POST["name"][$id])."'";
    // the other columns...
    $query .= "WHERE id = '".(int)$id."'";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...