mssql连接到状态

时间:2011-11-30 08:23:46

标签: php sql sql-server database

嘿大家都希望一切都好。我需要你的专业知识。

我有一个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>

任何时候客户选择一个状态并将表单提交到我的mssql数据库并将一个ip地址释放到他们在html表单中选择的状态。

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

所以例如,让我们说他们选择Alabama(AL),当他们提交表单时我希望代码连接到php文件,然后显示重新接通状态的ip地址,在这种情况下(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,它会显示与AL或AK相关的所有IP地址。我想要它做的是识别从表单中选择的状态然后只显示根据状态随机选择的一个IP地址

我只是不确定要添加什么WHERE状态='这里有什么'“;部分使其全部工作并让它从状态中随机选择一个ip

非常感谢任何帮助。

谢谢大家

2 个答案:

答案 0 :(得分:2)

试试这个。

$state = $_POST['State'];

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

答案 1 :(得分:1)

如果我理解你的意思,你可以使用它:

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

请注意使用RAND()函数(随机排序检索到的行)和使用TOP 1(只检索一行)。