2016-06-21 3 views
0

nullデータベースエントリを除外したPHPの結果が機能しなくなりました。 私は次のテストコードを生成し、結果にヌルを返します。私はうんざりしており、解決する手掛かりはありません。上記からデータベースヌルがヌルとして動作しない

<body> 
    <?PHP 
    include "dbcfg.php"; 
    $link = mysqli_connect($mysqlserver, $mysqlusername, $mysqlpassword,  $dbname) or 
      die("Error connecting to mysqli server: " . \mysqli_error()); 
    if (!$link) { 
     die("Connection failed: " . mysqli_connect_error()); 
    } 
    $attractquery = "select * from eatingout where town = 'Newcastle'"; 
    $result = \mysqli_query($link, $attractquery) or die 
        ("Query to get data from table failed: " . \mysqli_error()); 
    while ($db_row = mysqli_fetch_array($result)) { // iterate through all selected 
     /*if($db_row['image'] != null){*/ 
     /*if (!empty($db_row['image']));{*/ 
     if(isset($db_row['image']));{ 
     echo $db_row['image'] ." ". $db_row['EOID']."<br/>" ; 
     } 
    } 
     ?> 
</body> 

結果は、3つのオプションのいずれかからEOID数字が続き、多くのNULL値が含まれ、インターネットの質問サイトに75歳と私の最初の時間を助けてください。私が何をした?

+1

は、私はあなたがそれらの –

+0

使用を取得しているところはよく分からないので、あなたは変数を使用するすべての場所がない '(もし!IS_NULL($のdb_row [ '画像])) {'... if文の' {'の前に'; 'を削除します。 –

+0

... DB問合せの 'WHERE'文に' AND image is not NULL'を追加する方が良いでしょうか? –

答えて

1

クエリでNULLテストを追加できます。 $ attractquery = "eatoutから選択* town = 'Newcastle' AND image is not NULL」;

+0

これは、画像のないすべての行を除外します。私はOPのコードから、これは期待された結果だとは思わないが、彼はすべての行を印刷したいが、利用可能な場所にのみ写真を表示したい。 –

0

カラムにNULL値が含まれていて、「NULL」という文字列ではないことを確認してください。あなたはmysqli_queryとmysqli_error前にNULL

親切
+0

私は応答に驚いています。しようとした解決策if(!is_null)と私のエラーセミコロンを削除したが役に立たない。プログラムの適切な部分が多くのフィールドを照会してヌルを取り除くので、単にselectフィールドに画像フィールドを追加するだけの答えはありません。 – Auldbert

0
<body> 
    <?PHP 
    include "dbcfg.php"; 
    $link = mysqli_connect($mysqlserver, $mysqlusername, $mysqlpassword,  $dbname) or 
      die("Error connecting to mysqli server: " . mysqli_error()); 
    if (!$link) { 
     die("Connection failed: " . mysqli_connect_error()); 
    } 
    $attractquery = "select * from eatingout where town = 'Newcastle' and ifnull(image,'')=''"; 
    $result = mysqli_query($link, $attractquery) or die 
        ("Query to get data from table failed: " . mysqli_error()); 
    while ($db_row = mysqli_fetch_array($result)) { // iterate through all selected 
     /*if($db_row['image'] != null){*/ 
     /*if (!empty($db_row['image']));{*/ 
     if(!is_null($db_row['image'])){ 
     echo $db_row['image'] ." ". $db_row['EOID']."<br/>" ; 
     } 
    } 
     ?> 
</body> 

削除「\」のチェックボックスをチェックすれNULL値を持つ列imageのために有効にする必要があります。

isset bcoz $ db_row ['image']の代わりに!is_null($ db_row ['image'])を使用する必要があります。

第2に、他の回答に記載されているように、それ自身のクエリでnull値をチェックすることができます。

第三

if(isset($db_row['image']));{ 
      echo $db_row['image'] ." ". $db_row['EOID']."<br/>" ; 
      } 
1

すなわち句は、文字列変換の問題である可能性がある場合colanは後にあるのでしょうか?あなたはヌルを得るのですか

while ($db_row = mysqli_fetch_array($result)) { 
     if(isset($db_row['image']) && $db_row['image'] != NULL && strtolower($db_row['image']) != 'null'){ 
      echo $db_row['image'] ." ". $db_row['EOID']."<br/>" ; 
     } 
    } 
+0

元の質問の 'echo'が実際に' NULL'を画面に書いている場合、これは別の可能性があります。 PHPの緩やかな型定義は 'NULL ==" "'なので何も出力しないでください**。 – CD001

+0

お返事ありがとうございました。解決策はbOneによって提案され、F3L1X79の実装は機能していたので、NullのデフォルトがPhPmyAdminに設定されていても明らかにデータベース文字列の問題です。おそらく、Bullzip経由でのアクセスからのアップロードに関係します。今私はnullにdbaseのすべてのnull文字列を変換する必要があります – Auldbert

関連する問題