0

したがって、テキストエリアでは、テーブルに格納されている値を次のように変更します。

$l=mysql_query("select * from intrebari where cod_chestionar='".$_SESSION['cod']."'");

echo "<form method='POST' action='lalalalal.php'>";
echo "<textarea  name='edit' cols='50'>";
while($p=mysql_fetch_array($l))

{

   echo $p[denumire_intrebare];
   echo "\n";

}
echo "</textarea>";
echo "<input type='submit' value='Finished' name='save_edit'/>";
echo "</form>";
}

それはすべて大丈夫です..質問である値は、別の行に表示されます。必要に応じて更新したいと思います。したがって、更新ファイルでは、次のように実行しています。

$a=$_POST['edit'];

$a_array=explode("\n",$a);


     foreach($a_array as $b)

     {


$sql=mysql_query("UPDATE intrebari set denumire_intrebare='$b' WHERE cod_chestionar='".$_SESSION['cod']."'");
echo $b;
}

同じcod_chestionarを持つすべての質問で更新を行いたいです。この瞬間、私が更新を行うと、すべての質問に同じ値が適用されます。エコーすると、値を変更したときに値が表示されますが、テーブルの更新は行われません。わからないので意見をいただけますか。

4

1 に答える 1

1

<textarea>マルチレコード用に1つを使用textareaしています。それらを変更して個別に更新できるようにするには、個別のを使用する必要があります。

intrebariテーブルには一意のIDフィールドが必要です。名前を付けidます。これを使用して、問題を解決します。

<?php

$l = mysql_query("select * from intrebari where cod_chestionar='".$_SESSION['cod']."'");

echo "<form method='POST' action='lalalalal.php'>";

while($p = mysql_fetch_array($l)){
    echo "<textarea  name='edit[".$p['id']."]' cols='50'>"; // Using `id` field here to make array of textareas
    echo $p[denumire_intrebare];
    echo "</textarea>";
}

echo "<input type='submit' value='Finished' name='save_edit'/>";
echo "</form>";

?>

そして更新:

<?php

$a = $_POST['edit'];

foreach($a AS $id => $b){
    $b = mysql_real_escape_string($b);
    $id = mysql_real_escape_string($id);

    $sql = mysql_query("UPDATE intrebari set denumire_intrebare='$b' WHERE id='".$id."'"); // Using id field again
}

?>
于 2012-09-19T10:33:58.590 に答える