PHP如何输出数据库的每条数据

<?php$link=mysql_connect("localhost","","");MySQL_query("SETNAMES'gbk'");$sql="select... <?php
$link=mysql_connect("localhost","","");
MySQL_query("SET NAMES 'gbk'");
$sql = "select * from books";
$my_db = mysql_select_db(test,$link);
/*

$result = mysql_query($sql, $link); // 执行查询语句
$bookInfo = mysql_fetch_array($result); //返回查询结果到数组
mysql_close($link);
$name = $bookInfo["name"]; //将数据从数组取出
$price = $bookInfo["price"];
$isbn = $bookInfo["ISBN"];
echo "<li>《".$name."》</br>价格:".$price."</br>ISBN:".$isbn."</li>"; //输出数据
?>

如上面代码,实际上就是从mysql中select些数据
但是这样字写只能echo一次数据,也就是第一条数据
如果想输出所有符合要求的,要怎么写呢?
展开
 我来答
圣鸾OJ
2015-10-03 · TA获得超过1629个赞
知道小有建树答主
回答量:1136
采纳率:96%
帮助的人:112万
展开全部
结果已经有了,我就说下这句话的区别

mysql_select_db,字面上就能理解,选择数据库

去PHP手册中可以发现该函数的返回值是bool,也就是布尔值
bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )

只是确定操作是否成功

$result = mysql_query($sql, $link); // 执行查询语句

是执行查询语句,这时返回的是
resource mysql_query ( string $query [, resource $link_identifier ] )

资源符号,通过var_dump($result)可以看到该变量的类型,不是数组

随后通过mysql_fetch_array($result);获取实际查询语句所能获取的数据
每次操作,返回一行数据
该操作会变相的移动该资源的指针,PHP的概念里面没有指针,但需要知道该函数可以多次执行
概念和foreach一致

所以通过
while ($bookInfo = mysql_fetch_array($result)){

}
可以获取所有的行数据
如果没有数据会返回false,所以while会自动停止循环
阳光上的桥
2013-04-10 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65809
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
<?php
$link=mysql_connect("localhost","","");
MySQL_query("SET NAMES 'gbk'");
$sql = "select * from books";

$result = mysql_query($sql, $link); // 执行查询语句

while ($bookInfo = mysql_fetch_array($result)){ //返回查询结果到数组
$name = $bookInfo["name"]; //将数据从数组取出

$price = $bookInfo["price"];
$isbn = $bookInfo["ISBN"];
echo "<li>《".$name."》</br>价格:".$price."</br>ISBN:".$isbn."</li>"; //输出数据
}

mysql_free_result($result);
mysql_close($link);
?>

看明白了吗,使用while输出所有数据。
追问
发现了个错误:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in

这个我已经解决了,发现是少了这一句:
$my_db = mysql_select_db(test,$link);

可是我发现下面并没有用到my_db这个变量。为什么缺少了这个变量就会出错呢?

另外$result已经是一个数组了吗?
追答
我一般不用mysql_select_db,所以删除了这句,但是SQL相应修改就好了:
$sql = "select * from test.books";

$result是资源,不是数组。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gjgj821
2013-04-11 · TA获得超过416个赞
知道小有建树答主
回答量:501
采纳率:100%
帮助的人:467万
展开全部
结果已经有了,我就说下这句话的区别

mysql_select_db,字面上就能理解,选择数据库

去PHP手册中可以发现该函数的返回值是bool,也就是布尔值
bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )

只是确定操作是否成功

$result = mysql_query($sql, $link); // 执行查询语句

是执行查询语句,这时返回的是
resource mysql_query ( string $query [, resource $link_identifier ] )

资源符号,通过var_dump($result)可以看到该变量的类型,不是数组

随后通过mysql_fetch_array($result);获取实际查询语句所能获取的数据
每次操作,返回一行数据
该操作会变相的移动该资源的指针,PHP的概念里面没有指针,但需要知道该函数可以多次执行
概念和foreach一致

所以通过
while ($bookInfo = mysql_fetch_array($result)){

}
可以获取所有的行数据
如果没有数据会返回false,所以while会自动停止循环

希望能帮助你理解,返回值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
郭某人来此
2015-09-11 · TA获得超过1645个赞
知道答主
回答量:952
采纳率:100%
帮助的人:89万
展开全部
<?php
$link=mysql_connect("localhost","","");
MySQL_query("SET NAMES 'gbk'");
$sql = "select * from books";

$result = mysql_query($sql, $link); // 执行查询语句

while ($bookInfo = mysql_fetch_array($result)){ //返回查询结果到数组
$name = $bookInfo["name"]; //将数据从数组取出

$price = $bookInfo["price"];
$isbn = $bookInfo["ISBN"];
echo "<li>《".$name."》</br>价格:".$price."</br>ISBN:".$isbn."</li>"; //输出数据
}

mysql_free_result($result);
mysql_close($link);
?>

看明白了吗,使用while输出所有数据。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TORPORS3
2013-04-11
知道答主
回答量:2
采纳率:0%
帮助的人:2984
展开全部
$result是一个结果集。
mysql_select_db是选择下面mysql_query操作的数据库。
至于你按照回答发现的错误是引用资源出错了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式