Intereting Posts
Как отправить электронное письмо с вложениями из формы PHP? Как вызвать функции PHP из функции JavaScript для доступа к базе данных Каков наилучший способ уведомления пользователя после перенаправления правила access_control? переменные, передающие ничего, показывают неопределенную ошибку переменной, поэтому вы хотите поместить значение по умолчанию для переменной Проверка пустой строки Является ли добавление PHP уязвимым для SQL-инъекции? как создать безопасную систему регистрации php, позволяющую использовать функцию «сохранить меня в системе»? Php объединяет многомерный массив CodeIgniter: SSL / TLS SMTP Auth Электронная почта от PHPMailer Code Получение относительного пути от абсолютного пути в PHP Тип литья и сравнение с Loose Operator "==" CURL: Код 0 из прокси после CONNECT? Делает ли изящный Apache перезапуск очистки APC? PHP IRC Bot создает бесконечный цикл Где взять и как использовать автономный zend_pdf

Обновление поля в mysql с помощью кнопки отправки

Или, как говорится в названии, я, возможно, ошибаюсь. Я создал несколько полей в таблице в phpmyadmin. У меня есть «post_id» как уникальный идентификатор. Затем поля или (строки) под названием «first_name», «last_initial», «email», «feedback» и «approved».

Это страница отзывов на веб-сайте. Я поработал правильно, тогда понял, что мне нужно создать способ, чтобы владелец сайта одобрил комментарии перед их отображением.

Я новичок в php и mysql, так что это может быть очень просто для многих из вас здесь. Когда я подключаюсь к базе данных на странице отзывов чуть выше формы для ввода свидетельства, я вызываю все строки, которые имеют значение «1», так как это «одобренные» комментарии. По умолчанию, когда кто-то вводит информацию в форму для подачи отзыва, этому полю присваивается значение «0». Теперь на заднем конце я подключаюсь к базе данных и отображу все строки со значением «0» в полях.

Я использую таблицу html для отображения полей, а последний столбец таблицы имеет флажок. В идеале владелец сайта будет устанавливать флажки рядом с комментариями, которые они хотят одобрить, и нажать кнопку отправки, и будут отмечены только отмеченные флажки.

Проблема, с которой я столкнулся, – это нажать кнопку «Отправить» и подключить код php, который это делает, я использую функцию UPDATE для изменения значения в «одобренном» поле от 0 до 1.

Проблема, с которой я сталкиваюсь, – это одобрение каждого комментария, потому что я не квалифицирую его каким-либо образом с WHERE (функция, оператор или что-то подобное). И поскольку эта страница является динамичной и будет отображать разные комментарии для утверждения, как я могу сказать, действительно нет уникального идентификатора.

Надеюсь, мое невежество по этому вопросу не слишком смутило вас, и вы сможете мне помочь.

Я подключаюсь к базе данных здесь ……

// Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM feedback WHERE approved = 0"); echo '<h1>Submitted Comments</h1>'; echo '<form action="approve_comment.php" method="post">'; echo '<table>'; echo '<tr>'; echo '<th>First Name</th>'; echo '<th>Last</th>'; echo '<th>Email</th>'; echo '<th>Comment</th>'; echo '<th>Check</th>'; echo '</tr>'; while($row = mysqli_fetch_array($result)) { echo '<tr style="border:1px solid #000000; padding:10px;">'; echo '<td style="border:1px solid #000000; padding:10px; width:100px;">' . $row["first_name"].'</td>'; echo '<td style="border:1px solid #000000; padding:10px; width:50px;">' . $row["last_initial"] . '</td>'; echo '<td style="width:200px; padding:10px;">' . $row["email"] . '</td>'; echo '<td style="padding:10px; width:400px;">' . $row["feedback"] . '</td>'; echo '<td>' . '<input type="hidden" name="check" value="0"/>'.'<input type="checkbox" name="check" value="1"/>' . '</td>'; echo '</tr>'; } echo '</table>'; echo '<input style="float:right;" type="submit" value="Approve Selected" />'; echo '</form>'; mysqli_close($con); ?> 

Этот код отображает элемент задней части, где они будут комментировать комментарии. Действие выглядит следующим образом: подключение к базе данных здесь …

 // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } mysqli_query($con,"UPDATE feedback SET approved=1 WHERE approved='0'"); mysqli_close($con); header("Location: http://redirecting to the back end page here"); ?> 

Все отлично работает, кроме моей части WHERE. Я не уверен, что добавить сюда, или если я даже правильно назову информацию из базы данных, чтобы сделать эту работу.

Любой вход, который у вас есть, будет очень благодарен! Благодаря!

Используйте идентификатор вашей базы данных:

Сначала в вашей форме:

 echo "<input type=\"hidden\" name=\"post_id\" value=\"$row[post_id]\"/>"; 

Затем в обработчике:

 $post_id = mysqli_real_escape_string($con, $_POST["post_id"]); mysqli_query($con,"UPDATE feedback SET approved=1 WHERE post_id='$post_id'"); 

Отредактировано для добавления обязательной защиты SQL-инъекций!