2013-10-10 157 views
0

我有這種形式的一種形式SQL查詢有下拉框,我從所謂的「服務」這裏是填充下拉框與if條件

<?php 
$sql=mysql_query("SELECT id,name FROM service"); 
if(mysql_num_rows($sql)){ 
$select= '<select name="service">'; 
while($rs=mysql_fetch_array($sql)){ 
    $select.='<option value="'.$rs['id'].'">'.$rs['name'].</option>'; 
} 
}  
$select.='</select>'; 
echo $select; 
?> 

例如下拉碼錶填寫將類似的東西

<select name="service"> 
<option value="1">service1</option> 
<option value="2">service2</option> 
<option value="3">service3</option> 
</select> 

形式插入數據表稱爲客戶端

我想要做的是,例如,如果我選擇在下拉框「服務1」的第一個項目,並提交如果我嘗試添加另一項服務,我不希望項目「service1」再次出現,因此只能選擇一次,表格和數據將保存在表格「客戶端」中

回答

0

,如果你給表名和結構,所以我沒有在你的答案猜測這麼多這將是有益的。這是僞編碼,因爲我不知道你的表關係是什麼

SELECT id,name 
FROM service 
where id not in (select service_id from clients 
       where client = whichever_is_currently_logged_in_by_id?) 
+0

你能告訴我一個正確的表結構的兩個表應該是什麼樣的小示例我需要在兩個表中有相同的列? – JackNew

+0

從我在這裏看到的最簡單的方法是服務表,客戶端表,然後連接這兩個表的第三個表。所以服務是id,名字。比方說你有一個客戶端表,它有id,client_name,other_data。然後你會想要第三個包含id,client_id,service_id,informify_from_your_form_submitted(可能是1列或50列,等待你插入什麼信息)的表。連接兩者的第三張表將冗餘數據保持在最小值(如果您在客戶端表中保留了service_ID,則每個service_ID將有一行,並最終爲每個sevice_id重複客戶端信息)。 – Twelfth

+0

從client_sevice中選擇count(1),其中service_id = 1。這將使您快速計算service1出現的次數(以及service_id 1)。從client_service中選擇client(1),其中service_id = 1 group(count)(1)> = 25的客戶端。這將檢查單個客戶端是否有25個匹配service_id 1的條目。 – Twelfth

0

您可以將條件添加到SQL通過添加「WHERE」子句來查詢。

例如:

SELECT * FROM tb_MyTable WHERE 'name' = "Jim" 
+0

傑克,我想你想切換爲SQL Server的報價。 – asantaballa