Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP修剪行结果?_Php_Mysql - Fatal编程技术网

PHP修剪行结果?

PHP修剪行结果?,php,mysql,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( DISTIN

你好,我正在收到格式的结果

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
表字段什么,0-房间,1-公寓

因此,我得到了一些列,其中最重要的是计数列,免费房间和免费公寓。所以我有一个测试酒店,它有0间客房和0套公寓,我想从这个列表中删除,所有其他酒店至少有一间客房或一套公寓可用

select * from table
where column1 !=0
or column2 !=0
这就是在MySQL中修剪它的方法

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

然后需要在阵列上循环并执行手动筛选:

$newarrs=array();
foreach($arrs as $values)
{
  if($values[1]!=0 || $values[2]!=0)
    $newarrs[]=$values;
}
return $newarrs;
这就是在MySQL中修剪它的方法

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

然后需要在阵列上循环并执行手动筛选:

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

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

SELECT *
FROM myTable
WHERE
    firstColumn != 0
OR
    secondColumn != 0
如果您是从其他来源(CSV或其他什么)在PHP中获得此信息,或者您无法控制查询,请使用:


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

SELECT *
FROM myTable
WHERE
    firstColumn != 0
OR
    secondColumn != 0
如果您是从其他来源(CSV或其他什么)在PHP中获得此信息,或者您无法控制查询,请使用:


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

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

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

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

我有一个非常复杂的左连接查询,我不知道如何修改它。这很有效,所以我应该编辑phpy的结果。你可以在这里发布查询。我们也许能帮上忙。我有一个非常复杂的左连接查询,我不知道如何修改它。这很有效,所以我应该编辑phpy的结果。你可以在这里发布查询。我们也许能帮上忙。你没有理解正确。他想删除带有两个0的行。您没有正确理解。他想删除带有两个0的行。您表示不想使用SQL,因为它太复杂了。如果您发布SQL查询,此处的某人可能会提供帮助。上面已经发布,有关酒店的信息存储在酒店表中,有关房间或公寓的信息存储在apartman表中。您表示不想接触SQL,因为它太复杂。如果您发布SQL查询,这里的某人可能会提供帮助。上面发布了,关于酒店的信息存储在酒店表中,关于房间或公寓的信息存储在apartman表中。不,他的SQL在我看来是正确的。询问者希望删除两列都为0的结果,因此这是正确的选择。当我将函数更改为noDoubleZeroes($line){return$line[number_of_free_ap]!=0 | |$line[num_of_free_rooms]!=0;}时,您的解决方案会起作用。但我现在从列名、地址、城市、乡村中得到的结果是空的,当然了。SQL不包括,因此它是OR。现在我觉得自己很愚蠢。@gnud-你和我都是,伙计@c0mrade,你确定你的阵列的密钥是你认为的吗?尝试在函数中添加一些回音以帮助调试:
print\r($line)
会有帮助。不,他的SQL在我看来是正确的。询问者希望删除两列都为0的结果,因此这是正确的选择。当我将函数更改为noDoubleZeroes($line){return$line[number_of_free_ap]!=0 | |$line[num_of_free_rooms]!=0;}时,您的解决方案会起作用。但我现在从列名、地址、城市、乡村中得到的结果是空的,当然了。SQL不包括,因此它是OR。现在我觉得自己很愚蠢。@gnud-你和我都是,伙计@c0mrade,你确定你的阵列的密钥是你认为的吗?尝试在函数中添加一些回音以帮助调试:
print\r($line)
会有帮助。