Witam wszystkich serdecznie
Są to dość teoretyczne rozwarzania, a kod jest napisany przez mnie z czystej ciekawości czy coś takiego da się zrobić, taki system poprawiania "hurtowo"danych z DB.
I. pobiera dane z DB
II. wyświetlam je w formularzu
III pola formularza mają nazwę: ++i
IV. poprawiam co potrzebóje
V. przy pomocy pętli for updejtuje DB
teraz kod:
<?php header('Content-Type: text/html; charset=utf-8');
try
{
$pdo = new PDO('mysql:host=localhost;dbname=niop', 'niop, 'niop');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
#echo 'ok';
$arg1nr=0; //pobieram dane z DB i wyświetlam w inpucie
$sql = $pdo->query("SELECT arg1, arg2, addinf FROM ang_in_on_at");
while($row = $sql->fetch())
{
$arg1=$row['arg1'];
$arg2=$row["arg2"];
$addinf=$row["addinf"];
echo '
<form action="delete1.php" method="post">
<input type="text" name="'. ++$arg1nr .'" value="'.$arg1 .'">'; //nazwa inputa przyrasta o 1
}
echo '
<input type="submit" name="button" value="send">
</form>';
$sql = $pdo -> prepare("SELECT COUNT(arg1) FROM `ang_in_on_at`"); //sprawdzam ile wierszu ma DB, aby ograniczyć ilość obrotów pętli
$sql -> execute();
$countrow = $sql -> fetch();
echo 'points: ' .$countrow[0] .'<br />';
if ($_POST["button"]=='send')
{
for ($arg1nr=0;$arg1nr<=$countrow[0];++$arg1nr) //chcę by przy każdym ruchu pętli dodawał się kolejny rekord DB, z danymi wpisanymi do formularza, z których te które trzeba będa poprawione
{
print $_POST[$arg1nr];
#$sql = $pdo->query("UPDATE ang_in_on_at SET `arg1`='$_POST[$arg1nr]'");
#echo $arg1nr;
#var_dump($_POST);
}
}
}
catch(PDOException $e)
{
echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
}
?>
Wszystko działa pięknie do momentu update. Skrypt czyści wszystkie pola kolumny tabeli, zamiast dodawać poprawione dane.
Dlatego moje pytanie brzmi, czy to w ogóle da się zrobić? A jeżeli tak, to gdzie mam zacząć szukać błędu? Sprawdziłam, tablica POST na pewno poprawnie przejmuje dane z formularza. Czyli problem jest gdzieś w miejscu wkładania ich do DB. Tylko gdzie?