2014-03-28 3 views
0
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 = 그래픽 디자이너.

아래 쿼리를 실행하면 행 1에 컴퓨터 과학자가 0, 행 2에 그래픽 디자이너가 0이됩니다.이 이유는 무엇입니까? 내 SQL 구문 또는 PHP 개체에 문제가 무엇입니까? mysql 데이터베이스를 사용 중입니다. 당신은 쿼리에서 하나의 행 집합을 제한 1을 선택해야하므로

+0

문자열 연결에 '+'연산자를 사용할 수없는 것처럼 보입니다. 데이터베이스가 이름을 숫자로 추가하고 0으로 만들려고합니다. 일부 데이터베이스는이를 허용하고 일부는 허용하지 않으므로 사용중인 데이터베이스를 지정해야합니다. – Kryten

+1

쿼리에서 하나의 행 세트 제한 1을 선택해야하므로 객체를 가져오고 있습니다. –

답변

2

당신은 당신이 개체를 가져 오는 된 필드

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

아니요, @Awlad가 옳습니다. – ElmoVanKielmo

0

가입 CONCAT 기능을 사용해야합니다.

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

또는 여러 행을 가져 오기 배열.

관련 문제