hope great. i have trouble with some php that's not at random choosing an ip. I'll attempt to explain.

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

Any-time the client chooses a a condition and submits the shape it is going to my database and pulls an ip releavant towards the condition. This is exactly what my database appears like

| state |      ip       |
| AL    | |
| AK    | |
| AZ    | |

Because of people about this forum i've some php code that's collecting the ip once the form is posted also it will get delivered to my email. Perfect. this is actually the code

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

  // connect
  $pdo = new PDO('mysql:host=localhost;dbname=name', 'dbuser', 'pass');
  // enable error handling through exceptions
  // create safe query
  $query = $pdo->prepare("SELECT ip FROM vincer WHERE state = ? ORDER BY RAND() LIMIT 1");
  // pass data & execute query (since the data are of string type
  // and therefore can be passed in this lazy way)
  // get value
  $ip = $query->fetchColumn();
  // print out the IP address using $ip
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'])) {

    $email_to = "1stoptutorials@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 />";

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

    $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) {
    $email_message = "Form details below.\n\n";

    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)."\n";
    $email_message .= "Last Name: ".clean_string($last_name)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    $email_message .= "State: ".clean_string($ip)."\n";
    $email_message .= "Comments: ".clean_string($comments)."\n";

// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
if (!mail($email_to, $email_subject, $email_message, $headers))
    echo "failed to send message";


The only real factor it's not doing is getting a random ip in the condition. For every condition ie AL,AK,AZ etc.. i've about 150 different ip addresses. So allows say someone chooses the condition of Alabama (AL), i would like it to at random choose and ip in the database that's within the same row as AL. It's obtaining the ip ok, but it's always delivering me exactly the same ip for AL.

Based on the code it ought to be carrying this out since the ORDER BY RAND is within there

$query = $pdo->prepare("SELECT ip FROM vincer WHERE state = ? ORDER BY RAND() LIMIT 1");

I requested around and many people recommended i want another column during my table having a title of id, making this what it really need to look like

| id   | state |      ip       |
|  1   | AL    | |
|  2   | AK    | |
|  3   | AZ    | |

They are saying i want the id in order to at random pull within the ip. Does anybody understand what php code i have to add this id to create all of this work. Any help could be much appreciated

Thanks Everybody