1

こんにちは私はPHPの初心者です。どこが間違っているのかを理解するのを手伝ってください。以下は、SQLデータベース値をテーブルに取得しようとしている長いコードの抜粋です。チェックボックスが前に追加され、ユーザーが必要なレコードを選択して削除できるようになっています。私の問題は、チェックボックスでレコードを選択して削除を押すと、レコードが削除されないことです。

これValidation bitは、チェックボックスで選択した値を削除するためのコードに含まれているものです。Populating checkboxes for each data row extracted from the database:ループを介してチェックボックスを取得する方法を説明します。

提供された情報が十分でない場合は、強調表示してください。ありがとうございました。 検証ビット:

if(isset($_POST['deletez'])) 
  {
    foreach($_POST['deletez'] as $wec)
    {
    $db = mysqli_connect('localhost', 'root', '', 'regional_data');
    if(mysqli_connect_errno()) {die('The connection to the database could not be established.');}
    $rW = mysqli_query($db,"DELETE * FROM brands WHERE bname ='$wec'");
    } 
  }

データベースから抽出された各データ行のチェックボックスにデータを入力します。

while ($reK = mysqli_fetch_array($runBrands))
{
$wec = $reK['bname'];
    echo "<tr class='brndTab'>";
echo "<tr>" 
."<td><input type='submit' name='deleteR' id='deleteR' value='Delete.'></td>". 
"</tr>";    
echo "</table>";
    echo "<td class='brndTab'>".$reK["bname"]."</td>";
    echo "<td class='brndTab'>".$reK["bvariant"]."</td>";
    echo "<td class='brndTab1'>".$reK["bsku"]."</td>";
    echo "<td class='brndTa'><input type='checkbox' name='deletez[]' value='$wec'></td>";
    echo "</tr>";
}
4

1 に答える 1

0

まず、ループ内のdbに接続しないで、行を移動します$ db = mysqli_connect('localhost'、'root'、''、'regional_data'); foreachループの外側。それ以外の場合は、エントリごとに新しい接続を開きます。次に、mysql構文にエラーがあります。正しいステートメントは、DELETE FROM brands WHERE bname ='$ wec' "です。行の内容ではなく行を削除するためです。これをまとめるには、コードを変更します。このような:

$db = mysqli_connect('localhost', 'root', '', 'regional_data');
if(mysqli_connect_errno()) {die('The connection to the database could not be established.');}
foreach($_POST['deletez'] as $wec) {
    $rW = mysqli_query($db,"DELETE FROM brands WHERE bname ='$wec'");
} 
于 2013-01-26T15:34:45.300 に答える