如何跳过MySQL中为NULL的条目

时间:2014-12-16 10:11:35

标签: php mysql sql

我在新闻Feed中遇到两件事情。

我试图让新闻Feed显示所有数据库条目,但有些人没有约会,因为它们是某种与日期无关的新闻源。但问题是它仍然会为那些推进一个输入/空行。如果该ID中没有日期条目,但如果仍然显示新闻,我怎样才能使我的Feed只跳过日期列?

和第二个问题,如何将span类添加到返回到Feed的日期?

这是我加载数据库的代码:

<?php   
                // Grab the data from our people table

                $sql = "SELECT * FROM news ORDER BY ID DESC";
                $result = mysql_query($sql) or die ("Could not access DB: " . mysql_error());

                while ($row = mysql_fetch_assoc($result))
                {
                    echo "<div class=\"newsstory\">";
                    echo "<p>";
                    echo $row['date'] . " " . "<br />";
                    echo $row['news'];
                    echo "</p>";
                    echo "</div>";
                }


            ?>

感谢帮助人员!

编辑:因为可能是我的上传脚本在没有输入任何内容时上传空白空间,我只是添加了我的上传脚本以确保:

<?php

// Call our connection file
require("includes/conn.php");

$date=$_POST['date'];
$news=$_POST['news'];

$query="Insert into news (date, news) values ('$date', '$news')";  

mysql_query($query) or die ('error updating database'); 


echo "database updated with '$date', '$news'";
?>

7 个答案:

答案 0 :(得分:2)

只需替换

echo $row['date'] . " " . "<br />";

echo !empty($row['date']) ? ("<span>". $row['date'] . " </span><br />") : '';

这样您仍会显示所有新闻,但日期行仅会显示为非日期的新闻。

答案 1 :(得分:0)

只需在循环中添加条件:

修改

基于OP评论。

while ($row = mysql_fetch_assoc($result)) {
    $date = "No date";
    if (!empty($row['date'])) { //Check here
        $date = $row["date"];
    }
    echo "<div class=\"newsstory\">";
    echo "<p>";
    echo "<span>" . $date . "</span> " . "<br />"; //Added span
    echo $row['news'];
    echo "</p>";
    echo "</div>";
}

答案 2 :(得分:0)

请尝试以下方法: -

while ($row = mysql_fetch_assoc($result))
 {
   if($row['date'] != ""){
    ------------------
     -------------
   }
}

答案 3 :(得分:0)

你要这个吗?

if($row['date']!="")
{
 echo $row['date'] . " " . "<br />";
}

答案 4 :(得分:0)

只需打包

if (!is_null($row['date'])) {} 

围绕日期回声

答案 5 :(得分:0)

SELECT * FROM news WHERE date IS NOT NULL ORDER BY ID DESC 

- 使用NULL上的date值跳过整行。

为您需要的每一栏重复date IS NOT NULL

答案 6 :(得分:0)

如果您将日期列的数据类型作为日期而不是您输入的日期,而不是其存储在表中的默认条目是0000-00-00,那就是为什么我为此添加了条件.. 尝试一次,无论你想要什么,你肯定会得到完美的输出

while ($row = mysql_fetch_assoc($result))
{
  $ddate=$row['date'];
  if($ddate!='' || $ddate!=NULL || $ddate!='0000-00-00')
  {
	  echo "<div class=\"newsstory\">";
	  echo "<p>";
      echo "<div class='span'>".$row['date']."</div><br />";	//comment if below line you uncomment
	  //echo "<span>".$row['date']."</span><br />";	//uncomment if you want span tag instead of div with span class
      echo $row['news'];
	  echo "</p>";
	  echo "</div>";
  }
}