2011-06-03 75 views
1

我做了一些研究和編碼才能夠使這個功能:echo field green if field1> field2?

(if field1 > field 2 echo font color=green else if field 2 > field 1 echo fontcolor=green else echo font black 

(雙綠色有其目的)

$query = "SELECT * FROM table WHERE CATEGORY='15' "; 
$result = mysql_query($query); 

If ($result [field1] > $result [field2]) 

echo " <style font="green"/> This category is green </style> " 

else if ($result [field1] > $result [field2]) 


echo " <style font="green"/> This category is green </style> " 

else 

echo " <style font="black"/> This category is black </style> " 

這是它如何做的?有沒有錯誤?

+0

$ result是一個mysql資源,你首先必須調用它'mysqli_fetch_assoc'。你的'else if'永遠不會被調用,因爲它與第一個if相同。 – knittl 2011-06-03 16:34:09

+0

是的,有錯誤,你不從數據庫中檢索你的結果,第二個elseif與第一個if相同。你沒有結束;在回聲....你測試它 – 2011-06-03 16:35:28

回答

0

使用

 
<span style="color:green;">This category is green</span> 

 
<span style="color:black;">This category is black</span> 
1

如何....

if ($result['field1'] != $result['field2']) 
    echo '<span style="color:green;">This category is green</span>'; 
else 
    echo '<span style="color:black;">This category is black</span>'; 

既然說如果1>22>1相同not equal

- 短:

$color = ($result['field1'] != $result['field2'] ? 'green' : 'black'; 
printf('<span style="color:%s;">This category is %s</span>',$color,$color); 
+0

thnx ...但我也有我的目的 – GaboPlat 2011-06-03 16:39:27

3

這是你的代碼應該是什麼樣子:

$sql = "SELECT *  FROM table WHERE CATEGORY='15' "; 
$query = mysql_query($sql); 
$result = mysql_fetch_assoc($query); 

if($result['field1'] > $result['field2']){ 
    echo '<span style="color:green;">This category is green </span>'; 
} 
else{ 
    echo '<span style="color:black;">This category is black</span>'; 
} 

我建議你你問這樣的問題之前,PHP讀了一些。

0

那麼存在一些誤區:

$query = "SELECT * FROM table WHERE CATEGORY='15' "; 
$result = mysql_query($query); 
// 1. you need the row, not the result 
$row = mysql_fetch_assoc($result); 

if ($row['field1'] > $row['field2']) 
{ 
    // 2. style tag is not to be used here, try span, and close the lines with ; 
    echo " <span style="color: green;">This category is green </span>"; 
} 
// 3. here you should test for "lest than" 
elseif ($row['field1'] < $row['field2']) 
{ 
    echo " <span style="color: green;">This category is green </span>"; 
} 
else 
{ 
    echo " <span style="color: black;">This category is black </span>"; 
} 
0

不,這甚至還沒有接近你會怎麼做。在PHP中執行mysql查詢後,您將始終需要獲取結果。這是你的代碼可能會如何看(我假設你的查詢將返回一個結果,而不是多個):

$query = "SELECT * FROM table WHERE CATEGORY='15' "; 
$res = mysql_query($query) or die(mysql_errno(); 

$arr = mysql_fetch_assoc($res); 

If ($result['field1'] > $result ['field2']) 
{ 
    echo '<span style="color: green;"/>This category is green</span>'; 
} 
else if ($result['field1'] > $result['field2']) 
{ 
    echo '<span style="color: green;"/>This category is green</span>'; 
} 
else 
{ 
    echo '<span style="color: black;"/>This category is black </span>"; 
} 

因此,簡言之,查詢未取,條件語句都沒事,但,因爲你似乎對此很陌生,如果你沒有正確關閉它們並且HTML不正確(看起來像CSS),可能會導致問題。

如果您需要任何幫助,請告訴我,我可以幫助您進一步。

0

當你的mysql調用從數據庫返回某些東西時,它不能立即被操縱。這是因爲查詢返回的是「資源」,而不是數組。首先必須使用mysql_fetch_array($ result)將資源轉換爲數組,然後才能通過該數組獲取所需的信息。然後,您可以使用括號內的列名來獲取任何特定行中所需的數據。然後

您的代碼應該是這個樣子:

$sql = "SELECT * FROM table WHERE CATEGORY='15'"; 
$query = mysql_query($sql);//$query is now the resource 
$result = mysql_fetch_assoc($query); //$result is now an array built from the resource 

現在,你有一些邏輯錯誤。正如其他人所指出的,第一和第二個陳述是相同的。現在您確實能夠檢查數據,您需要正確編寫if語句。事情是這樣的:

if($result['field1']>$result['field2']){ 
echo "<span style='color:green;'> This category is green </span>"; 
}else{ 
echo "<span style='color:black;'> This category is black </span>"; 
} 

注意,當您迴應任何事情,你得到迴音完成後,你必須用分號;關閉它。 此外,如果您想要修復這些特定單詞的樣式,最好只使用<span>標籤並將其放在裏面。 此外,當你聲明標籤內的風格,你必須做在style='characteristic:value;'

最後的形式,當你和"回聲聲明裏面,你必須使用單引號',否則關閉回聲。

希望我的小說可以幫助! :P

相關問題