2014-09-28 52 views
0

我想使用表格內的0-25範圍內的數字進行foreach。因此,如果數據庫number_exist020確實存在於數據庫中,則不需要在foreach循環中創建一個帶有數字標籤的單選框,而只需刪除收音機框和數字標籤,並將背景設爲黑色或任何顏色它應該被禁用或不可用,我應該怎麼做?請幫幫我。按數字選擇foreach循環範圍

在此先感謝。

================

數據庫名稱:測試

表名:codetest

其具有

==================== 
||id||number_exist|| 
||==||============|| 
|| 1|| 020  || 
==================== 
--------------------------------------------------------------------------- 

define('DB_NAME', 'testing'); 
define('DB_USER', 'root'); 
define('DB_PASSWORD', ''); 
define('DB_HOST', 'localhost'); 

function sql_connect() { 
    $connection = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) 
    or die ("Could not connect to server ... \n" . mysql_error()); 
    mysql_select_db(DB_NAME) 
    or die ("Could not connect to database ... \n" . mysql_error()); 
} 

<table border="1" style="margin:0 auto;font-size:11px;text-align:center;"><tr> 

<?php 
foreach (range(0, 25) as $number) { 
$number=sprintf('%03d', $number); 

sql_connect(); 
$query=mysql_query("SELECT * FROM codetest"); 
while($row=mysql_fetch_array($query)) { 
$exist=$row['number_exist']; 

if ($number==$exist) { 
$labelme="NA"; 
} else { 
$labelme="<input type='radio' name='lot' value='".$number."' id='".$number."' class='rad'> 
<label for='".$number."'>".$number."</label>"; 
} 
} 
echo "<td>"; 
echo $labelme; 
echo "</td>"; 
} 
?> 

</tr></table> 
一個數據
+0

你有什麼問題? – 2014-09-28 17:34:02

+0

查詢數據庫,使用條件語句與返回值進行比較。 – Ohgodwhy 2014-09-28 17:37:11

+0

'number_exist'是VARCHAR或INT還是其他?使用'foreach'可能需要使用'IN'或'FIND_IN_SET' – 2014-09-28 17:38:44

回答

0

在你的foreach中添加一個if-else語句。如果$number回聲它不可用否則回聲單選按鈕。

+0

先生,我更新了上面的代碼,請看看它,上面的查詢似乎把數字「020」中的「NA」而不是「數字廣播框和標籤」,但事情是,如果我把兩個數據庫中的數字是「020」和「021」,回聲只在數字「021」上放置「NA」而不是「020」和「021」。 – 2014-09-28 18:00:54

+0

當你回顯「NA」後,你需要跳出while循環,否則它會繼續到下一個數字。此外,請嘗試重構您的代碼。現在,每次運行foreach時都會調用相同的查詢,但實際上只需要在開始時調用一次。 – 2014-09-28 18:11:44

+0

謝謝你的迴應先生,但我應該怎麼做,先生?因爲我只是新的PHP ..謝謝你先生 – 2014-09-28 18:13:17