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>用于多条记录,您必须使用单独textarea的 s 才能单独修改和更新它们。

您的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 回答