2014-10-23 2 views
0

날짜 데이터 유형 인 dstart라는 레이블이 붙은 postgres 테이블이 있습니다. dend는 날짜 데이터 유형이고, dcontract는 날짜 데이터 유형이고 ID는 정수입니다. 배열을 사용하여 데이터를 가져 와서 응용 프로그램 본문에 사용하는 PHP 코드를 실행하려고합니다. 그러나 배열을 테스트하고 일부 값을 반향하려고하면 ... 브라우저에 단어 배열이 표시됩니다 ... 어쨌든 데이터를 검색하거나이 코드를 수정할 수 있습니까? 아래 코드를 참조하십시오배열에 PHP 함수 문제가 있습니다

<?php 

    function getLiveDate($campid) 
    { 
     global $conn,$agencies; 


     $return=array(
     'livedate'=>'', 
     'campid'=>'', 
     'enddate'=>'', 
     'dateContract'=>'',   
     ); 

     $sql = "SELECT id, dcontract, dstart, dend 
     FROM campaigns 
     WHERE id = '".$campid."' ORDER BY dstart DESC LIMIT 1"; 

     $r = pg_query($conn,$sql); 
     if ($r) 
     { 
       $d = pg_fetch_array($r); 
       if (!empty($d)) 
     { 

      $return['livedate'] = $d['dstart']; 
      $return['campid'] = $d['id']; 
      $return['enddate'] = $d['dend']; 
      $return['dateContract'] = $d['dcontract']; 
     } 
     } 
     @pg_free_result($r); 

     return $return; 
} 
+0

동일한 이름의 테이블에 4 개의 열이 있습니까? – Chad

+0

dstart는 날짜 데이터 유형이고, dend는 날짜 데이터 유형이고, dcontract는 날짜 데이터 유형이고 id는 정수입니다. 의미 dstart (날짜), dend (날짜), dcontract (날짜) 및 id (정수)로 이름이 지정됩니다. – Masilo

답변

0

배열 $d은 "다차원"이고 pg_fetch_array()은 일반적으로 SQL 쿼리의 결과에 여러 행이 포함될 수 있으므로 배열 배열을 반환합니다. 한 행으로 제한했지만, $return['livedata'] = $d[0]['dstart']; 또는 $return['livedata'] = $d['dstart'][0]; 등을 사용하여 올바른 값을 얻을 수 있습니다. (특히 Postgre 대신 MySQL을 사용하는 것에 익숙하지 않습니다.) 게다가 대신 print_r()을 사용하여 데이터를 반향 출력 해보십시오.

+0

감사합니다. 많은 도움을주었습니다. 문제를 해결할 수 있도록 관리했습니다 :-) – Masilo

-1

$ return 변수는 배열입니다. 내용을 표시하려면 print_r 또는 var_dump not echo를 사용해야합니다.

+0

이것은 실제로 그의 질문에 대답하지 않으며, 코드가 그것을 보여주지 않기 때문에, 그가 함수를 반환하는 것만 큼 물을 덤핑하거나 반향하는지 알 수 없습니다. – Machavity

관련 문제