Php / MySQL: невозможно вставить только одну строку

0

Я пытаюсь сделать страницу, которая позволяет пользователю вводить шаги, которые он предпримет, чтобы выполнить определенную задачу. Однако всякий раз, когда я отправляю шаг, несколько похожих записей хранятся в базе данных mysql. Поэтому, если я наберу "Сделать это", в моей базе данных mysql две записи будут храниться с одинаковыми данными. Вот мой код...

<?php

$conn = new mysqli("localhost", "root","","KFC");
if(isset($_POST['Submit_btn']))
{
  session_start();
    $var_value = $_SESSION['R_ID'];

    $Name= mysqli_real_escape_string($conn, $_POST['Step']);

    $sql= "INSERT INTO 'step'('Step', 'R_ID') VALUES ('$Name','$var_value')";

    mysqli_query($conn,$sql);
    if (!mysqli_query($conn,$sql))
  {
  echo("Error description: " . mysqli_error($conn));
  }
}
mysqli_close($conn);
?>
<html>
<body>
<div id="bodyContent">
<h1> Submit Steps </h1>
</div>
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('garden');
$result = mysql_query("SELECT * FROM step WHERE R_ID='$var_value'");
$rows = mysql_num_rows($result);
echo "So far you have submitted " . $rows . " steps for your recipe.";
?>
<form method="post">
<table>
<tr>
<td>STEP: </td>
<td>
<textarea type="text" name="Step" class="textInput"></textarea>
</td>
</tr>
<tr>
<td> </td>
<td>
<input type="submit" name="Submit_btn" value="submit">
</td>
<td>
<input type="submit" name="Continue_btn" value="Continue">
</td>
</tr>

</table>
</form>
</body>
</html>
  • 2
    Вы выполняете запрос дважды. Удалить один
  • 0
    как я выполняю это дважды: /? первый для вставки и второй для просмотра
Показать ещё 3 комментария
Теги:
database

1 ответ

1
Лучший ответ

Вы выполняете запрос выполнения дважды.

mysqli_query($conn,$sql);

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

Это то, что у вас есть:

  mysqli_query($conn,$sql);
  if (!mysqli_query($conn,$sql))
  {
    echo("Error description: " . mysqli_error($conn));
  }

Вам нужно только:

  if (!mysqli_query($conn,$sql))
  {
    echo("Error description: " . mysqli_error($conn));
  }

Строка проверки выполнит эту функцию и вернет требуемое логическое значение.

  • 0
    работал как шарм! Спасибо друг!
  • 0
    отметит ваш ответ как лучший за 3 минуты
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню