1
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" style="display:inline"  method="post">
    <input type="submit" name="del" value="Delete">

    <br>

    <?php

    $con=mysql_connect("localhost","root") OR DIE ("cant connect to server".mysql_error());

    mysql_select_db("bedanshare") OR DIE ("cannot select db".mysql_error());

    $stud=mysql_query("SELECT * FROM studentreg");

    $count=mysql_num_rows($stud);

    echo "<table border='1'>";
    echo "<th><center />#</th>"; 
    echo "<th><center />Student Number</th>";
    echo "<th><center />First Name</th>";
    echo "<th><center />Last Name</th>";
    echo "<th><center />E-mail</th>";
    echo "<th><center />Username</th>";
    echo "<th><center />Password</th>"; 

    while($row=mysql_fetch_array($stud))
    {
    echo "<tr>";?>
    <td><input name='checkbox[]' type='checkbox' id='checkbox[]' value="<?php echo $row['ID']; ?>">
    <?php
    echo "<td><center />".$row['ID']."</td>";
    echo "<td><center />".$row['Fname']."</td>";
    echo "<td><center />".$row['Lname']."</td>";
    echo "<td><center />".$row['EmailAddress']."</td>";
    echo "<td><center />".$row['Username']."</td>";
    echo "<td><center />".$row['Password']."</td>";  
    echo "</tr>";
    }
    echo "</table>";

    if($del)
    {
    for($i=0;$i<$count;$i++)
    {
    $id=$checkbox[$i];
    $dels=mysql_query("DELETE FROM studentreg WHERE ID='$id'");
    }

    }

    ?>

    </form>

コードが行を削除しないのはなぜですか? :(助けてください。影響を受けるデータはないようです。IDは私の主キーですが、削除をクリックしても何も起こりません。クエリが間違っているとは思いません。ところで、チェックボックスを使用して複数の行を削除しています。

4

2 に答える 2

2

条件があります:

if($del)

true の場合のみ、ループに入り、行の削除を開始します。問題は、変数$delがコードで定義されていないことです。

編集: 条件を次のように変更します。

if(array_key_exists('del',$_POST))

次の行も次のように変更します。

$id=$checkbox[$i];

に:

$id=$_POST['checkbox'][$i];
于 2012-10-15T17:36:10.220 に答える