mysql_fetch_array yielding different results to MySQL"s output

mysql_fetch_array yielding different results to MySQL"s output

am 17.07.2007 13:14:04 von J_K9

Hi,

I'm having a problem with a web app I am developing. The code in
question is:

$sql = "SELECT groupID FROM memberships WHERE userID = ".$uid;
$result = mysql_query($sql);
$result = mysql_fetch_array($result);
print_r($result);

Now, print_r($result) displays the following (when $uid = 1):

Array ( [0] => 1 [groupID] => 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] => 1,
[1] => 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.

Thanks,

-Max

Re: mysql_fetch_array yielding different results to MySQL"s output

am 17.07.2007 13:55:19 von Harrie Verveer

Hi Max,

mysql_fetch_array($result) returns only 1 record from your result. Try:

while($row = mysql_fetch_array($result))
{
print_r($row); // row is 1 record from the memberships table
}

Kind regards,

Harrie Verveer
--
http://www.ibuildings.nl/blog/authors/Harrie-Verveer

J_K9 wrote:
> Hi,
>
> I'm having a problem with a web app I am developing. The code in
> question is:
>
> $sql = "SELECT groupID FROM memberships WHERE userID = ".$uid;
> $result = mysql_query($sql);
> $result = mysql_fetch_array($result);
> print_r($result);
>
> Now, print_r($result) displays the following (when $uid = 1):
>
> Array ( [0] => 1 [groupID] => 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] => 1,
> [1] => 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.
>
> Thanks,
>
> -Max
>

Re: mysql_fetch_array yielding different results to MySQL"s output

am 17.07.2007 15:30:38 von luiheidsgoeroe

On Tue, 17 Jul 2007 13:14:04 +0200, J_K9 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