-1

私はこれの初心者で、最近コードを掘り下げました...これが機能しない理由を理解するのに苦労しています:

特定のデータ フィールドを削除するように検索結果にボタンを追加しましたが、削除されません。ここで何が欠けていますか?

<?php //deleting

isset($_GET['action']) ? $action=$_GET['action'] : $action="";

if($action=='delete'){
$id=$_REQUEST['id'];

$query=mysql_query("set names 'utf8'");
$query = mysql_query("DELETE FROM norse5_proov WHERE id='$id'") or die(mysql_error());

if($query){

echo "<div id='dain'><br><br><br><br><br><br><br><br><br><br>Andmed kustutatud.</div>";

}

}
?>

        <?php //searching
        mysql_query ("set character_set_results='utf8'"); 
        if($_SERVER['REQUEST_METHOD'] == "POST"){
            $query = "SELECT * FROM norse5_proov WHERE 1=1 ";

            if(!empty($_POST["osakond"])){
                $query .= " AND osakond LIKE '%".mysql_real_escape_string($_POST["osakond"])."%'";
            }
            if(!empty($_POST["soetusaasta"])){
                $query .= " AND soetusaasta LIKE '%".mysql_real_escape_string($_POST["soetusaasta"])."%'";
            }
            if(!empty($_POST["it_number"])){
                $query .= " AND it_number LIKE '%".mysql_real_escape_string($_POST["it_number"])."%'";
            }
            if(!empty($_POST["tooteruhm"])){
                $query .= " AND tooteruhm LIKE '%".mysql_real_escape_string($_POST["tooteruhm"])."%'";
            }
            if(!empty($_POST["mudeli_nimetus"])){
                $query .= " AND mudeli_nimetus LIKE '%".mysql_real_escape_string($_POST["mudeli_nimetus"])."%'";
            }
            if(!empty($_POST["sn"])){
                $query .= " AND sn LIKE '%".mysql_real_escape_string($_POST["sn"])."%'";
            }
            if(!empty($_POST["riigivara_nr"])){
                $query .= " AND riigivara_nr LIKE '%".mysql_real_escape_string($_POST["riigivara_nr"])."%'";
            }
            if(!empty($_POST["inventaari_nr"])){
                $query .= " AND inventaari_nr LIKE '%".mysql_real_escape_string($_POST["inventaari_nr"])."%'";
            }
            if(!empty($_POST["maja"])){
                $query .= " AND maja LIKE '%".mysql_real_escape_string($_POST["maja"])."%'";
            }
            if(!empty($_POST["ruum"])){
                $query .= " AND ruum LIKE '%".mysql_real_escape_string($_POST["ruum"])."%'";
            }
            if(!empty($_POST["vastutaja"])){
                $query .= " AND vastutaja LIKE '%".mysql_real_escape_string($_POST["vastutaja"])."%'";
            }
            if(!empty($_POST["markus"])){
                $query .= " AND markus LIKE '%".mysql_real_escape_string($_POST["markus"])."%'";
            }
            if(!empty($_POST["id"])){
                $query .= " AND id LIKE '%".mysql_real_escape_string($_POST["id"])."%'";
            }

            ?>
            <table id="tablk">
                <tr>
                    <th width="80">Osakond</th>
                    <th width="80">Soetusaasta</th>
                    <th width="80">IT Number</th>
                    <th width="80">Tooterühm</th>
                    <th width="80">Mudeli nimetus</th>
                    <th width="80">SN</th>
                    <th width="80">Riigivara nr</th>
                    <th width="80">Inventaari nr</th>
                    <th width="80">Maja</th>
                    <th width="80">Ruum</th>
                    <th width="80">Vastutaja</th>
                    <th width="80">Märkus</th>
                    <th width="80">ID</th>
                    <th width="80">Tegevus</th>
                </tr>
                <?php


                $result = mysql_query($query);
                while($row = mysql_fetch_assoc($result)){
                    echo "<tr>";
                    echo    "<td>".$row["osakond"]."</td>";
                    echo    "<td>".$row["soetusaasta"]."</td>";
                    echo    "<td>".$row["it_number"]."</td>";
                    echo    "<td>".$row["tooteruhm"]."</td>";
                    echo    "<td>".$row["mudeli_nimetus"]."</td>";
                    echo    "<td>".$row["sn"]."</td>";
                    echo    "<td>".$row["riigivara_nr"]."</td>";
                    echo    "<td>".$row["inventaari_nr"]."</td>";
                    echo    "<td>".$row["maja"]."</td>";
                    echo    "<td>".$row["ruum"]."</td>";
                    echo    "<td>".$row["vastutaja"]."</td>";
                    echo    "<td>".$row["markus"]."</td>";
                    echo    "<td>".$row["id"]."</td>";
                    echo "<td>";
                    echo "<button onclick='delete_user( {id} )'>Kustuta</button>"; 
                    echo "<form method='post' action='edit.php?id=<?php echo ".$row["id"]."; ?>'><input type='submit' value='Muuda'>";
                    echo "</td>";

                    echo "</tr>";
                }
                mysql_free_result($result);
                ?>
            </table>
            <?php
        }
        ?>
4

3 に答える 3

2

この行:

echo "<button onclick='delete_user( {id} )'>Kustuta</button>"; 

ボタンを作成して関数を呼び出しdelete_userますが、PHP 関数ではなく Javascript です。この関数を定義していない可能性があります。第二に、問題は にある可能性があり{id}ます。おそらく、 と書くべきdelete_user(".$row["id"].")でした。

削除するフォームを送信するボタンを作成する必要があると思います。1 つは編集用 (次の行にあります)、もう 1 つは削除用です。

私が引用した行の代わりに:

echo "<form method='post' action='edit.php?action=delete&id=".$row["id"]."'><input type='submit' value='Muuda'>";
于 2013-03-04T08:16:36.037 に答える
0
echo "<form method='post' action='edit.php?id=<?php echo ".$row["id"]."; ?> 

上記の行は、PHP 文字列内で PHP タグを開いています。

于 2013-03-04T08:13:18.820 に答える
0

試す

echo "<button onclick='delete_user(".$row[id].")'>Kustuta</button>"; 
echo "<form method='post' action='edit.php?action=delete&id=<?php echo ".$row["id"]."; ?>'><input type='submit' value='Muuda'>";
于 2013-03-04T08:18:12.293 に答える