2012-02-27 15 views
1

データベースにエントリが存在するかどうかをチェックしようとしています。しかし、エントリがないことがわかっていても、最初のエントリが0の配列が取得されています。したがって、それは空ではなく、私は必要なものを得ることができません。MySQLのPHP配列は空ではありませんが、空のエントリがあります - 回避方法

は、ここに私のコードです:

<?php 
    $query = mysql_query("SELECT * FROM table WHERE column = $yfbid_number AND timestamp BETWEEN (NOW()- Interval 1 DAY) AND NOW()"); 
    $array[] = array(); 
    while ($row = mysql_fetch_assoc($query)){ 
     $array[] = $row['column']; 
    } 
    ?> 

空になり、アレイ上にしますprint_rを行うとき、私は取得しています:([0] =>アレイ())、したがって、カウントは1とゼロでない、これ私のコードを混乱させる。どのようにこの状況で本当に空の配列に到達するための任意のアイデア? ほとんどの使用例では、空の配列または1つのエントリ(実際のエントリ)しか持たない配列を取得するので、最初はこのエントリを削除しないでください。両者を区別する。 (今のように、両方とも1匹のエントリーの数を与えるが、これは私たちの甲状腺にとっては非常に悪い)。ありがとう。

答えて

4

変更:

$array[] = array(); 

$array = array(); 

へのバージョンと$配列が存在しない場合、PHPは、まずそれに空の配列を追加し、その後、配列を作成します。つまり、要素配列が空の1要素配列になります。

+0

+1 - ニースキャッチ! – Paulpro

1

最初にSELECT COUNT(*)を実行して、取得するエントリの数を判断することをお勧めします。次に、結果が有用な答えになることを知っていて、結果に基づいて後続の問合せを行うかどうかを決定できます。

3

$array[] = array();$array = array()である必要があります。今は、初期化された配列に配列要素を追加しています。通知をオンにすると、未定義の変数(おそらく)に関する苦情が届きます。

関連する問題