отображение сообщения, когда значение не найдено в базе данных mysql

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

 $dbc = mysqli_connect($hn,$un,$pd,$db);
$query= "SELECT * FROM sign_up WHERE email = '{$email}'";
$result = mysqli_query($dbc,$query);
mysqli_close($dbc);
$row = mysqli_num_rows($result);

if($row==0){
$emailNoExistErr = 'Value not found.';
echo $emailNoExistErr;}

Теперь, так как с самого начала значение в mysqli_num_rows ($ result) равно нулю. Ошибка отображается с момента загрузки страницы. Я хочу, чтобы он появлялся только тогда, когда значение, указанное пользователем в поле, проверяется через базу данных, а его нет.

пожалуйста помоги. Благодарю.

Полное обновление кода:

<body>
<?php
if($_SERVER["REQUEST_METHOD"] == "POST"){
$email = $_POST['email'];
$password = $_POST['password'];
}

$dbc = mysqli_connect($hn,$un,$pd,$db);
$query= "SELECT * FROM sign_up WHERE email = '{$email}'";
$result_mail = mysqli_query($dbc,$query);
mysqli_close($dbc);
$row = mysqli_num_rows($result_mail);

?>

<div class="cover-container wrap">

<div id="signup-bg">
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<ul class="form-style-1">
<li>
<label for="email">Email</label>
<input placeholder="Email*" type="email" name="email" id="email" required>
</li>
<span class="error"><?php
if($row==0){
$emailNoExistErr = 'This email is not signed up with us.';
echo $emailNoExistErr;}
?></span>
<li>
<label for="password">Password</label>
<input placeholder="Password*" type="password" name="password" id="password" onpaste="return false;" required>
</li>
<li>
<input type="submit" value="Sign in" name="sign_in" id="sign_in">
</li>
</ul>
</form>

</div>
</div>
</body>

0

Решение

В этом коде основной HTML & php я использовал. Вы должны просто проверить в начале, что форма $_POST['email'] уже установлен или нет.

        if($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST['email'])){  /*this for when page load see it's have form's request or not  */
$email = $_POST['email'];
$password = $_POST['password'];
$dbc = mysqli_connect($hn,$un,$pd,$db);
$query= "SELECT * FROM sign_up WHERE email = '{$email}'";
$result_mail = mysqli_query($dbc,$query);
mysqli_close($dbc);
$row = mysqli_num_rows($result_mail);
} else {/*this is for first time because we have to set row variable without it , error will show  */
$row = "" ;
}?><form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

<label for="email">Email</label>
<input placeholder="Email*" type="email" name="email" id="email" required>

<span>
<?php
if($row===0){
echo 'This email is not signed up with us.';
}
?>

</span>

<label for="password">Password</label>
<input placeholder="Password*" type="password" name="password" required>
<input type="submit" ">
</form>
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector