2017-06-24 15 views
0

PDOクエリのデータを次のように配列に格納しようとしています。PDOフェッチが空の最初の行を返します

$array[] = array(); 
$query = "SELECT m.fac_id, m.tnc_id FROM `CCF` m 
     INNER JOIN `CCF-1` f ON f.fac_id = m.fac_id 
     WHERE f.form_id = :id"; 
$stmt = $con->prepare($query); 
$stmt->execute(array('id' => $ccf_id)); 

if ($stmt->rowCount() > 0) { 
    while ($obj = $stmt->fetch(PDO::FETCH_ASSOC)) { 
      $array[] = [$obj['tnc_id'], $obj['fac_id']]; 
    } 
    return $array; 
} else { 
    return null; 
} 

二つの問題があります。表はすなわち[[]]、私は必要なの[]または空の配列であるとき、$stmt->rowCount() > 0は空の配列要素を返す場合、最初にチェックせずに$stmt->fetch()を使用して、空の場合

1) 。

2)したがって、私は空文字表が[]を返すようにif文$stmt->rowCount() > 0を追加しました。ただし、空ではないテーブルの最初の値は空です([[],[1,2],[3,4]...])。これはコードの後半部分を混乱させます。

出力を[]または[[1,2],[3,4]...]にするにはどうすればよいですか? $array

$array = array(); 

[]

答えて

2

変更

$array[] = array(); 

$arrayが配列になり、([]を介して作成された)が存在する初のインデックスはarray()であろうことを意味します。

+0

ありがとうございました!私はそれがこのような愚かな間違いでなければならないことを知っていた。 – revvy

+0

@revvy問題はない、私はあなたを助けることができてうれしいです。 –

+0

@revvy – Exprator

関連する問題