大家好。我需要你的专业知识。
我有一个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数据库,并在html表单中提取与他们选择的状态相关的ip地址。
<>之前+-----------+-------+---------------+| stateip_id| state | user_ip |+-----------+-------+---------------+| 1 | al | 67.100.244.74 || 2 | ak | 68.20.131.135 |64.134.225.33 |+-----------+-------+---------------+之前例如,假设他们选择阿拉巴马州(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任何帮助都将非常感激。
谢谢大家
试试这个。
$state = $_POST['State'];
$query = "SELECT TOP 1 stateip_id, state, user_ip
FROM state_ip
WHERE state='$state'
ORDER BY RAND()";
如果我明白你的意思,你可以这样使用:
SELECT TOP 1 stateip_id, state, user_ip
FROM state_ip
WHERE state='THE-CHOOSEN-STATE'
ORDER BY RAND()
请注意RAND()函数的使用(对检索到的行进行随机排序)和TOP 1的使用(仅检索一行)。