2011-08-11 16 views
0

私はまだPHP/MySQLの新機能を搭載していますが、私の頭の中でさえ、シンプルであるように思えますが、書き方を工夫することはできません。起こる:値がnullかどうかを確認し、値がnullの場合は、何も印刷しない、そうでない場合は印刷する。助けて?

MySQLの文が取得する値のすべてのセルの行= idは、 PHPはその後、(このビットは私が行うことができます)適切な場所でそれらを印刷した場合、 言った行の値がnullの場合はだ、私はドンその値に関連する何も印刷しないようにします。 それ以外の場合は、通常どおり続行します。

すなわち:

-- Other code -- 

if (value where id = id == null) { 

} 
else { 
Twitter: @Twitter 
} 
+0

は、あなたがしようとしていますSQLやPHPを書く? –

答えて

3

あなたの正確な問題は何ですか?単純なif文はうまくいくでしょう。

$result = mysql_query("SELECT * FROM somewhere"); 

while($row = mysql_fetch_assoc($result)) 
{ 
if($row['someValue'] != '') 
{ 
    echo $row['someValue']; 
} 
} 
+0

それはうまくいった!ありがとう:)申し訳ありません! – AviateX14

+0

データベースには空白以外の値が含まれている可能性が常にあります。この場合、PHPやSQLのいずれかで 'trim 'が役に立ちます。 MySQLトリムでは、明らかにスペース上で動作します。 –

+0

私は同意する必要があります、特定のフィールドが空であるかどうかSQLクエリをチェックインしようとします。これはより効果的です。 – TJHeuvel

2

SQLを使用すると、プログラムでフェッチする必要がある行数を制限できます。いずれかの列値がNULLであるすべての行を無視するには、nullでない必要がある各列に対して、条件としてIS NOT NULLを定義します。たとえば

SELECT id, label value 
FROM my_very_special_Table 
WHERE id = ? 
    AND label IS NOT NULL 
    AND value IS NOT NULL 

空白文字列または空白文字列がある可能性があります。 MySQLは、少なくともOracleとは異なり空の文字列をヌル値と区別しているようです。すなわち、'' <> NULLが真です。

この場合、VALUE <> ''またはLENGTH(VALUE) > 0で問題なく動作するように条件を変更する必要があります。クリアスペースにトリミングを追加することはできますが、MySQLではtrim doesn't remove any other white-space charactersとなります。もう一度正規表現にマッチさせることもできますが、それはおそらく少し遅いでしょう。

null値と空文字列の両方がある場合は、両方のシナリオをカバーする必要があります。

+0

より良い解決策、何かが症状の修正です! –

0

それはあなたがPHPにMySQLのからデータを取得する方法に依存しますが、あなたはは、mysql_fetch_array()のようなfuncionを使用する場合は、PHPの値がNULLにもなりますね。

if ([value where id = id] !== null) { 
    Twitter: @Twitter; 
関連する問題