2011-07-08 18 views
1

在我的數據庫(列stageNum)相關的文字: ID#1 = 1 ID#2 = NULL第二行數據爲NULL,需要停止顯示在一個PHP循環

在我的PHP頁面:

//查詢的級數的

$query= mysql_query("SELECT * FROM stage"); 
$row= mysql_fetch_array($query); 

//循環

$num = mysql_num_rows($query); 
    $i=0; 
    $storeMyData = array(); 
    while($i < $num) 
     { 
     if(isset($row['stageNum'])){$stageNum= "STAGE " . mysql_result($query,$i,"stageNum") . "<br>";} else{$stageNum= NULL;} 

      $storeMyData[] = $stageNum; // store current data in array 
      $i++; 
     } 
    /* this will echo your storedData of loop */ 
    foreach($storeMyData as $prevData) 

    /* or join the data using string concatenation */ 
    $allFinalData2 = ""; 
    /* this will echo your storedData of loop */ 
    foreach($storeMyData as $prevData) 
     { 
      $allFinalData2 = $allFinalData2.$prevData ; // keep on concatenating 
     } 
    if(isset($allFinalData2)){echo $allFinalData2;} 

我翅人輸出顯示:

第1個階段

舞臺

我的問題是: 我不想顯示第二行「舞臺」,如果數據爲NULL。 如何阻止它顯示?

回答

0
if(strlen($row['stageNum'])!=0) 
{ 
echo "Stage".$row['stageNum']; 
} 
+0

它不是完全正確。該字符串可以只是空的,但不能爲空 – heximal

+0

我得到這個錯誤:致命錯誤:調用未定義的函數str_len() –

+0

oops,從不介意。我研究「str_len」,它應該是「strlen」。試過了,它工作! –

1

您可以通過更改您的SQL查詢這樣做是爲了不包括NULL階段:

$query = mysql_query("SELECT * FROM stage WHERE stageNum IS NOT NULL"); 
0
if(!is_null($prevData)) { //do your stuff here} 

的foreach($ storeMyData爲$ prevData) {

  if(!is_null($prevData)) {$allFinalData2 = $allFinalData2.$prevData ; } 
    } 
if(isset($allFinalData2)){echo $allFinalData2;} 
+0

我在哪裏專門放這個? –

+0

我在哪裏放這個代碼? –

+0

編輯檢查答案 – shobhonk

0

做這樣的 -

$query= mysql_query("SELECT * FROM stage"); 
$storeMyData = array(); 

while($row = mysql_fetch_array($query)) 
{ 
    if(!empty($row['stageNum'])) 
    { 
     $stageNum= "STAGE " . $row["stageNum"] . "<br>"; 
     $storeMyData[] = $stageNum; 
    } 
} 
相關問題