I'm trying to select a value from a database and display it to the user using SELECT. However I keep getting this error:
Notice: Array to string conversion in (pathname) on line 36.
I thought that the @mysql_fetch_assoc();
would fix this but I still get the notice. This is the part of the code where I'm getting the error:
{
$loggedin = 1;
$get = @mysql_query("SELECT money FROM players WHERE username =
'$_SESSION[username]'");
$money = @mysql_fetch_assoc($get);
echo '<p id= "status">'.$_SESSION['username'].'<br>
Money: '.$money.'.
</p>';
}
What am I doing wrong? I'm pretty new to PHP.
This question is related to
php
mysql
sql-server
arrays
select
One of reasons why you will get this Notice: Array to string conversion in… is that you are combining group of arrays. Example, sorting out several first and last names.
To echo elements of array properly, you can use the function, implode(separator, array)
Example:
implode(' ', $var)
result:
first name[1], last name[1]
first name[2], last name[2]
More examples from W3C.
You cannot echo an array. Must use print_r instead.
<?php
$result = $conn->query("Select * from tbl");
$row = $result->fetch_assoc();
print_r ($row);
?>
mysql_fetch_assoc returns an array so you can not echo an array, need to print_r() otherwise particular string $money['money'].
Store the Value of $_SESSION['username'] into a variable such as $username
$username=$_SESSION['username'];
$get = @mysql_query("SELECT money FROM players WHERE username =
'$username'");
it should work!
Even simpler:
$get = @mysql_query("SELECT money FROM players WHERE username = '" . $_SESSION['username'] . "'");
note the quotes around username in the $_SESSION reference.
Source: Stackoverflow.com