0

I've been going through a number of guides on how to echo data from a random row in a MySQL database and I keep arriving at a blank page.

Here is what I believe to be the best version of code I have so far:

<?php $username="root";$password="notarealpassword";$database="offenders";

mysql_connect(localhost,$username,$password);

@mysql_select_db($database) or die( "Unable to select database");


$sSQLQuery = "SELECT last_name AND first_name FROM offenders ORDER BY RAND() LIMIT 1";  
$aResult = mysql_query($sSQLQuery); 
WHILE ($aRow = mysql_fetch_array($aResult)):
echo $aRow['last_name'] . " " . $row['first_name'];
ENDWHILE; 

?>

I have tested and made sure the connection to the database is working. Why am I arriving at a blank page and how can I fix it?

Thanks so much!

3
  • why do you close the connection before making the querry? Commented Aug 28, 2014 at 23:14
  • Because you close the connection first with mysql_close and then try to execute a query, also note that mysql_* functions are deprecated, look at mysqli_*. Commented Aug 28, 2014 at 23:15
  • 1
    The issue is that 'localhost' should be in quotes. Its a string literal not a variable. Also, aesthetically, I'd suggest dropping the :...ENDWHILE; syntax and using {...}. I did VB at one time too, but thank God for C-style syntax. Commented Aug 28, 2014 at 23:18

2 Answers 2

1
  1. Don't call mysql_close before making queries;
  2. mysql functions are deprecated, use mysqli instead;
  3. I would use curly brackets instead of WHILE - ENDWHILE;
  4. Column selected must be comma separated (not AND separated):

    $sSQLQuery = "
        SELECT 
          last_name, <- here
          first_name 
        FROM offenders 
        ORDER BY RAND() LIMIT 1";  
    
Sign up to request clarification or add additional context in comments.

Comments

1

Try to change three lines

1

mysql_connect('localhost',$username,$password);

2

mysql_select_db($database) or die( "Unable to select database");

3

$sSQLQuery = "SELECT last_name, first_name FROM offenders ORDER BY RAND() LIMIT 1";

2 Comments

The third correction is what did it. Wonder why that guide had me using 'AND'. Thanks a ton!
what guide? i seriously doubt they used AND

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.