2011-11-30 167 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