我创建了一个数据库,其中包含一些名称和名称的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;
?>
mysql_fetch_*()
只从结果集中获取一行。你需要在一个循环中提取:
while($row = mysql_fetch_array($query)) {
echo $row['job'];
}
并停止使用mysql_*()函数。它们已经过时和被弃用了。我强烈建议您改用mysqli或PDO。
- 看看
mysql_fetch_array()
是如何工作的。它返回一个与提取的行相对应的数组,并向前移动内部数据指针。他们在手册中有一些很好的例子。你基本上必须创建一个循环来归档你想要的东西 - 从PHP 5.5.0开始,MySQL扩展已被弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展
试着这样写:
...
$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;
}
....
您需要遍历作为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;
}
?>
一些经过修改的版本,带有一些压缩
..
$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;
}
}
..
//读取准备语句
检查这个,我想这会帮助你
<?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 ;
}
}
.....
?>
?>