[英]How to show different results in mysql search with PHP
I am not a programmer,I am trying to learn some coding,I have used some same codes to search MySQL and show result in my page,if the PHP code doesn't find a value in mysql,it shows no result.I want to show my custom message to this condition, if there is no value in mysql for 'serialno' value i need to show "xxx" msg 我不是程序员,我正在尝试学习一些编码,我使用一些相同的代码搜索MySQL并在页面中显示结果,如果PHP代码在mysql中找不到值,则没有结果。我想要显示我的自定义消息到这种情况,如果mysql中没有'serialno'值,我需要显示“ xxx” msg
my code is this 我的代码是这样
<?php header('Content-type: text/html; charset=utf-8'); ?>
<?php
$db_hostname = 'localhost';
$db_username = 'XXX';
$db_password = 'XXX';
$db_database = 'XXX';
// Database Connection String
$con = mysqli_connect($db_hostname,$db_username,$db_password);
mysqli_query ($con, "set character_set_client='utf8'");
mysqli_query ($con, "set character_set_results='utf8'");
// mysqli_query ("set collation_connection='utf8_general_ci'");
if (!$con)
{
die('Could not connect: ' . mysqli_error());
}
mysqli_select_db($con, $db_database);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>جستجوی شماره سریال</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<form class="form-wrapper cf" action="" method="post">
<div class="byline"><p style="direction: rtl">شماره سریال دستگاه را وارد کنید :</p></div>
<input type="text" name="term" />
<button type="submit">جستجو</button>
</form>
</body>
<?php
if (!empty($_REQUEST['term'])) {
$term = mysqli_real_escape_string($con, $_REQUEST['term']);
$sql = "SELECT * FROM serial WHERE serialno = ".$term;
$r_query = mysqli_query($con, $sql);
while ($row = mysqli_fetch_assoc($r_query)){
/* echo '<br /> ID: ' .$row['id']; */
echo '<div style="direction: rtl"><font size="12"'." face='Tahoma'>";
echo '<br /> شماره سریال: '.$row['serialno'];
echo '<br />تامین کننده: '.$row['vendor'];
echo '<br /> وضعیت: '.$row['stat'];
echo '</div>';
}
}
?>
</body>
<br>
<br>
<br>
<br>
<br>
<br>
</html>
You can use mysqli_num_rows(query); 您可以使用mysqli_num_rows(query); which will return number of rows query returns and then write an if function to display message. 这将返回查询返回的行数,然后编写一个if函数来显示消息。
if (!empty($_POST['term'])) {
$term = mysqli_real_escape_string($con, $_POST['term']);
$sql = "SELECT * FROM serial WHERE serialno = ".$term;
$r_query = mysqli_query($con, $sql);
$num_rows = mysqli_num_rows($r_query); //Number of rows query returned
if($num_rows > 0) { //Here you check if that number is higher then 0 you go with the loop
while ($row = mysqli_fetch_assoc($r_query)){
/* echo '<br /> ID: ' .$row['id']; */
echo '<div style="direction: rtl"><font size="12"'." face='Tahoma'>";
echo '<br /> شماره سریال: '.$row['serialno'];
echo '<br />تامین کننده: '.$row['vendor'];
echo '<br /> وضعیت: '.$row['stat'];
echo '</div>';
}
} else {
//Here you display your message
}
Also this is open for SQL injection attack, so PDO would be a better way to go. 这对SQL注入攻击也是开放的,因此PDO是更好的选择。
If I understand you correctly, you want to display a message to the user when 'serialno' has no value? 如果我理解正确,您想在“ serialno”没有价值时向用户显示一条消息吗?
while ($row = mysqli_fetch_assoc($r_query)){
if(isset($row['serialno'])){
/* echo '<br /> ID: ' .$row['id']; */
echo '<div style="direction: rtl"><font size="12"'." face='Tahoma'>";
echo '<br /> شماره سریال: '.$row['serialno'];
echo '<br />تامین کننده: '.$row['vendor'];
echo '<br /> وضعیت: '.$row['stat'];
echo '</div>';
}else{
echo "No value in serialno";
}
}
Or if you still want to show the rest of the row: 或者,如果您仍然想显示其余的行:
while ($row = mysqli_fetch_assoc($r_query)){
/* echo '<br /> ID: ' .$row['id']; */
echo '<div style="direction: rtl"><font size="12"'." face='Tahoma'>";
echo '<br /> شماره سریال: '.(isset($row['serialno'])?$row['serialno']:"Row has serialno");
echo '<br />تامین کننده: '.$row['vendor'];
echo '<br /> وضعیت: '.$row['stat'];
echo '</div>';
}
But you should really use PDO ;) 但是您应该真正使用PDO;)
<?php
if (!empty($_REQUEST['term'])) {
$term = mysqli_real_escape_string($con, $_REQUEST['term']);
$sql = "SELECT * FROM serial WHERE serialno = ".$term;
$r_query = mysqli_query($con, $sql);
if( mysqli_num_rows($r_query) > 0 )
{
while ($row = mysqli_fetch_assoc($r_query)){
/* echo '<br /> ID: ' .$row['id']; */
echo '<div style="direction: rtl"><font size="12"'." face='Tahoma'>";
echo '<br /> شماره سریال: '.$row['serialno'];
echo '<br />تامین کننده: '.$row['vendor'];
echo '<br /> وضعیت: '.$row['stat'];
echo '</div>';
}
}
else{
echo "<p>YOUR CUSTOM MESSAGE</p>";
}
}
?>
it's better to use PDO enter link description here 最好使用PDO 在此处输入链接描述
whit this way you will get a lot of problems 这样,你会遇到很多问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.