Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]tablica POST z kluczem przyrastającym o 1 i baza danych, Czy da się dane z takiej tablicy "włożyć" pokolei do db?
eFK
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 1.02.2014

Ostrzeżenie: (0%)
-----


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:
  1. <?php header('Content-Type: text/html; charset=utf-8');
  2.  
  3. try
  4. {
  5.  
  6. $pdo = new PDO('mysql:host=localhost;dbname=niop', 'niop, 'niop');
  7. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  8. #echo 'ok';
  9.  
  10. $arg1nr=0; //pobieram dane z DB i wyświetlam w inpucie
  11. $sql = $pdo->query("SELECT arg1, arg2, addinf FROM ang_in_on_at");
  12. while($row = $sql->fetch())
  13. {
  14. $arg1=$row['arg1'];
  15. $arg2=$row["arg2"];
  16. $addinf=$row["addinf"];
  17.  
  18. echo '
  19. <form action="delete1.php" method="post">
  20. <input type="text" name="'. ++$arg1nr .'" value="'.$arg1 .'">'; //nazwa inputa przyrasta o 1
  21.  
  22. }
  23.  
  24. echo '
  25. <input type="submit" name="button" value="send">
  26. </form>';
  27.  
  28. $sql = $pdo -> prepare("SELECT COUNT(arg1) FROM `ang_in_on_at`"); //sprawdzam ile wierszu ma DB, aby ograniczyć ilość obrotów pętli
  29. $sql -> execute();
  30. $countrow = $sql -> fetch();
  31. echo 'points:&emsp;' .$countrow[0] .'<br />';
  32.  
  33. if ($_POST["button"]=='send')
  34. {
  35. 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
  36. {
  37. print $_POST[$arg1nr];
  38. #$sql = $pdo->query("UPDATE ang_in_on_at SET `arg1`='$_POST[$arg1nr]'");
  39. #echo $arg1nr;
  40. #var_dump($_POST);
  41. }
  42. }
  43.  
  44.  
  45. }
  46. catch(PDOException $e)
  47. {
  48. echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  49. }
  50.  
  51.  
  52. ?>


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?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 21:48