Как узнать номер элемента массива?

Здравствуйте! Есть код, который выводит некие данные из БД посредством mysqli_fetch_array
(это фрагмент кода)
// выводим в HTML-таблицу все данные клиентов из таблицы MySQL 
  while($data = mysqli_fetch_array($wwwlist)){ 
    echo '<tr>';
    echo '<td>' . $data['name'] . '</td>';
    echo '<td><textarea name = "email">' . $data ['email'] . '</textarea></td>';
    echo '<td> <textarea name = "indexfiles">' . $data ['indexfiles'] . '</textarea></td>';
    echo '<td> <textarea name = "alias">' . $data ['alias'] . '</textarea></td>';
      echo '<td> <textarea name = "charset">' . $data ['charset'] . '</textarea></td>';
     echo ' <input type = "hidden">'. $data ['unid'];
    echo '</tr>';
  }

Вопрос: как через эти текстовые поля редактировать содержимое БД? Каждому из текстовых полей присвоено имя, но при записи данных в БД (как я понимаю), если я в одной из строк поменяю (например) значение email, то при сохранении у меня в БД во всём столбце email будут одинаковые значения. И ещё такой вопрос: при записи обратно в БД не будет так, что в ячейке будет одновременно и старое и новое значения этого поля?
В БД есть поле unid с автоматическим инкрементом, значения этого поля вывел в скрытое поле в таблице..
  • Вопрос задан
  • 181 просмотр
Решения вопроса 1
@KFan
Веб-программист
// выводим в HTML-таблицу все данные клиентов из таблицы MySQL 
  while($data = mysqli_fetch_array($wwwlist)){ 
    echo '<tr>';
    echo '<td>' . $data['name'] . '</td>';
    echo '<td><textarea name = "data[' . $data ['unid'] . '][email]">' . $data ['email'] . '</textarea></td>';
    echo '<td> <textarea name = "data[' . $data ['unid'] . '][indexfiles]">' . $data ['indexfiles'] . '</textarea></td>';
    echo '<td> <textarea name = "data[' . $data ['unid'] . '][alias]">' . $data ['alias'] . '</textarea></td>';
      echo '<td> <textarea name = "data[' . $data ['unid'] . '][charset]">' . $data ['charset'] . '</textarea></td>';
    echo '</tr>';
  }


foreach ($_POST["data"] as $id => $fields) {
//UPDATE table WHERE unid = $id SET email = $fields[email], indexfiles= $fields[indexfiles]
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
deniamnet
@deniamnet
New Yorker, web developer
Сохраняйте в hidden-поле айдишник записи для каждой строки и по нему потом обновляйте в БД. Хотя, конечно, код далёк от идеала и желательно ещё какие-нибудь токены использовать (но это тема отдельного вопроса).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы