排除空数据库条目的Php结果现在已停止工作。 我生成了以下测试代码,它在结果中提供了空值。我感到困惑,并不知道如何解决。请帮助一个75岁的孩子和我第一次访问互联网问题网站
<body>
<?PHP
include "dbcfg.php";
$link = mysqli_connect($mysqlserver, $mysqlusername, $mysqlpassword, $dbname) or
die("Error connecting to mysqli server: " . \mysqli_error());
if (!$link) {
die("Connection failed: " . mysqli_connect_error());
}
$attractquery = "select * from eatingout where town = 'Newcastle'";
$result = \mysqli_query($link, $attractquery) or die
("Query to get data from table failed: " . \mysqli_error());
while ($db_row = mysqli_fetch_array($result)) { // iterate through all selected
/*if($db_row['image'] != null){*/
/*if (!empty($db_row['image']));{*/
if(isset($db_row['image']));{
echo $db_row['image'] ." ". $db_row['EOID']."<br/>" ;
}
}
?>
</body>
上述结果包括多个Null,其后是三个选项中的任何一个的EOID数字。我做了什么?
答案 0 :(得分:1)
您可以在查询中添加NULL测试: $ attractquery =&#34;选择*来自eatout,其中town =&#39; Newcastle&#39; AND图像不是空的&#34;;
答案 1 :(得分:1)
可能是字符串转换问题?
while ($db_row = mysqli_fetch_array($result)) {
if(isset($db_row['image']) && $db_row['image'] != NULL && strtolower($db_row['image']) != 'null' ){
echo $db_row['image'] ." ". $db_row['EOID']."<br/>" ;
}
}
答案 2 :(得分:0)
请检查您的列是否包含NULL值而不是包含“NULL”的字符串。您应该通过勾选NULL
复选框来启用列image
的NULL值
答案 3 :(得分:0)
<body>
<?PHP
include "dbcfg.php";
$link = mysqli_connect($mysqlserver, $mysqlusername, $mysqlpassword, $dbname) or
die("Error connecting to mysqli server: " . mysqli_error());
if (!$link) {
die("Connection failed: " . mysqli_connect_error());
}
$attractquery = "select * from eatingout where town = 'Newcastle' and ifnull(image,'')=''";
$result = mysqli_query($link, $attractquery) or die
("Query to get data from table failed: " . mysqli_error());
while ($db_row = mysqli_fetch_array($result)) { // iterate through all selected
/*if($db_row['image'] != null){*/
/*if (!empty($db_row['image']));{*/
if(!is_null($db_row['image'])){
echo $db_row['image'] ." ". $db_row['EOID']."<br/>" ;
}
}
?>
</body>
请删除&#39; \&#39;在mysqli_query和mysqli_error之前。
您应该使用!is_null($ db_row [&#39; image&#39;])而不是isset bcoz $ db_row [&#39; image&#39;]将始终设置。
其次,您可以在查询中检查空值,如其他答案中所述。
第三,在if子句之后有一个可乐,即if(isset($db_row['image']));{
echo $db_row['image'] ." ". $db_row['EOID']."<br/>" ;
}