1

ソースコード:

$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";

1005、1007、1008 を表示する必要がありますが、$g 値のみを取得できます。

ans: 1004 ダニエル

他の値 1007,1008 を表示する方法

テーブル

id           ----name  -----    parentid
-----------------------------------
1004            daniel         1003
1005            peter          1004
1007            michael        1004
1008            sam            1004

答え:

        $g
        1004
     /        \
    g2         g3   
   1005       1007
4

3 に答える 3

2

mysql クエリからは、列idusername. より多くの列を含めるように SQL を変更する必要があります。

于 2012-11-05T02:51:05.383 に答える
2

クエリでIDとユーザー名のみを選択すると、次のような配列が返される可能性があります

array(
    'id'=> 1005
    'username'=> 'name'
)

1005,1007,1008 が 1004 の子である場合。

while($resrow = mysql_fetch_array( $result1 )){
    echo "ID:". $resrow['id'];
    echo "Name:". $resrow['username'];
}
于 2012-11-05T02:56:27.300 に答える
1

を混同しています。このデータベースで:

users
id    | name    |  parentid
------+---------+----------
1004  | daniel  |  1003
1005  | peter   |  1004
1007  | michael |  1004
1008  | sam     |  1004

クエリ SELECT id, name FROM users where parentid=1004は行 1005、1007、および 1008 を返します。

mysql_fetch_row()一度に 1 行だけフェッチします。
それは(idname) であり、下(数id秒) ではありません。

一致するすべての ID 値のリストを取得するには、すべての行をループする必要があります。

$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)
}
*/

前述のとおり、new work には使用しないext/mysqlでください。私がここでそれを使用しているのは、それがあなたが最初の質問をした方法だからです. コードを更新して、代わりにext/mysqliorを使用する必要があります。PDO

于 2012-11-05T03:53:47.340 に答える