|
Posted by Rik on 07/17/07 13:30
On Tue, 17 Jul 2007 13:14:04 +0200, J_K9 <aib.wolphin@gmail.com> wrote:
> Hi,
>
> I'm having a problem with a web app I am developing. The code in
> question is:
>
> $sql =3D "SELECT groupID FROM memberships WHERE userID =3D ".$uid;
> $result =3D mysql_query($sql);
> $result =3D mysql_fetch_array($result);
> print_r($result);
>
> Now, print_r($result) displays the following (when $uid =3D 1):
>
> Array ( [0] =3D> 1 [groupID] =3D> 1 )
>
> HOWEVER, that's not what it should be. If I run the same command at
> the MySQL CLI I get the following:
>
> +---------+
> | groupID |
> +---------+
> | 1 |
> | 2 |
> +---------+
>
> So, if I'm not mistaken, the $result array should contain ([0] =3D> 1,=
> [1] =3D> 2), NOT what PHP says it does. Can someone please tell me why=
> this is happening and how to correct it? I need to use the data
> outputted by MySQL in my PHP script but if PHP is not receiving the
> same data then I have no way of using it.
RTFM:
mysql_fetch_array():
1. Returns a single row from the result, use a while loop to get all =
result.
2. Returns a both numerically and associative array by default. Either u=
se =
the constants MYSQL_NUM or MYSQL_ASSOC, or the function mysql_fetch_row(=
) =
or mysql_fetch_assoc() respectively if this isn't desired behaviour.
$result =3D mysql_query($sql);
$set =3D array();
while($row =3D mysql_fetch_assoc()) $set[] =3D $row;
print_r($set);
-- =
Rik Wasmus
[Back to original message]
|