2016-03-23 7 views
0

クエリとIF条件でいくつかの条件に関する出力を取得しようとしています。ちょうど知りたい、これは結果を達成するための正しい方法か、それとも良い方法ですか?次のスクリプトは正しく動作しません。私のPHPスクリプトが見れば、何をしようとしているのかがはっきりします。 Plsは同じことに私を助けます。PHP/MYSQLの条件のLOOPでエラーが発生しました

$query_slab1 = mysql_query("SELECT slab_range,sup_itempartno FROM quotation_items where tender_id='$tender_id' "); 

if ($result_slab1 = mysql_fetch_array($query_slab1)){ 

    if (($result_slab1['slab_range'] == "") && ($result_slab1['sup_itempartno'] == "")){ 

    echo 'NO SLAB RANGE or NO PART NUMBER'; 

    } 
    else if (($result_slab1['slab_range'] !== "") && ($result_slab1['sup_itempartno'] !== "")){ 

    echo 'SLAB RANGE and PART NUMBER EXISTS'; 

    } 
    else if (($result_slab1['slab_range'] == "") || ($result_slab1['sup_itempartno'] !== "")){ 

    echo 'SLAB RANGE is NOT THERE and PART NUMBER EXISTS'; 

    } 
    else if (($result_slab1['slab_range'] !== "") && ($result_slab1['sup_itempartno'] == "")){ 

    echo 'SLAB RANGE EXISTS and PART NUMBER IS NOT THERE'; 

    } 
    else { 
     echo 'NO ITEMS FOUND IN THE DB'; 
    } 
} 

スラブの範囲または部品番号が存在するかどうかをチェックするだけです。どちらも存在していれば、別のエコーがあります。両方ともエコーが存在しない場合、またはエコーが存在するかどうか、エコーがありません。現在のところ、最初のレコードをチェックしています。どのように私はすべてのレコードをチェックし、それに応じてディスプレイを与えるためにここでforループまたはwhileループを追加します。

これは私が達成しようとしている予想される結果です。

========================================= 
tender_id | slab_range | sub_itempartno 
========================================= 

    15001      ABCDE 
    15001   1-2   AMKOI 
    15001   5-6   OUIPR 

    15004      
    15004      CVIOU 

    15005        
    15005        
    15005        

    15009   
    15009   8-9 
    15009   6-9     


Result for 15001 is 'SLAB RANGE AND PART NUMBER EXISTS' since when i iterete through the rows i can find both slab_range and sub_itempartno ENTERED. 

Result for 15004 is 'SLAB RANGE DOESNT EXIST AND PART NUMBER EXISTS' since when i iterete ethrough the rows i can find both slab_range empty or null and sub_itempartno ENTERED. 

Result for 15005 is 'SLAB RANGE AND PART NUMBER DOES NOT EXIST' since when i iterete through the rows i can find both slab_range and sub_itempartno NOT ENTERED. 

Result for 15009 is 'SLAB RANGE EXISTS AND PART NUMBER DOES NOT EXIST' since when i iterete through the rows i can find slab_range ENTERED and sub_itempartno NOT ENTERED. 
+2

3行目で 'if'を' while'に置き換えます。 – DerVO

+0

tender_idが単一のエンティティ/レコードを識別している場合、 'if'文を' while'ループで置き換える必要はありません。 – VolkerK

+1

"次のスクリプトは正しく実行されません" - "ちょうど知りたい、これは正しい方法です" _ほとんどの可能性は "いいえ"です。しかし、あなたはあなたが期待していることと実際に何が得られるかを説明しなければなりません。サンプルデータと、それぞれの予想される/受け取った結果は、このために役立ちます。 – VolkerK

答えて

0

@DerVOが述べたように、私はちょうどwhileifを変更する、と思いますが、あなたは、あなたが上記のような結果を示すフラグを追加する必要があります。

 

    $query_slab1 = mysql_query("SELECT slab_range,sup_itempartno FROM quotation_items where tender_id='$tender_id' "); 

    $flagSlab=false; 
    $flagPart=false; 

    if(mysql_num_rows($query_slab1)>0){ 
     while($result_slab1 = mysql_fetch_array($query_slab1)){  
     if (($result_slab1['slab_range'] !== "") && ($result_slab1['sup_itempartno'] !== "")){ 
      //'SLAB RANGE and PART NUMBER EXISTS'; 
      $flagSlab=true; 
      $flagPart=true; 
     } 
     else if (($result_slab1['slab_range'] == "") || ($result_slab1['sup_itempartno'] !== "")){ 
      //'SLAB RANGE is NOT THERE and PART NUMBER EXISTS'; 
      $flagPart=true; 
     } 
     else if (($result_slab1['slab_range'] !== "") && ($result_slab1['sup_itempartno'] == "")){ 
      //'SLAB RANGE EXISTS and PART NUMBER IS NOT THERE'; 
      $flagSlab=true; 
     } 
     if($flagSlab==true && $flagPart==true){ 
      break; 
     } 
     } 

     if($flagSlab==true && $flagPart==true){ 
      echo 'SLAB RANGE and PART NUMBER EXISTS'; 
     } 
     else if($flagSlab==false && $flagPart==true){ 
      echo 'SLAB RANGE is NOT THERE and PART NUMBER EXISTS'; 
     } 
     else if($flagSlab==true && $flagPart==false){ 
      echo 'SLAB RANGE EXISTS and PART NUMBER IS NOT THERE'; 
     } 
     else{ 
      echo 'NO SLAB RANGE or NO PART NUMBER'; 
      } 
    }else{ 
     echo 'NO ITEMS FOUND IN THE DB'; 
    } 


これはあなたの結果がなりたいものであると思います。

+0

ありがとうございました。それは今うまく動作します....あなたの時間をありがとう –

+0

あなたを歓迎します。これが他の人々にも役立つことを願っています。 –

+0

はい、それはPHPの初心者です。 –

関連する問題