从数据库打印的结果并不是人们所期望的

时间:2014-03-28 14:59:54

标签: php

 require 'db/connect.php';
if ($result = $db->query("SELECT last_name +' '+ first_name as full_name, bio FROM people")) {
    if ($count = $result->num_rows) {
        echo '<p>', $count , '</p>';

        // while ($rows = $result->fetch_object()) {
            // print_r($rows);
            // echo '<br/>';
        // }

        while ($rows = $result->fetch_object()) {
            echo $rows->full_name, ' ' , $rows->bio, '<br />';
        }

        $result->free();
    }
} else {
    die($db->error);
}

数据库表人员包含两行数据,其中列是id,first_name,last_name,bio和created。

  

第1行:id = 1,first_name = kelly,last_name ='wafukho',bio =计算机科学家。
  第2行:id = 2,first_name = gonzaga,last_name ='situma',bio = graphic designer。

当运行下面的查询时,它为第1行提供0计算机科学家,为第2行提供0图形设计师。这可能是什么原因?是我的SQL语法或php处理对象的问题? 我使用的是mysql数据库。

2 个答案:

答案 0 :(得分:2)

您应该使用CONCAT功能加入字段

SELECT CONCAT(last_name, ' ', first_name) as full_name, bio FROM people

答案 1 :(得分:0)

您正在获取对象,因此您必须在查询中选择一个行集限制1。

if ($result = $db->query("SELECT last_name +' '+ first_name as full_name, bio FROM people limit 1")) {

或获取多行的数组。