2011-09-22 29 views
0

我在下面使用這個查詢,它只返回條目中的第一個查詢,如果我只使用if(空($ field1))來顯示。如果我填寫印刷品(「」);它的工作原理,但我想使用if(空($ field1))片段來顯示。我該怎麼做?

$sql="SELECT field1, field2 FROM table WHERE p_id='$pid' 
     and k_id='$kid' ORDER BY id DESC"; 
$result=mysql_query($sql); 

$query = mysql_query($sql) or die ("Error: ".mysql_error()); 

if ($result == "") 
{ 
    echo ""; 
} 

echo ""; 

$rows = mysql_num_rows($result); 

if($rows == 0) 
{ 
    print(""); 
} 
elseif($rows > 0) 
{ 
    while($row = mysql_fetch_array($query)) 
    { 
     $field1 = $row['field1']; 
     $field2 = $row['field2']; 
     print(""); 
    } 
} 

if (empty($field1)) { 
    echo ""; //Thats right, i don't want anything to show for this portion 
} else { 
    echo "<div id=comments>Comments</div><br> 
    <div id=entries>$field1 and $field2</div>"; 
} 
+1

你執行查詢兩次,還是隻是因爲例如inconsistancy的? – Snicksie

+1

你預計它會返回多少行?什麼是「p_id」和「k_id」? –

+0

沒有意識到我會解決這個問題。 – AAA

回答

1

我相信mysql_fetch_array只返回一個行 http://www.w3schools.com/PHP/func_mysql_fetch_array.asp

也烏爾都不可的p_id和k_id是不是唯一的?

我也會嘗試$ sql =「SELECT * FROM table WHERE p_id ='$ pid' and k_id ='$ kid'ORDER BY id DESC」;

只是爲了看看是否能產生任何不同的結果,你總是可以從返回的數據解析出來只是這兩個領域

嘗試這與開始($結果變量只是混亂的東西):

$sql="SELECT field1, field2 FROM table WHERE p_id='$pid' 
     and k_id='$kid' ORDER BY id DESC"; 

     $query = mysql_query($sql) or die ("Error: ".mysql_error()); 

    $rows = mysql_num_rows($query); 

    if($rows == 0) 
    { 
    print(""); 

    }else{ 

    while($row = mysql_fetch_array($query)) 
    { 
      if ($row['field1'] == "") 
      { 
       print(""); 
      }else{ 
      $field1 = $row['field1']; 
      print($field1) 
      } 

if ($row['field2'] == "") 
      { 
       print(""); 
      }else{ 
      $field1 = $row['field2']; 
      print($field2) 
      } 
    } 

} 
+0

我已檢查過該作品。查詢的作品我使用打印(「」)來顯示,但如果你注意到我正在使用如果空snipet所以也許多數民衆贊成爲什麼? – AAA

+1

很好每個其他職位關於運行您的查詢兩次,並沒有真正使用結果$結果我會說清理代碼,運行它,看看會發生什麼,然後在這裏更新我們。也許更新您的文章中的代碼塊,因爲它看起來有點凌亂 –

+0

我也會說可能在SQL窗口中運行您的查詢(而不是在您的代碼中)。這將使你真正理解那裏的數據和你的查詢實際返回的結果 –

2

你想做什麼?財產以後這樣的:

$sql="SELECT field1, field2 FROM table WHERE p_id='$pid' and k_id='$kid' ORDER BY id DESC"; 
$result=mysql_query($sql) or die ("Error: ".mysql_error()); 
$rows = mysql_num_rows($result); 

if ($rows > 0) 
    echo "here are your entries\n"; 

while($row = mysql_fetch_array($result)) 
{ 
    echo $row['field1']." "; 
    echo $row['field2']."\n"; 
} 

另一種方式

$sql="SELECT field1, field2 FROM table WHERE p_id='$pid' and k_id='$kid' ORDER BY id DESC"; 
$result=mysql_query($sql) or die ("Error: ".mysql_error()); 
$rows = mysql_num_rows($result); 

if ($rows > 0) 
    echo "here are your entries\n"; 

while($row = mysql_fetch_array($result)) 
{ 
    if (empty($row['field1'])) { 
     echo " "; 
    } else { 
    echo $row['field1']." "; 
    echo $row['field2']."\n"; 
    } 
} 
+0

這將工作,但我需要不得不使用f(空($ field1))。 } else { echo「Here are your entries」; } – AAA