0

Every time i try to print a value i get "ArrayArray" So this is what i got:

    while($row = $result->fetch_assoc()) 
    {   
        echo "<br>";
        echo "Usuario: " . $row.["Usuario"]. " - Password: " . $row.["Password"]. "- Privilegios: " . $row.["Nivel"]. "- Email: " . $row.["Email"]. "<br>";
        echo "Usuario: " . $row.['Usuario']. " - Password: " . $row.['Password']. "- Privilegios: " . $row.['Nivel']. "- Email: " . $row.['Email']. "<br>";
        var_dump($row.[]);
        $user=$row.["Usuario"];
        $pass=$row.["Password"];
        $lvl=$row.["Nivel"];
        $email=$row.["Email"];
        echo "<br> Usuario: " . $user. " - Password: " . $pass. "- Privilegios: " . $lvl. "- Email: " . $email. "<br>";
        $user=$row.['Usuario'];
        $pass=$row.['Password'];
        $lvl=$row.['Nivel'];
        $email=$row.['Email'];
        echo "Usuario: " . $user. " - Password: " . $pass. "- Privilegios: " . $lvl. "- Email: " . $email. "<br>";
    }

I wasnt sure which was the right way to use it so i did it a couple times. the query string:

Select * from Usuarios where Usuario='User' and Password='Pass' LIMIT 1

output:

Usuario: ArrayArray - Password: ArrayArray- Privilegios: ArrayArray- Email: ArrayArray
Usuario: ArrayArray - Password: ArrayArray- Privilegios: ArrayArray- Email: ArrayArray
string(10) "ArrayArray" 
Usuario: ArrayArray - Password: ArrayArray- Privilegios: ArrayArray- Email: ArrayArray
Usuario: ArrayArray - Password: ArrayArray- Privilegios: ArrayArray- Email: ArrayArray
Usuario: ArrayArray - Password: ArrayArray- Privilegios: ArrayArray- Email: ArrayArray
Usuario: ArrayArray - Password: ArrayArray- Privilegios: ArrayArray- Email: ArrayArray

Query result when run on db:

Usuario Password Nivel Email
User    Pass     3     email@this.com

i check 8 times all column names and data compare and its all correct. Any idea why this is, how can i solve it or how else can i read a mysql return table? Thanks! Ps: var_dump($row.["colName"]) returns "string(10) ArrayArray"

2 Answers2

1

Replace all instances of $row.["X"] with $row["X"]

$row is an array.

Lookup the correct way to access keys in an array.

Also, enabling error reporting will reveal:

Notice: Array to string conversion in ... some file at some line

You're trying to concatenate two arrays and print them. (in php>5.4, ["X"] is an array containing one element)

See this link on enabling error messages.
And this link on php arrays.

Hope it helps ;)

Community
  • 1
  • 1
Alex Tartan
  • 6,736
  • 10
  • 34
  • 45
0

Your code should like this:

while($row = $result->fetch_assoc()) 
    {   
        echo "<br>";
        echo "Usuario: " . $row["Usuario"]. " - Password: " . $row["Password"]. "- Privilegios: " . $row["Nivel"]. "- Email: " . $row["Email"]. "<br>";
        echo "Usuario: " . $row['Usuario']. " - Password: " . $row['Password']. "- Privilegios: " . $row['Nivel']. "- Email: " . $row['Email']. "<br>";
        var_dump($row[]);
        $user=$row["Usuario"];
        $pass=$row["Password"];
        $lvl=$row["Nivel"];
        $email=$row["Email"];
        echo "<br> Usuario: " . $user. " - Password: " . $pass. "- Privilegios: " . $lvl. "- Email: " . $email. "<br>";
        $user=$row['Usuario'];
        $pass=$row['Password'];
        $lvl=$row['Nivel'];
        $email=$row['Email'];
        echo "Usuario: " . $user. " - Password: " . $pass. "- Privilegios: " . $lvl. "- Email: " . $email. "<br>";
    }

Change $row.["Usuario"] to this $row["Usuario"] No need of . (Dot) after $row Remove all Dots after $row

Atif Tariq
  • 2,650
  • 27
  • 34