Reputation: 23
source code:
$display = 1004;
$result1 = mysql_query("SELECT id, username FROM users where parentid=$diplay");
$resrow = mysql_fetch_row($result1);
$g = $resrow[0];
$g1 = $resrow[1];
$g2 = $resrow[3]; -error not display
$g3 = $resrow[4];
$g4 = $resrow[5];
echo "ID: $g";
echo "ID: $g2";
echo "ID: $g3";
echo "ID: $g4";
i have to show 1005, 1007, 1008 but i can retrieve $g value only:
ans: 1004 daniel
how i can show other values 1007,1008
Table
id ----name ----- parentid
-----------------------------------
1004 daniel 1003
1005 peter 1004
1007 michael 1004
1008 sam 1004
ans:
$g
1004
/ \
g2 g3
1005 1007
Upvotes: 1
Views: 2924
Reputation: 281
You are confusing rows with columns. On this database:
users
id | name | parentid
------+---------+----------
1004 | daniel | 1003
1005 | peter | 1004
1007 | michael | 1004
1008 | sam | 1004
The query SELECT id, name FROM users where parentid=1004
will return rows 1005, 1007, and 1008.
mysql_fetch_row()
only fetches one row at a time.
That's across (the id
and name
), not down (several id
s).
To get a list of all of the ID values that match, you need to loop through all the rows:
$parentid = 1004;
$result = mysql_query( "SELECT `id` FROM `users` WHERE `parentid`=$parentid" );
while( $row = mysql_fetch_row( $result ) ){ $IDs[] = $row[0]; }
// $IDs is now an array holding each id from the resultset.
// It will look something like:
/*
array(3) {
[0]=>
int(1005)
[1]=>
int(1007)
[2]=>
int(1008)
}
*/
As mentioned above, don't use ext/mysql
for new work. I'm using it here only because that's how you asked your original question. You need to update your code and use ext/mysqli
or PDO
instead.
Upvotes: 1
Reputation: 487
You only select id and username in your query, which might have returned array like this
array(
'id'=> 1005
'username'=> 'name'
)
if 1005,1007,1008 are child of 1004. you might want to do
while($resrow = mysql_fetch_array( $result1 )){
echo "ID:". $resrow['id'];
echo "Name:". $resrow['username'];
}
Upvotes: 2
Reputation: 1760
From your mysql query, you can only get column id
and username
. You need to modify your sql to include more columns.
Upvotes: 2