<?php
$conn=mysqli_connect("localhost","id6755695_artemi8","sharanod"
,"id6755695_user_info");
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$department = $_POST["department"];
$year = $_POST["year"];
$sem = $_POST["semester"];
$reg = $_POST["regulation"];
$sql = "SELECT book_name, author, edition, image FROM dept_search WHERE
department='$department' AND year='$year' AND semester='$sem' AND
regulations='$reg' ";
$result=mysqli_query($conn,$sql);
while($row = mysqli_fetch_assoc($result))
{
if($row)
{
echo "<br>";
?>
<img src=" <?php echo $row['image']; ?> " height="300" width="300">
<?php
echo "<br>";
echo "<b>",$row['book_name'],"</b>";
echo "<br>";
echo $row['author'];
echo "<br>";
echo $row['edition'];
}
else
{
echo "sorry book not found";
}
}
mysqli_close($conn);
?>
请使用此代码帮助我,我正在建立一个图书馆管理系统。问题是,如果给定的值存在,那么我应该能够显示这些书,如果数据库中没有找到,那么我必须显示该书,但是必须显示,但是在if之后的while循环中,否则else不运行.....
答案 0 :(得分:0)
您正在遍历从“ mysqli_fetch ...”命令返回的所有行。您的“ if”和“ else”是无用的-您将始终有行。如果没有任何行,那么您甚至都不会输入while循环的正文。
您需要对返回的行进行计数(count($ row)),并显示一条消息,如果计数小于一则找不到任何内容。
答案 1 :(得分:0)
正如其他人指出的那样,您的else
语句将永远不会运行。如果您已经在while
循环中,则肯定会定义$row
,因此,它将永远不会运行。
您可以做的是,请事先检查查询是否返回了实际结果,如下所示:
$result=mysqli_query($conn,$sql);
if($result->num_rows > 0){
while($row = mysqli_fetch_assoc($result)){
echo "<br>";
?>
<img src=" <?php echo $row['image']; ?> " height="300" width="300">
<?php
echo "<br>";
echo "<b>",$row['book_name'],"</b>";
echo "<br>";
echo $row['author'];
echo "<br>";
echo $row['edition'];
}
}else{
echo "Sorry book not found";
}
答案 2 :(得分:0)
您可以尝试使用mysqli_num_rows ..示例代码,如下所示:
$rowcount=mysqli_num_rows($conn,$sql);
if($rowcount!=0){
$result=mysqli_query($conn,$sql);
while($row = mysqli_fetch_assoc($result))
{
echo "<br>";
?>
答案 3 :(得分:0)
您需要做的就是将条件从if($row)
更改为if($other_condition)
当前,您只是在检查$row
内是否有东西,除非您将其分配给null
,否则这种情况永远不会出错。因为$row
会有什么地方,那么将执行while循环,而将执行while循环时,则将执行条件。
您只需要简单地做一件事,那就是改变下面给出的条件...
if($row['value'] == 'something')