各位大侠,MySQL数据库里明明每条记录只有一条,为什么我用mysql_fetch_array()输出每天记录都输入了两条?

解决方案 »

  1.   

    哦,代码如下: 
    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  猪,你生日快乐 每条记录都是重复的...
      

  2.   

    所以代码如下:
    <!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 >&nbsp;</td>
       <td >&nbsp;</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>
      

  3.   

    把 sql echo 出来,在 mysql 上运行一下,觉得是你的 sql 语句有问题。再 var_dump($result); 看看返回的结果。
      

  4.   

    呵呵,你要指定参数
    mysql_fetch_array($result,MYSQL_ASSOC)
    还有其他的参数,这个参数表示下标用字段名表示,而不是顺序用数字下标表示。如果省略此参数,则两种下标都会有,估计就会有两条。
      

  5.   

    正常,你可以用mysql_fetch_assoc()
      

  6.   

    http://blog.163.com/doudou8820@126/blog/static/400297642009713104044323/
      

  7.   

    select * from user,message,friend where 
    $utel=message.utelnum and message.ftelnum=friend.ftelnum你有三个表:user,message,friend
    但你只对其中的两个做了连接:message.ftelnum=friend.ftelnum
    表 user 将做笛卡尔连接,当然要多出记录了