2012-04-19 42 views
-2

我需要一些帮助,我有点坚持:MySQL的if/else语句依赖于MySQL的结果

我想它这样,如果在一个表中的一行等于YES,那么它会显示一个特定的形象,但是,如果是表中的行等于“否”,则显示另一图像。

你有什么想法吗?

if($fetch["g1"] == 1) $buffer .= 'Group 1, '; 
if($fetch["g2"] == 1) $buffer .= 'Group 2, '; 
if($fetch["g3"] == 1) $buffer .= 'Group 3, '; 

echo substr($buffer,0,-2).' '; 
+0

不是没有更多的信息。你有一个现有的查询或表结构? – 2012-04-19 17:52:12

+0

'if($ fetch [“g1”] == 1) \t $ buffer。='Group 1,'; if($ fetch [“g2”] == 1) \t $ buffer。='Group 2,'; if($ fetch [“g3”] == 1) \t $ buffer。='Group 3,'; echo substr($ buffer,0,-2)。' ';' 但目前只有当值为真时才显示文本 – Logan 2012-04-19 17:53:27

+1

您应该对您的问题进行更改/添加信息,而不是发表评论。 – PenguinCoder 2012-04-19 17:59:14

回答

2

你的问题是相当模糊的,但是这显示了如何读取行,并有条件地选择一个<img>标签来源:

# fetch the row 
$row = mysql_fetch_array(mysql_query("SELECT * FROM table WHERE foo=$bar")); 

# determine image to show 
$img = $row['field'] == 'YES' ? 'img-one.gif' : 'img-two.gif'; 

# output 
echo "<img src=\"$img\" />"; 
+0

对不起,如此含糊,但这个排序! (将在4分钟内接受)。 – Logan 2012-04-19 18:00:33

+0

@Cal Happy 4k rep :)从我+1使用三元表达式。 – Bojangles 2012-04-19 18:33:11

1

所以,我将假设你有一个表这与以下内容类似:

CREATE TABLE `mytable` (
    `id` int NOT NULL AUTO_INCREMENT, 
    `some_data` varchar(128), 
    `is_enabled` int(1) NOT NULL default 0, 
    PRIMARY KEY(`id`) 
); 

假设is_enabled是我们要查看的行。你可以执行类似于以下的内容。

$sql = 'SELECT `is_enabled`'; 
$sql .= ' FROM `mytable`'; 
$sql .= ' WHERE `id` = 1234'; 

$result = mysql_query($sql); 

if ($result && mysql_num_rows($result) > 0) { 
    while ($row = mysql_fetch_assoc($result)) { 
     if ($row['is_enabled']) { 
      // This row is enabled. 
     } else { 
      // This row is disabled. 
     } 

     //Alternatively, do something like this: 
     ?> 
     <img src="<?php echo $row['is_enabled'] ? '/row_is_yes.gif' : '/row_is_no.gif'; ?>" /> 
     <?php 
    } 
} 

然而,没有更多的信息,这是我能给的最多的帮助。