我创建了一个数据库,其中包含名称和作业的名称和ID,
然后创建一个页面,显示工程师的名字。 但它只显示了工程师的第一个人。这是代码
<?php
mysql_connect('localhost','root','');
mysql_select_db('data');
$eng='engineer';
$query= mysql_query("SELECT * FROM `data` WHERE `job` = '$eng'")or die(mysql_error());
$arr = mysql_fetch_array($query);
$num = mysql_num_rows($query);
$name= $arr['name'];
$job= $arr['job'];
echo $name;
echo $job;
?>
答案 0 :(得分:2)
mysql_fetch_*()
仅从结果集中提取单行。你需要获取一个循环:
while($row = mysql_fetch_array($query)) {
echo $row['job'];
}
并停止使用mysql _ *()函数。它们已经过时并且已被弃用。我强烈建议您切换到mysqli或PDO。
答案 1 :(得分:0)
mysql_fetch_array()
的工作原理。它返回一个与获取的行对应的数组,并向前移动内部数据指针。他们有some good examples in the manual。你基本上必须创建一个循环才能达到你想要的效果。尝试这样写:
...
$query= mysql_query("SELECT * FROM `data` WHERE `job` = '$eng'")or die(mysql_error());
while ($arr = mysql_fetch_array($result, MYSQL_ASSOC)) {
$name= $arr['name'];
$job= $arr['job'];
echo $name;
echo $job;
}
....
答案 2 :(得分:0)
您需要遍历由于执行mysql查询而返回的结果集。 请尝试执行以下代码段
<?php
mysql_connect('localhost','root','');
mysql_select_db('data');
$eng='engineer';
$query= mysql_query("SELECT * FROM `data` WHERE `job` = '$eng'")or die(mysql_error());
$num = mysql_num_rows($query);
while($arr = mysql_fetch_array($query))
{
$name= $arr['name'];
$job= $arr['job'];
echo $name;
echo $job;
}
?>
答案 3 :(得分:0)
某些带有一些压缩的修改版本
..
$result= mysql_query("SELECT name, job FROM `data` WHERE `job` = '$eng'")or die(mysql_error());
if ($result)
{
while ($arr = mysql_fetch_assoc($result))
{
$name= $arr['name'];
$job= $arr['job'];
echo $name.$job;
}
}
..
//读取准备声明
答案 4 :(得分:0)
检查一下,我认为这会对你有帮助
<?php
......
$result= mysql_query("SELECT name, job FROM `data` WHERE `job` = '$eng'")or die(mysql_error());
if ($result)
{
while ($row = mysql_fetch_array($result))
{
$name = $row['name'];
$job= $row['job'];
echo "Name : " . $name ;
echo "Job : " . $job ;
}
}
.....
?>
&GT;