【问题标题】:SQL statement not returning all values [duplicate]SQL语句不返回所有值[重复]
【发布时间】:2014-01-29 18:27:00
【问题描述】:

我正在尝试从表中提取值列表,但无法获取所有值。在 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', ), )

我需要获取 Building A、Building A、Building B。我也不确定为什么第二个键显示“building”而不是 1。关于发生了什么或如何成功提取结果的任何想法我想要吗?

【问题讨论】:

标签: php mysql sql


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:
    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();
    

    【讨论】:

      【解决方案3】:

      我会创建这样的东西:

      <?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;  
           }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-21
        相关资源
        最近更新 更多