我有PHP代码从MySQL表调用数据。但是,当它显示数据时,我会在每个备用行上得到一个空白的<p>
标记,如下所示:
<p>Row1</p> <p></p> <p>Row 2</p> <p></p> <p>Row3</p>
这是我的PHP代码:
if(isset($_GET['user'])){
$user=$_GET{'user'};
$sql="SELECT DISTINCT `user` FROM `users` WHERE user='$user'";
$result=mysqli_query($link, $sql);
while ($row=mysqli_fetch_array($result)){
echo "<p>$row[0]<p/>";
}
}
关于可能导致这种情况的任何想法?
PS:我在函数中添加了一行echo "sql;"
,它出现了类似的内容
SELECT DISTINCT
使用者FROM
使用者WHERE user='John'
当我直接在没有PHP代码的数据库上运行它时,它没有空白条目就可以正常工作。所以这不是数据库问题。
任何帮助都将不胜感激。
更新
下面我粘贴了两个while循环。第一个是上面的一个,主要问题是不起作用, 第二个,我从另一个文件复制粘贴,并为此特定代码进行相应编辑。
然而,第一个while循环打印出双段标签,而第二个循环不打印。我尝试将循环单独粘贴到不同的文档中,结果是相同的,循环一给出双标签,而循环二打印单标签(应该如此)。但是,我还是看不出两个循环之间的区别。
while ($row =mysqli_fetch_array($result)) {
echo "<p> $row[0]<p/>";
}
/*while ($row =mysqli_fetch_array($result)) {
echo "<p> $row[0]</p>";
}*/
基本上,我有一个解决我问题的方法,但我不明白为什么会这样做
答案 0 :(得分:1)
请尝试以下代码:
if(isset($_GET['user'])){
$user=$_GET{'user'};
$sql="SELECT DISTINCT `user` FROM `users` WHERE user='$user' AND user <> '' ";
$result=mysqli_query($link, $sql);
while ($row=mysqli_fetch_array($result)){
if(!empty($row[0]))
{
echo "<p>$row[0]<p/>";
}
}
}
答案 1 :(得分:1)
将您的查询更改为此选项,以排除空白列值
$sql="SELECT DISTINCT `user` FROM `users` WHERE user='$user' AND user <> ''";