www.webdeveloper.com
Results 1 to 5 of 5

Thread: [RESOLVED] How do I correct this piece of code?

  1. #1
    Join Date
    Mar 2014
    Posts
    8

    resolved [RESOLVED] How do I correct this piece of code?

    I have this piece of code. But I'm getting syntax errors and I'm not sure how to format it correctly. The echo $_SESSION['username'] part is not correct I think.

    Code:
    //query the database
    $query = mysql_query("SELECT * FROM users WHERE username = echo $_SESSION['username']");
    Thanks!

  2. #2
    Join Date
    Aug 2004
    Location
    Ankh-Morpork
    Posts
    19,637
    You don't need an echo. Instead, you'll be using string concatenation with the "." operator. (Well, it's one common way to do it, anyway -- there are a few other options I won't bother you with for now.)
    PHP Code:
    $query mysql_query("SELECT * FROM users WHERE username '".mysql_real_escape_string($_SESSION['username'])."'"); 
    I'll leave it up to you to research why I added the call to mysql_real_escape_string(), but here's a hint.
    "Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
    ~ Terry Pratchett in Nation

    eBookworm.us

  3. #3
    Join Date
    Mar 2014
    Posts
    8
    Thanks for your quick reply.
    I did what you suggested which got rid of the syntax error. Nice explanation

    Now it says "mysql_fetch_array(): supplied argument is not a valid MySQL result resource in path/index.php on line 19". I did some research and tried to look for any errors in the remaining code but couldn't find any. Could you please take a quick look at it? Thanks.

    Its able to connect to database ok. When I echo the username by just putting in
    Code:
     echo $_SESSION['username'];
    at the top of the script it works, but I need it to echo other data from the database based on the current username.

    Line 19 is the line with WHILE...

    Code:
    //connect to the server
    $connect = mysql_connect("localhost","users","password");
    
    //connect to the database
    mysql_select_db("users");
    
    //query the database
    $query = mysql_query("SELECT * FROM users WHERE username '".mysql_real_escape_string($_SESSION['username'])."'");
    
    //fetch the results
    	WHILE($rows = mysql_fetch_array($query)):
    		$username = $rows['username'];
                    $email = $rows['coins']
    	
    	echo "Welcome $username!!! <br> You have $coins coins.";
    	
    	endwhile;

  4. #4
    Join Date
    Aug 2004
    Location
    Ankh-Morpork
    Posts
    19,637
    99% of the time, that means the database did not understand your query, so mysql_query() returned false instead of a query result resource. Try adding some debug code after the query call to find out why. (Also, to help with that, I like to define the query string separately so we can reference it in the error output.)
    PHP Code:
    //query the database
    $sql "SELECT * FROM users WHERE username '".mysql_real_escape_string($_SESSION['username'])."'";
    $query mysql_query($sql);
    if(
    $query == false) {
        throw new 
    Exception("Query failed: ".mysql_error().PHP_EOL.$sql);
    }

    // rest of code... 
    "Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
    ~ Terry Pratchett in Nation

    eBookworm.us

  5. #5
    Join Date
    Mar 2014
    Posts
    8

    Cool

    Thanks a lot! I found the problem - I had double quotes instead of single quotes somewhere in the code. Its working now.


    Thanks!

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles