SQL Server将状态发布到电子邮件

Hey Everyone hope all ok. I am needing your expertise.

I have an html form and inside of it I have a drop down option to choose a state

<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>

Any-time the customer selects a a state and submits the form it goes to my SQL Server database and pulls an ip address relevant to the state they choose in the html form.

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

So for example, lets say they choose Alabama (AL), when they submit the form i want the code to connect to the php file and then show the ip address relevant to the state, in this case (AL). I have some php code for this thanks to this forum and another

<?php
// visit http://php.net/pdo for more details
// start error handling

try 
{
$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"); 

$state = $_POST['State'];

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

//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));

}
catch (Exception $e)
{
  echo "sorry, there was an error.";
  mail("email@gmail.com", "database error", $e->getMessage(), "From: email@gmail.com");
}

if(isset($_POST['email'])) {

    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = "email@gmail.com";
    $email_subject = "This is a test";


    function died($error) {
        // your error code can go here
        echo "We are very sorry, but there were error(s) found with the form you submitted. ";
        echo "These errors appear below.<br /><br />";
        echo $error."<br /><br />";
        echo "Please go back and fix these errors.<br /><br />";
        die();
    }

    // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !isset($_POST['last_name']) ||
        !isset($_POST['email']) ||
        !isset($_POST['what']) ||
        !isset($_POST['State']) ||
        !isset($_POST['comments'])) {
        died('We are sorry, but there appears to be a problem with the form you submitted.');       
    }

    $what = $_POST['what']; // required
    $first_name = $_POST['first_name']; // required
    $last_name = $_POST['last_name']; // required
    $email_from = $_POST['email']; // required
    $state = $_POST['State']; // not required
    $comments = $_POST['comments']; // required

    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  if(!preg_match($email_exp,$email_from)) {
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />';
  }
    $string_exp = "/^[A-Za-z .'-]+$/";
  if(!preg_match($string_exp,$first_name)) {
    $error_message .= 'The First Name you entered does not appear to be valid.<br />';
  }
  if(!preg_match($string_exp,$last_name)) {
    $error_message .= 'The Last Name you entered does not appear to be valid.<br />';
  }
  if(strlen($comments) < 2) {
    $error_message .= 'The Comments you entered do not appear to be valid.<br />';
  }
  if(strlen($error_message) > 0) {
    died($error_message);
  }
    $email_message = "Form details below.

";

    function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }

    $email_message .= "First Name: ".clean_string($first_name)."
";
    $email_message .= "Last Name: ".clean_string($last_name)."
";
    $email_message .= "What: ".clean_string($what)."
";
    $email_message .= "Email: ".clean_string($email_from)."
";
    $email_message .= "State: ".clean_string($state)."
";
    $email_message .= "Comments: ".clean_string($comments)."
";
// create email headers
$headers = 'From: '.$email_from."
".
'Reply-To: '.$email_from."
" .
'X-Mailer: PHP/' . phpversion();
if (!mail($email_to, $email_subject, $email_message, $headers))
{
    echo "failed to send message";
}  

?>


<!-- include your own success html here -->

Thank you for contacting us. We will be in touch with you very soon.

<?php
}
?>

This above code works great, I collect the state randomly and sends it to me in an email with the rest of the form info. The problem I have is that in the email it is sending me the letters, for example it is sending me "AL or AZ or CA etc.." it is not sending me the ip address. I think it has something to do with this line of code

$email_message .= "State: ".clean_string($state)."
";

mainly the $state part. I want it to select the user_ip part but can not find out how to do it. I have tried this but it does not work

$email_message .= "State: ".clean_string('user_ip')."
";

This is how it displays in an email

First Name: afdf
Last Name: sfgsdf
What: hellow
Email: sd@fd.com
State: AL
Comments: ali alabama2

I want it to be this

First Name: afdf
Last Name: sfgsdf
What: hellow
Email: sd@fd.com
State: 123.456.1.21
Comments: ali alabama2

It's doing exactly what you've coded it to:

$email_message .= "State: ".clean_string($state)."
";

You're populating the variable $result with the ip address here:

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

//execute the SQL query and return records
$result = mssql_query($query);

So you really need $result instead of $state:

$email_message .= "State: ".clean_string($result)."
";