超链接是通过GET来传递的,所以你的$name=$_POST[name]应该改成$name=$_GET[name]<?php       
    include "../Conn/conn.php";
    $name=$_GET[name];
    
    $sql="delete from tb_pbook where name=".$name;
    $result=mysql_query($sql);
    if($result){
        echo "<script>alert('删除成功!');history.go(-1);</script>";
    }
    else{    
        echo "<script>alert('删除操作失败!');history.go(-1);</script>";
    }
    ?>

解决方案 »

  1.   

    漏洞百出的一段混编代码!
    首先说你取不到name值的问题,你用GET方法传值,却用POST来获取,当然获取不到!再者就是上面的表单里有三个button,但是这三个button的属性name的值竟然都是add,当然看出来你这个表单不是用来提交的,三个button也只是作为超链接使用的,但是同一表单内的name属性值取成不同的这是最基本的常识!否则如果这个表单是需要提交的,你获取到的同一name的值你知道是哪一个?数据库查询尽量别用*,还有do...while  ,PHP我忘了,C里面的do....while好像第一次循环 do是无视while的条件的,所以do....while要合理使用!
      

  2.   

    好吧,现在值是GET过来了,但是好像删除语句不怎么知道了,删除第一个成功后就一直删除失败
      

  3.   

    这段代码<?php 
     do{
     ?>
      <tr>
        <td colspan="2"><?php echo $row[0]; ?></td>
        <td><?php echo $row[1]; ?></td>
        <td >
        <a href="/Pbook/check_dele.php?name=<?php echo $row[0];?>">
        <img src="/images/A_delete.gif" width="52" height="16" align="middle" border="0" />
        </a>
        </td>
      </tr>
     <?php
     }while($row=mysql_fetch_row($sql));
     ?>改成<?php
    $i = 0; 
    while($row=mysql_fetch_array($sql)){      
    ?>
      <tr>
        <td colspan="2"><?php echo $row[$i][filed]; ?></td>
        <td><?php echo $row[$i][filed]; ?></td>
        <td >
        <a href="/Pbook/check_dele.php?name=<?php echo $row[$i][filed];?>">
        <img src="/images/A_delete.gif" width="52" height="16" align="middle" border="0" />
        </a>
        </td>
      </tr>
    <?php $i++;}?>
    <?php //filed代表你需要显示的字段名?>