如何使用php mysql检索行值
源代码:如何使用php mysql检索行值,php,mysql,Php,Mysql,源代码: $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];
$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值:
安:1004丹尼尔
如何显示其他值10071008
桌子
答复:
从mysql查询中,只能获取列
id
和username
。您需要修改sql以包含更多列。从mysql查询中,您只能获取列id
和用户名
。您需要修改sql以包含更多列。您只需在查询中选择id和用户名,这可能会返回如下数组
array(
'id'=> 1005
'username'=> 'name'
)
如果100510071008是1004的孩子。你可能想这样做
while($resrow = mysql_fetch_array( $result1 )){
echo "ID:". $resrow['id'];
echo "Name:". $resrow['username'];
}
您只能在查询中选择id和用户名,这可能会返回如下数组
array(
'id'=> 1005
'username'=> 'name'
)
如果100510071008是1004的孩子。你可能想这样做
while($resrow = mysql_fetch_array( $result1 )){
echo "ID:". $resrow['id'];
echo "Name:". $resrow['username'];
}
您将行与列混淆。在此数据库上:
users
id | name | parentid
------+---------+----------
1004 | daniel | 1003
1005 | peter | 1004
1007 | michael | 1004
1008 | sam | 1004
查询SELECT id,name FROM users,其中parentid=1004
将返回第1005、1007和1008行
mysql\u fetch\u row()
一次只获取一行。这是跨(
id
和name
)的,没有下降(几个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)
}
*/
如上所述,不要在新工作中使用ext/mysql
。我在这里使用它只是因为你是这样问你最初的问题的。您需要更新代码并使用ext/mysqli
或PDO
。您将行与列混淆了。在此数据库上:
users
id | name | parentid
------+---------+----------
1004 | daniel | 1003
1005 | peter | 1004
1007 | michael | 1004
1008 | sam | 1004
查询SELECT id,name FROM users,其中parentid=1004
将返回第1005、1007和1008行
mysql\u fetch\u row()
一次只获取一行。这是跨(
id
和name
)的,没有下降(几个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)
}
*/
如上所述,不要在新工作中使用
ext/mysql
。我在这里使用它只是因为你是这样问你最初的问题的。您需要更新您的代码并使用ext/mysqli
或PDO
。您能显示表结构吗?我想即使我确定0,1,4,4,5不是冒号名称。。。您需要在$resrow['colon name here']
中使用冒号名称,这些值来自哪里<代码>100510071008?身份证姓名家长身份证1004丹尼尔1003,1005彼得1004,1007迈克尔1004,1008山姆1004救生--。它们不再得到维护,并且已经开始使用。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,。您能显示表结构吗?我想即使我确信0,1,4,4,5不是冒号名称。。。您需要在$resrow['colon name here']
中使用冒号名称,这些值来自哪里<代码>100510071008?身份证姓名家长身份证1004丹尼尔1003,1005彼得1004,1007迈克尔1004,1008山姆1004救生--。它们不再得到维护,并且已经开始使用。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,。我只需要显示id号,如基于parentidi的1005、1007、1008。我只需要显示id号,如基于parentidHi的1005、1007、1008。我必须显示单个值,如$resrow[0]、$resrow[1]、$resrow[2],我只需要显示前3个值。谢谢,@user1799052 noop他是对的。。如果要按自己的意愿获取多行,则需要使用循环,那么为什么要回显ID?要仅显示ID,只需运行循环并仅回显$resrow['ID']
。只需回显一个分隔符以查看它是否正确<代码>echo$resrow['id'].:'代码>。结果将是100510071008,
。您好,我必须显示单个值,如$resrow[0]、$resrow[1]、$resrow[2],只有前3个值需要显示。谢谢,@user1799052 noop他是对的。。如果要按自己的意愿获取多行,则需要使用循环,那么为什么要回显ID?要仅显示ID,只需运行循环并仅回显$resrow['ID']
。只需回显一个分隔符以查看它是否正确<代码>echo$resrow['id'].:'代码>。结果将是100510071008,
.Hi,回显“$IDs[0]”;回显“$IDs[1]”;这是打印值?的正确方法?。thanksHi,echo“$IDs[0]”;回显“$IDs[1]”;这是打印值?的正确方法?。谢谢