So I recently came across this scenario where I needed to retrieve data using the mysqli_fetch_assoc() function but was not getting any output. My code was running and it wasn't giving me any errors. I tried using mysqli_num_rows to check if there was a result and it returned 1, meaning there was a result. So if you're in the same situation, I hope this will help. I had the following code:
$query = "SELECT id FROM users WHERE id = $user_id";
$result = mysqli_query($con, $query);
$row = mysqli_fetch_assoc($result);
echo $row['username'];
After hours of cracking my head, going through my code and countless Google searches I finally realized my mistake. If you take a closer look at the code above, you will realise that I am only selecting the id column from the users table. The result will thus be a table with a single column- id. So if I check whether the query returned a result, the answer will be yes. However that result does not contain the 'username' column which I am trying to echo at the end of my code snippet, meaning there won't be any output. So in order to fix this, I made a slight change to my code to select all columns that I needed. The code now looks like this:
$query = "SELECT * FROM users WHERE id = $user_id";
The result returned by this query contains a number of columns, including the 'username' which I am interested in.
I hope you found this helpful and manage to fix that bug that's been stressing you.
Happy coding
Comments