Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Edycja wielu rekordów problem.
Forum PHP.pl > Forum > Przedszkole
darney
Witam wszystkich. Mam pytanie. W jaki sposób poprawnie za pomocą tablicy wykonać update wielu rekordów. W bazie posiadam 2 rodzaje ID. ID z auto inkrementacją oraz ID2 bez auto inkrementacji które służy do ustawiania kolejności. W zależności ile jest w bazie rekordów przy każdym wyświetlanym jest input który pokazuje ID2.
Chciał bym mieć możliwość wpisaniu w każdym z nim np 1 2 3 i zatwierdzić submitem i jednocześnie 3 sztuki ID2 uległy by zmianie. Wyświetlanie wychodzi mi znakomicie gorzej z przekazaniem i zastosowaniem tego w Query = Update. Proszę o pomoc w dokończeniu skryptu.

Skrypt update

  1. if (isset($_POST['submit2'])) {
  2.  
  3. foreach ($_POST['idek'] as $change_id) {
  4. echo "$change_id ";
  5.  
  6. include('cone_msqli.php');
  7.  
  8. $query = "UPDATE lesson_inn SET id2 = ' co powinno być tu?' WHERE id = '$change_id'";
  9. mysqli_query($dbc, $query)
  10. or die('Błąd w zapytaniu do bazy danych.');
  11. }
  12.  
  13. echo 'zmieniono dane klienta.<br />';
  14. }



Kawałek formularza który wyświetla dane z bazy za pomocą pętli
  1. <form name="adminForm2" enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  2. <div class="of_input"><input type="text" id="ititle_movie" name="id2" value="<?php if (!empty($id2)) echo $id2; ?>" /></div> <div class="clears"></div><BR>
  3.  
  4. <?php echo '<input type="checkbox" value="' . $row['id'] . '" name="todelete[]" />'; ?>
  5.  
  6. <input type="hidden" value="<?php echo $idek; ?>" name="idek[]" />


greycoffey
Tam powinno być to id, na które chcesz zmienić.
darney
ale w postaci tablicy id2[] $id2[] ? Jak on rozdzieli z formularza poprzedniego dane które zostały wysłane? bo wydaje mi się ze wklei ciąg w jednej lini

bo zawartość $change_id kiedy wyświetlam echem działa i przekazuje te id

Może napisze od innej strony bo nie wiem czy można mnie zrozumieć.

Załóżmy że metodą post przesłano dane które chcę aby umieścić w update

ilość powtórzeń update 4
2 3 4 1 chciał bym aby rekordy o tych liczbach zamieniły się na

2 3 4 99 te liczby

w id 2 nadać id2 na 2
w id 3 nadać id2 na 3
w id 4 nadać id2 na 4
w id 1 nadać id2 na 99

Wszystko wysyła poprawnie wcześniejszy formularz którego nie muszę prezentować


Nie wiem jak spowodować aby zastosować te zmiany próbuje i nie mogę sobie poradzić.
  1. $max = $_POST['max'];
  2. echo "maksywalnie rekordow $max <BR>";
  3.  
  4.  
  5. foreach ($_POST['id2'] as $change_id2) {
  6. echo "$change_id2";
  7. }
  8. echo "<BR>";
  9.  
  10. foreach ($_POST['idek'] as $change_id) {
  11. echo "$change_id ";
  12.  
  13. include('cone_msqli.php');
  14. $query = "DELETE FROM lesson_inn WHERE id = $change_id";
  15. $query = "UPDATE lesson_inn SET id2 = ' nie wiem ' WHERE id = '$change_id'";
  16. mysqli_query($dbc, $query)
  17. or die('Błąd w zapytaniu do bazy danych.');
  18. }
  19.  
  20. echo 'zmieniono dane klienta.<br />';
  21. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.