2011-11-30 114 views
1

嘿大家都希望一切都好。我需要你的專業知識。mssql連接狀態

我有一個HTML的形式和它裏面我有一個下拉選項中選擇一個狀態

<select name="State"> 
    <option value="0" selected="selected">Select a State</option> 
    <option value="AL">Alabama</option> 
    <option value="AK">Alaska</option> 
    <option value="AZ">Arizona</option> 
    <option value="AR">Arkansas</option> 
     etc..... 
</select> 

任何時間客戶選擇AA狀態,並提交它去我的MSSQL數據庫,並拉動形式一個與他們在html表單中選擇的狀態相關的IP地址。

 
+-----------+-------+---------------+ 
| stateip_id| state | user_ip  | 
+-----------+-------+---------------+ 
|  1 | AL | 67.100.244.74 | 
|  2 | AK | 68.20.131.135 | 
|  3 | AZ | 64.134.225.33 | 
+-----------+-------+---------------+ 

因此,舉例來說,可以說,他們選擇阿拉巴馬(AL),當他們提交表單我想要的代碼連接到PHP文件,然後顯示IP地址releavant的狀態,在這種情況下( AL)。對於每個州我有200個不同的IP地址,所以我希望它隨機選擇和ip選擇狀態。

我找到了一些php代碼,並用我的詳細信息進行了測試,它連接到數據庫的罰款。

<?php 
$Server = "00.00.000.000,0000"; 
$User = "username"; 
$Pass = "password"; 
$DB = "dbname"; 

//connection to the database 
$dbhandle = mssql_connect($Server, $User, $Pass) 
    or die("Couldn't connect to SQL Server on $Server"); 

//select a database to work with 
$selected = mssql_select_db($DB, $dbhandle) 
    or die("Couldn't open database $DB"); 

//declare the SQL statement that will query the database 
$query = "SELECT stateip_id, state, user_ip "; 
$query .= "FROM state_ip "; 
$query .= "WHERE state='AK'"; 

//execute the SQL query and return records 
$result = mssql_query($query); 

$numRows = mssql_num_rows($result); 
echo "<h1>" . $numRows . " Row" . ($numRows == 1 ? "" : "s") . " Returned </h1>"; 

//display the results 
while($row = mssql_fetch_array($result)) 
{ 
    echo "<li>" . $row["stateip_id"] . $row["state"] . $row["user_ip"] . "</li>"; 
} 
//close the connection 
mssql_close($dbhandle); 
?> 

這個問題我已經是WHERE部分

$query .= "WHERE state='AK'"; 

如果我不喜歡我前面,並在「」部分添加AK,或AL也顯示與相關聯的所有IP地址AL或AK。我想要它做的是承認從表格中選擇的狀態,然後只顯示一個ip地址隨機選擇根據國家

我只是不知道該添加到WHERE狀態='什麼在這裏'「 ;一部分,使這一切工作,有它隨機從國家選擇一個IP

任何幫助,將不勝感激

謝謝大家

回答

1

如果我明白你的意思,你可以這樣做:

SELECT TOP 1 stateip_id, state, user_ip 
FROM state_ip 
WHERE state='THE-CHOOSEN-STATE' 
ORDER BY RAND() 

請注意使用RAND()函數(以隨機排序檢索的行)和使用TOP 1(僅檢索一行)。

+0

LIMIT - 只能在Mysql中使用 – Dezigo

+0

@Dezigo Infact我編輯了我的答案。 –

2

試試這個。

$state = $_POST['State']; 

$query = "SELECT TOP 1 stateip_id, state, user_ip 
       FROM state_ip 
       WHERE state='$state' 
       ORDER BY RAND()"; 
+0

感謝您的回答,這是工作,並拿起正確的IP地址,唯一沒有做的是每次隨機挑選一個,有什麼我需要補充。感謝你的幫助 – user1010914