mysql_fetch_array()输出两条记录

miyaboy 2010-07-14 11:09:06
各位大侠,MySQL数据库里明明每条记录只有一条,为什么我用mysql_fetch_array()输出每天记录都输入了两条?
...全文
466 点赞 收藏 11
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
miyaboy 2010-07-16
[Quote=引用 10 楼 xuzuning 的回复:]

select * from user,message,friend where
$utel=message.utelnum and message.ftelnum=friend.ftelnum

你有三个表:user,message,friend
但你只对其中的两个做了连接:message.ftelnum=friend.ftelnum
表 user 将做笛卡尔连接,当然要多出记录了
……
[/Quote]

果然是对表的连接出了问题啊,呵呵!感谢!
回复
xuzuning 2010-07-15
select * from user,message,friend where
$utel=message.utelnum and message.ftelnum=friend.ftelnum

你有三个表:user,message,friend
但你只对其中的两个做了连接:message.ftelnum=friend.ftelnum
表 user 将做笛卡尔连接,当然要多出记录了
回复
kyzy_yy_pm 2010-07-15
正常,你可以用mysql_fetch_assoc()
回复
zhaoyu0826 2010-07-15
[Quote=引用 6 楼 blue44sky 的回复:]

呵呵,你要指定参数
mysql_fetch_array($result,MYSQL_ASSOC)
还有其他的参数,这个参数表示下标用字段名表示,而不是顺序用数字下标表示。

如果省略此参数,则两种下标都会有,估计就会有两条。
[/Quote]

+1
回复
blue44sky 2010-07-15
呵呵,你要指定参数
mysql_fetch_array($result,MYSQL_ASSOC)
还有其他的参数,这个参数表示下标用字段名表示,而不是顺序用数字下标表示。

如果省略此参数,则两种下标都会有,估计就会有两条。
回复
床上等您 2010-07-14
把 sql echo 出来,在 mysql 上运行一下,觉得是你的 sql 语句有问题。

再 var_dump($result); 看看返回的结果。
回复
miyaboy 2010-07-14
所以代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
<!--
.STYLE3 {color: #006600}
-->
</style>

</head>

<body>
<?php
include("config.php");
require_once("header.php");
$utel=$_SESSION["utel"];
$result=mysql_query("select * from user,message,friend where

$utel=message.utelnum and message.ftelnum=friend.ftelnum");
?>
<p><a href="msgAdd_client.php">添加新信息</a></p>
<table width="100%" border="2">
<tr bgcolor="#999999"><td width="12%"><span class="STYLE3">好友姓名

</span></td>
<td width="14%"><span class="STYLE3">好友手机号</span></td>
<td width="13%"><span class="STYLE3">好友生日 </span></td>
<td width="17%"><span class="STYLE3">消息发送时间</span></td>
<td width="16%"><span class="STYLE3">祝福信息</span></td>
<td > </td>
<td > </td>
</tr>
<?php
while($row=mysql_fetch_array($result)){
?>

<tr>
<td><?php echo $row["fname"]; ?></td>
<td><?php echo $row["ftelnum"];?></td>
<td><?php echo $row["fbirthday"]; ?></td>
<td><?php echo $row["time"]?></td>
<td><?php echo $row["content"]; ?></td>
<td width="8%">
<form id="form1" name="form1" method="post"

action="msgChange_client.php">
<input type="hidden" name="fid" value="<?php echo $row["fid"]?>">
<input type="submit" name="Submit" value="修改" />
</form>
</td>
<td width="8%">
<form id="form2" name="form2" method="post"

action="msgDelete_client.php">
<input type="hidden" name="fid" value="<?php echo $row["fid"]?

>">
<input type="submit" name="Submit" value="删除">
</form></td>

</tr>
<?php } ?>
</table>
</body>
</html>
回复
床上等您 2010-07-14
给出所有代码吧,sql语句。
回复
miyaboy 2010-07-14
哦,代码如下:
while($row=mysql_fetch_array($result)){
?>

<tr>
<td><?php echo $row["fname"]; ?></td>
<td><?php echo $row["ftelnum"];?></td>
<td><?php echo $row["fbirthday"]; ?></td>
<td><?php echo $row["time"]?></td>
<td><?php echo $row["content"]; ?></td>
执行结果:
好友姓名 好友手机号 好友生日 消息发送时间 祝福信息
范玲玲 19785698458 1989-02-09 2010-06-01 09:05:00 20岁生日快乐,收到我给你的礼物
范玲玲 19785698458 1989-02-09 2010-06-01 09:05:00 20岁生日快乐,收到我给你的礼物
李昶娃娃 16589854321 1988-06-02 2010-06-18 11:00:00 祝你生日快快乐乐!回来了没?
李昶娃娃 16589854321 1988-06-02 2010-06-18 11:00:00 祝你生日快快乐乐!回来了没?
陈磊 14598758465 1988-09-13 2010-06-30 19:45:00 猪,你生日快乐!
陈磊 14598758465 1988-09-13 2010-06-30 19:45:00 猪,你生日快乐

每条记录都是重复的...
回复
freedom_gooboy 2010-07-14
要贴出代码啊。。这样好让大家看出有什么情况啊
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告