Привет. На страницу вывожу данные из таблицы БД. Есть столбец с заметками - http://prntscr.com/mo0w9l Сейчас если я обновляю заметку допустим в первой строке, то она прописывается во всех строках. Как сделать так, чтобы заметка перезаписывалась только в той строке, где её вбивают? Код обновления заметки: PHP: <?php header( 'Content-Type: text/html; charset=utf-8' ); if (isset($_POST['note'])){ $note = $_POST['note']; $db_host = "localhost"; $db_user = "login"; $db_password = "pass"; $db_base = 'main_data'; $db_table = "main_table"; $mysqli = new mysqli($db_host,$db_user,$db_password,$db_base); $mysqli->set_charset('utf8'); if ($mysqli->connect_error) { die('Ошибка : ('. $mysqli->connect_errno .') '. $mysqli->connect_error); } $result = $mysqli->query("UPDATE main_table SET note = '$note' WHERE phone = '$phone'"); if ($result == true){ }else{ } } ?> Код вывода данных: PHP: <?php header( 'Content-Type: text/html; charset=utf-8' ); $servername = "localhost"; $username = "login"; $password = "pass"; $dbname = "main_data"; $conn = new mysqli($servername, $username, $password, $dbname); $conn->set_charset('utf8'); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT id, name, phone,email,time,ip_client,project,status,note FROM main_table"; $result = $conn->query($sql); if ($result->num_rows > 0) { echo "<table class=\"table table-hover\">"; echo " <thead> <tr> <th style=\"cursor: pointer\" scope=\"col\"><b>ID</b></th> <th style=\"cursor: pointer\" scope=\"col\"><b>Имя</b></th> <th style=\"cursor: pointer\" scope=\"col\"><b>Телефон</b></th> <th style=\"cursor: pointer\" scope=\"col\"><b>E-mail</b></th> <th style=\"cursor: pointer\" scope=\"col\"><b>Время</b></th> <th style=\"cursor: pointer\" scope=\"col\"><b>IP клиента</b></th> <th style=\"cursor: pointer\" scope=\"col\"><b>Курс</b></th> <th style=\"cursor: pointer\" scope=\"col\"><b>Заметка</b></th> <th style=\"cursor: pointer\" scope=\"col\"><b>Статус</b></th> </tr> </thead> "; echo "<tbody> \r\n"; while($row = $result->fetch_assoc()) { echo "<tr>\r\n"; echo "<th scope=\"row\">" . $row["id"]. "</th>\r\n". "<td>" . $row["name"]. "</td>\r\n". "<td>" . $row["phone"]. "</td>\r\n". "<td>" . $row["email"]. "</td>\r\n". "<td>" . $row["time"]. "</td>\r\n". "<td>" . $row["ip_client"]. "</td>\r\n". "<td>" . $row["project"]. "</td>\r\n". "<td>" .'<form method="POST"><input name="note" value="'.$row["note"].'" style="white-space: normal; background-color: lightyellow"><input type="submit" value="✔"/></form>'. "</td>\r\n". "<td>" . "<b><div data-number=\"".$row["status"]."\"></div></b>". "</td>\r\n"; echo "</tr>\r\n"; } echo "</tbody>\r\n"; echo "</table>"; } else { echo "0 results"; } $conn->close(); ?>
У тебя же есть id уникальный передавай $_POST['id'] Update делай по нему where id= $_POST['id'] p.s. и чтобы слеши не ставить, можно кавычки одинарные поставить: PHP: echo '<table class="table table-hover">';
Освойте уже экранирование данных в запросах или подготовленные запросы, а также HTML-кодированный вывод. И ваши echo – это полный абзац. Освойте переключение php/html (лучше сразу разделение по файлам осн. кода и шаблона), альт. синтаксис алг. конструкций в шаблонах и т.п. --- Добавлено --- Редактировать лучше в вынесенной на отдельную страницу форме и там же сохранять. Либо использовать AJAX. В обоих случаях используете id. Лучше в адресе, на крайняк в POST-параметре. --- Добавлено --- К моменту выполнения шаблона соединение с БД уже можно закрыть.