MSSQL подключиться к государству - PullRequest
1 голос
/ 30 ноября 2011

Эй, все надеются, что все в порядке. Мне нужна ваша экспертиза.

У меня есть 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 |
+-----------+-------+---------------+

Так, например, допустим, что они выбирают Алабаму (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);
?> 

У меня проблема в том, ГДЕ часть

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

Если я поступаю так, как у меня выше, и добавляю AK или AL в раздел '', то отображаются все IP-адреса, связанные с AL или AK. Я хочу, чтобы он распознал состояние, выбранное из формы, и затем отображал только один IP-адрес, выбранный случайным образом в соответствии с состоянием

Я просто не уверен, что добавить к этому состоянию WHERE = 'что здесь' "; часть, чтобы все это работало и чтобы он случайно выбирал ip из состояния

Любая помощь будет принята с благодарностью.

Спасибо всем

Ответы [ 2 ]

2 голосов
/ 30 ноября 2011

Попробуй это.

$state = $_POST['State'];

$query = "SELECT TOP 1 stateip_id, state, user_ip
              FROM state_ip
              WHERE state='$state'
              ORDER BY RAND()"; 
1 голос
/ 30 ноября 2011

Если я понимаю, что вы имеете в виду, вы можете использовать это:

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

Обратите внимание на использование функции RAND () (для случайного упорядочения полученных строк) и использование TOP 1 (чтобы получить только одну строку).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...