2011-06-03 62 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