troubleshooting Question

SQL doesn't UPDATE the AJAX call when WHERE is specified

Avatar of Aimee Katherine
Aimee Katherine asked on
DatabasesJavaScriptPHPSQL
2 Comments1 Solution90 ViewsLast Modified:
Can somebody please help me? I'm writing code to tell when someone enters or leaves a webpage chatroom. The SQL query doesn't work when I add the WHERE portion. When I remove the WHERE username='$userLoggedIn' part, it does update, but it'll list all the users in the database. When I echo the variable $userLoggedIn right before the SQL query, it gives me the correct value each time, so I don't know why this value isn't passing to the SQL query. Another curious thing is that when I take the AJAX PHP code (from userfetch.php) and put it back to the start of the main page (where the call itself was made publicchat.php), the code updates and works well. However, the page ends up looking really messed up though, but I can see that the code executed and UPDATEd on that page. It won't update where it's supposed to, though.
I should also mention that the code does work as it should if I assign a value to $userLoggedIn. This leads me to believe that the problem lies in the variable $userLoggedIn. I did try changing the name itself, but had the same problem. Any thoughts?

Any help is so greatly appreciated!!!

Here is the code:

userfetch.php:
<?php

include_once('config/config.php');

if(isset($_POST['userLoggedIn'])){
$userLoggedIn = $_POST['userLoggedIn'];

//enter users into database
if(isset($_POST['userinchat'])){
$userinchat = $_POST['userinchat'];
if ($userinchat === "yesway"){
    $date_time_now = date("Y-m-d H:i:s");

    echo $userLoggedIn;

    mysqli_query($conn, "UPDATE users SET in_chatroom='yes',      lasttime_spotted='$date_time_now' WHERE username='$userLoggedIn' ");      
    }
}  
?>

publicchat.php

<script>    
function users(){
var xhr1 = new XMLHttpRequest();
xhr1.open('POST' , 'userfetch.php' , true);
xhr1.setRequestHeader('content-type','application/x-www-form-    urlencoded');
xhr1.send('userinchat=' + userinchat + '&userLoggedIn=' + username);
xhr1.onreadystatechange = function()
    {
    document.getElementById('loginperson').innerHTML = xhr1.responseText;
    }
}
</script>
ASKER CERTIFIED SOLUTION
Join our community to see this answer!
Unlock 1 Answer and 2 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 2 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros