mssql 连接到状态

Posted

技术标签:

【中文标题】mssql 连接到状态【英文标题】:mssql connect to state 【发布时间】:2011-11-30 08:23:45 【问题描述】:

大家好,希望一切顺利。我需要你的专业知识。

我有一个 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|状态 |用户ip | +-----------+-------+----------------+ | 1 |铝 | 67.100.244.74 | | 2 | AK | 68.20.131.135 | | 3 |亚利桑那州 | 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 state='what in here'"; 部分以使其全部工作并让它从状态中随机选择一个 ip

任何帮助将不胜感激。

谢谢大家

【问题讨论】:

【参考方案1】:

试试这个。

$state = $_POST['State'];

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

【讨论】:

感谢您的回答,这正在工作并获取正确的 IP 地址,唯一没有做的就是每次都随机获取一个,还有什么我需要添加的。感谢您的所有帮助【参考方案2】:

如果我明白你的意思,你可以使用这个:

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

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

【讨论】:

以上是关于mssql 连接到状态的主要内容,如果未能解决你的问题,请参考以下文章

将一个 lua 状态连接到另一个状态

远程连接到 MSSQL,使用 Windows 身份验证,JAVA

FTP总是无法连接到服务器

在没有 mssql 支持的情况下连接到 mssql

PDO 通过 MSSQL_* 函数连接到 MSSQL

无法连接到 docker 托管的 MSSQL