2011-02-23 58 views
0

我有一个小型的PHP mysql查询查看我的数据库中的表。它拉动所有行,然后回显记录。如何仅显示非空行

问题是我在表中有几个空行,所以我得到的是一个奇怪的查找记录。

这是我得到:

<?php 
    $con = mysql_connect("localhost","username","password"); 
    if (!$con){ 
     die('Could not connect: ' . mysql_error()); 
    } 
    mysql_select_db("username", $con); 
    $result = mysql_query("SELECT * FROM wallnames2011 WHERE firstname IS NOT NULL"); 
    while($row = mysql_fetch_array($result)){ 
     echo $row['firstname'] . " - " . $row['city'] . ", " .$row['state'] . " &nbsp;|&nbsp; "; 
    } 
?> 

我想保持空行了。

+1

定义不为空,查询不应该返回行,其中姓名为空... – Argote 2011-02-23 18:42:22

回答

4

尝试SELECT列名 FROM table_name的WHERE TRIM(列)IS NOT NULL

+0

好了,所以我想这个......问题是,还是有很多出现的符号。 “ - ”“,”和“  |  ”我只是希望它检查是否有值,然后显示记录,如果没有,则不显示记录并省略符号...谢谢! – TikaL13 2011-02-23 18:53:08

+0

我不确定你在问什么。你能提供样本数据吗? – user194076 2011-02-23 18:56:10

+0

当然...这里是您可以看到滚动的测试页面。这就是记录显示的地方http://watchmen.ifcj-digital.org?pmd – TikaL13 2011-02-23 18:59:30

0

我认为在“where”子句中提到所有字段名称,如first_name IS NOT NULL AND last_name IS NOT NULL

0

你可以把一个if(!empty($row['firstname']))你呼应行之前。

1

Alex的空管检查好,你也可以在线查看他们三个的,如果你想显示不完整的记录:

echo (! empty($row['firstname']) ? $row['firstname'] : "") 
    .(! empty($row['city']) ? " - ".$row['city'] : "") 
    .(! empty($row['state']) ? ", ".$row['state'] : "") 
    . " &nbsp;|&nbsp; "; 
5

为什么ü不把

尝试SELECT列名FROM TABLE_NAME WHERE column_name!=''

0

仅打印出rowname和结果IS NOT NULL,尝试结果S:

if ($result = $mysqli->query($query)) { 
    /* fetch associative array */ 
    $i=1; 
    while($a = $result->fetch_assoc()) { 
     $i++; 
     foreach ($a as $key => $value) { 
      if($value != NULL) { 
       echo $key." = ".$value."<br/>"; 
      } 
     } 
     echo "-- <br />"; 
    } 
    /* free result set */ 
    $result->free(); 
} 
/* close connection */ 
$mysqli->close();