SQL语句不返回所有值

时间:2014-01-10 17:00:11

标签: php mysql sql

我正在尝试从表中提取值列表但无法获取所有这些值。在MySQL中运行以下命令会返回3个建筑物的列表 - (建筑物A,建筑物A,建筑物B),并带有以下查询:SELECT building FROM cms_availabilities。但是我无法在我的页面上得到相同的结果。

$sql = "SELECT building FROM cms_availabilities";
$result = $database->query($sql);
$availabilities[] = $database->fetch_array($result);
var_export($availabilities);

返回:array ( 0 => array ( 0 => 'Building A', 'building' => 'Building A', ), )

我需要建筑物A,建筑物A,建筑物B.我也不确定为什么第二个键显示“建筑物”而不是1.有关正在发生的事情或如何成功提取结果的任何想法我要什么?

3 个答案:

答案 0 :(得分:2)

fetch_array只会获取当前行 - 您需要迭代,依次获取每个行:

while ($row = $database->fetch_array()) {
    echo $row['building'];
}

答案 1 :(得分:1)

while( $availabilities = mysql_fetch_assoc( $result ) )
{
   // Enter Code here;
}

这会返回一个关联数组。

但是不推荐使用mysql_*命令,因此您应该使用:

MySQLi版本:

    while( $availabilities = $result->fetch_assoc() )
    {
         // Your Code here
    }

     // You should free availabilities after you're done with it.
     $availabilities->free();

答案 2 :(得分:0)

我会创建这样的东西:

<?php
function building (){
        $query=@mysqli_query($this->db,"SELECT building FROM cms_availabilities");
            while ($row = @mysqli_fetch_object($query)){
            $building=stripslashes($row->building);         
                $show_building = array('building'=>$building);  
            }

        return $this->building=$show_building;  
     }