这段代码中,
在此句中, $sql="select * from db_stu_info where name='$name'"; 
$name是要通过用户自己输入才能够进行查询的,所以当前的值为空
而mysql_num_rows($query);是对统计记录集中的记录数,
如果为空,左会显示B的语句,如果有数据则会显示A的语句
if ($num > 0) {echo A;}else{echo B;}这样问题就出来啦,当我一打开页面,还没有进行查询的时候,就会出现else{}里面的东西。
这样的显示是不正确的,不知道怎么改以下是具体的代码  <tr
    <?php
      include_once("conn.php");
      $name = $_POST ['name'];
  $sql="select * from db_stu_info where name='$name'";
  $query = mysql_query($sql) or die("执行sql语句失败".mysql_error());
      $num = mysql_num_rows($query);
  if ($num > 0) {
   while($row = mysql_fetch_array($query))
{
?>
<td><?php echo $row['name'] ?></td>
        <td><?php echo $row['num']; ?></td>
        <td><?php echo $row['sex']; ?></td>
        <td><?php echo $row['department']; ?></td>
        <td><?php echo $row['class1']; ?></td>
<?php
   }
  }
  else{
   echo "<script>alert('没有此学生信息,请重新填写!'); history.back();</script>";
  }
?>  </tr>

解决方案 »

  1.   

    你的代码就这十几行,不执行if里的就执行else里的,这有啥不明白的呢.include_once("conn.php");
    if(!empty($_POST['name']))
    {//有post数据才查询.
          $name = $_POST ['name'];
          $sql="select * from db_stu_info where name='$name'";
          $query = mysql_query($sql) or die("执行sql语句失败".mysql_error());
          $num = mysql_num_rows($query);
          if ($num > 0) {
              while($row = mysql_fetch_array($query))
                {
            ?>
            <td><?php echo $row['name'] ?></td>
            <td><?php echo $row['num']; ?></td>
            <td><?php echo $row['sex']; ?></td>
            <td><?php echo $row['department']; ?></td>
            <td><?php echo $row['class1']; ?></td>
            <?php
                  }
          }
          else{
              echo "<script>alert('没有此学生信息,请重新填写!'); history.back();</script>";
          }
    }
      

  2.   

    empty() 检查一个变量是否为空!
      

  3.   

    把SQL语句ECHO 出来嘛,然后一个地方一个地方的排除撒
      

  4.   

    还是多看看书吧,先把基础打牢
    php和mysql web开发第三版.