0

現在、デバッグ ページからエラーが発生しないという奇妙な問題に直面しています。私のテーブルは複数の行で構成されており、テーブルの最初の行だけを削除できません。

サンプルフォーム:

$DB = new PDO('sqlite:database/Sample.db');
$result = $DB->query("select * from staff");        
foreach ($result as $row)
{
    $StaffNo= $row['StaffNo'];
    $Name= $row['Name'];
    $TelNo= $row ['TelNo']; 

 echo "<tr>";
//Go to remove.php to remove
echo "<form action=\"Remove.php\" method=\"post\">";
echo "<input type=\"hidden\" name=\"StaffNo\" value=\"$StaffNo\">";
echo "<input type=\"submit\" onclick=\"return confirm('Yes/No')\"/>";
echo "</form>";
 echo "</td>";
echo '<td data-column-name="Name" char="data">'.$Name.'</td>';
echo '<td data-column-name="TelNo" char="data">'.$TelNo.'</td>';
</tr>
}

削除.php:

$StaffNo= $_POST["StaffNo"];
$DB = new PDO('sqlite:database/Sample.db');

$DB->query("DELETE FROM Staff WHERE StaffNo=".$StaffNo);

@header("location:view.php");

上記のコードから、最初の行を除くすべてのサンプル レコードを削除できます。削除されません...どこかで間違っていたら教えてください....

4

2 に答える 2

1

私はあなたのコードを試してみましたが、テーブルコードが壊れていることを除けば、すべて問題ないようです。表が正しいことを確認してください ( <table><tr><td>Content</td></tr></table>)。あなたの質問で<td>は、最初のファイルの 9 行目の開始点と<table>タグが欠落しています。一部のブラウザーは壊れたテーブルをうまく処理できないため、フォームが台無しになる場合があります。

が空の文字列の場合もクエリが壊れる$StaffNoので、再確認してください。

header()を使用して、呼び出しを削除してエラーを出力することもできます$DB->errorInfo()

于 2012-07-18T11:29:40.090 に答える
0

隠しフィールドに変数を挿入するには、「.$StaffNo」と入力する必要があります。「$StaffNo」の代わりに。おそらく、StaffNo が定義されている唯一のテーブルであるため、テーブルの最初の行は削除されません。

于 2012-07-18T10:51:19.900 に答える