如果value设置为0,如何排除数据?

时间:2014-11-06 00:41:11

标签: php mysql json

我正在尝试从MySQL数据库中解析一些数据,我有一个列调用is_approved,值为01(0表示否,1表示是)< / p>

我只希望所有被批准的内容都被回应

我怎么能这样做?

<?php
// Connect to MySQL
$link = mysql_connect( 'localhost', 'username', 'password' );
if ( !$link ) {
  die( 'Could not connect: ' . mysql_error() );
}

// Select the data base
$db = mysql_select_db( 'DATABASE', $link );
if ( !$db ) {
  die ( 'Error selecting database \'DATABASE\' : ' . mysql_error() );
}

// Fetch the data
$query = "
  SELECT *
  FROM prayer
  ORDER BY created_at DESC";
$result = mysql_query( $query );

// All good?
if ( !$result ) {
  // Nope
  $message  = 'Invalid query: ' . mysql_error() . "\n";
  $message .= 'Whole query: ' . $query;
  die( $message );
}

// Print out rows
while ( $row = mysql_fetch_assoc( $result ) ) {
  //echo json_encode($row);
  echo 'Name: '.$row['first_name'] . ' ' . $row['last_name'] . ' <br>Gypsy Name: ' .$row['gypsy_name'].'<br>Veetsa: ' .$row['veetsa'].'<br> Location: ' .$row['location'].'<br>' .$row['created_at'].'<br>' .$row['content'] . "<hr>";
}

// Close the connection
mysql_close($link);
?>

计划是吐出JSON,以便我可以在另一台服务器上使用它

2 个答案:

答案 0 :(得分:2)

只需在查询中添加WHERE子句:

SELECT *
  FROM prayer
  WHERE is_approved = 1
  ORDER BY created_at DESC

答案 1 :(得分:1)

您可以在MySQL查询中执行此操作,但您也可以使用if ($row['is_approved'] == 1) {通过PHP逻辑过滤数据,如下所示:

// Print out rows
while ( $row = mysql_fetch_assoc( $result ) ) {
  if ($row['is_approved'] == 1) {
    echo 'Name: '.$row['first_name'] . ' ' . $row['last_name'] . ' <br>Gypsy Name: ' .$row['gypsy_name'].'<br>Veetsa: ' .$row['veetsa'].'<br> Location: ' .$row['location'].'<br>' .$row['created_at'].'<br>' .$row['content'] . "<hr>";
  }
}

目前还不清楚代码的大目标是什么,但这样做的好处是,您可以在is_approved状态之间快速切换或设置某种排序逻辑来处理{{1} }。

否则,MySQL查询真的更有效率&amp;干净。