PHP修剪行结果?

时间:2009-09-22 07:28:15

标签: php mysql

您好我的格式是

location1 2 4
location2 3 2
location3 0 0
location1 1 0

如何修剪结果以便不显示返回0和0的行?谢谢

.................

这是Mysql查询,我不知道如何从MySQL中修剪它所以我想用PHP ..

    SELECT hotelas.name, hotelas.address, hotelas.city, hotelas.country, hotelas.hotel_id 
AS hotelid, 
COUNT( DISTINCT apart.apartman_id ) AS number_of_free_ap, 
COUNT( DISTINCT room.apartman_id ) AS num_of_free_rooms
    FROM hotel AS hotelas
    LEFT JOIN apartman AS apart ON ( apart.apartman_hotel = hotelas.hotel_id
    AND apart.occupied =0
    AND apart.what =1 )
    LEFT JOIN apartman AS room ON ( room.apartman_hotel = hotelas.hotel_id
    AND room.occupied =0
    AND room.what =0 )
    GROUP BY hotelas.hotel_id

TABLE字段是什么,0 - 房间,1 - 公寓

所以我得到了一些列,其中最重要的是计数列,免费房间和免费公寓。所以我有一个测试酒店,完整的0个房间和0个公寓,我希望从这个列表中删除所有其他酒店至少有一个房间或一个公寓。

3 个答案:

答案 0 :(得分:6)

如果您正在查询数据库以获取此信息,并且您可以更改查询,那么这将是最佳选择。

SELECT *
FROM myTable
WHERE
    firstColumn != 0
OR
    secondColumn != 0

如果您是从其他来源(CSV或其他内容)获取PHP,或者您无法控制查询,请使用array_filter()

// i'm assuming each line in your example is an array of values
$myArray = array_filter($myArray, 'noDoubleZeroes');

function noDoubleZeroes($line) {
    return $line[1] != 0 || $line[2] != 0;
}

答案 1 :(得分:1)

select * from table
where column1 !=0
or column2 !=0

这就是你在MySQL中修剪它的方法。

OTOH,如果你有一个像这样的数组(你通常会在从db查询后得到这个)

array(array('location1', 2, 4), array('location2', 3, 2))

然后你需要遍历数组并进行手动过滤:

$newarrs=array();
foreach($arrs as $values)
{
  if($values[1]!=0 || $values[2]!=0)
    $newarrs[]=$values;
}
return $newarrs;

答案 2 :(得分:-1)

如果我理解正确,这应该有帮助

$columns = explode($resultLine, " ");
$whatYouWant =  $columns[0];