2012-04-19 71 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 
    } 
} 

然而,沒有更多的信息,這是我能給的最多的幫助。