Я пытаюсь сделать страницу, которая позволяет пользователю вводить шаги, которые он предпримет, чтобы выполнить определенную задачу. Однако всякий раз, когда я отправляю шаг, несколько похожих записей хранятся в базе данных 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>
Вы выполняете запрос выполнения дважды.
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));
}
Строка проверки выполнит эту функцию и вернет требуемое логическое значение.