Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Edycja wielu rekordów
Forum PHP.pl > Forum > Przedszkole
arek33
Szukałem, ale znaleźć nie mogę... Chodzi mi o edytowanie wielu rekordów.

Załóżmy, że mamy w bazie danych tabelę o nazwie 'abc' z rekordami:

id = 1
parametr1 = tak
parametr2 = nie

id = 2

parametr1 = tak
parametr2 = tak

Chcę odtworzyć oba id w tym samym czasie i równocześnie je edytować. Jak można tego dokonać, jakieś wskazówki? Nigdzie w sieci nie znalazłem czegoś takiego.
Grzyw
Cześć, co rozumiesz przez odtwarzanie i edycję? Opisz dokładniej, co chcesz zrobić.
arek33
Mam możliwość edytowania rekordów w bazie, ale pojedynczo, na wejściu podaję id rekordu. Poniżej przedstawiam kod:
  1. <?php
  2.  
  3. $id=$_GET['id'];
  4. $query=" SELECT * FROM abc WHERE id='$id'";
  5. $result=mysql_query($query);
  6. $num=mysql_numrows($result);
  7.  
  8. $i=0;
  9. while ($i < $num) {
  10. $p1=mysql_result($result,$i,"p1");
  11. $p2=mysql_result($result,$i,"p2");
  12. ++$i;
  13. } ?>
  14. <div id="edycja">
  15. <form action="edytuj.php?id=<?php echo $id; ?>" method="post" class="form">
  16. <input type="hidden" name="ud_p1" value="<?php echo $id; ?>">
  17. <dl>
  18. <dt>
  19. <label for="p1">p1:</label>
  20. </dt>
  21. <dd>
  22. <input type="text" name="ud_p1" value="<?php echo $p1; ?>">
  23. </dd>
  24. <dt>
  25. <label for="p2">p2:</label>
  26. </dt>
  27. <dd>
  28. <input type="text" name="ud_p2" value="<?php echo $p2; ?>">
  29. </dd>
  30.  
  31.  
  32. <dd>
  33. <input type="submit" class="submit" width="100px" value="Aktualizuj">
  34. </dd>
  35. </dl>
  36. </form>
  37. </div>
  38.  
  39. <?php
  40. $ud_p1=$_POST['ud_p1'];
  41. $ud_p2=$_POST['ud_p2'];
  42.  
  43. require('../config.php');
  44.  
  45. $update = mysql_query("UPDATE abc SET p1='$ud_p1', p2='$ud_p2' WHERE id='$id'");
  46.  
  47. if(!empty($_POST['submit'])){
  48. echo "ok"; }
  49. else { }


Interesuje mnie edytowanie kilku rekordów. smile.gif
RiE
Musisz w zapytaniu w warunku WHERE podac kryterium, jakie musza spelnic rekordy, ktore maja byc 'poprawione'. Jezeli jest to mala ilosc to mozesz posluzyc sie dodatkowym argumentem AND, ale na dluzsza mete jest to niehumanitarne dla Twojej bazy

Przyklad z uzyciem AND:
  1. $update = mysql_query("UPDATE abc SET p1='$ud_p1', p2='$ud_p2' WHERE id='$id' AND id='$id2'");
nospor
RiE naprawdę myślisz, że jakiś rekord ma jednocześnie id 1 i id 2 ?
Valdi_B
Schemat postępowania:

1. Odczytaj z bazy oba rekordy.
2. Wyświetl dane z 1-go w jednym zestawie pól formularza, dane z 2-go w 2-gim zestawie pól.
3. Gdy użytkownik kliknie submit, to dostajesz dane po aktualizacji.

Wówczas:
1, Na podstawie danych z 1-go kompletu pól zmontuj kwerendę UPDATE (i wykonaj).
2. Analogicznie dla danych z 2-go kompletu pól.

Co do kwerendy z poprzedniego postu - nawet po jej przerobieniu na coś w rodzaju
UPDATE ... WHERE id='$id' OR id='$id2'
da ona o tyle "nieciekawy" efekt, że jednym kompletem wartości zaktualizujesz obydwa rekordy. Chyba nie o to chodzi.

Jeszcze inna sugestia: http://phpgrid.com/documentation/
(ale tę stronę znalazłem dopiero teraz i nie mam żadnych wcześniejszych doświadczeń z narzędziami tego typu).
Nie jest to co prawda oprogramowanie darmowe, ale możesz poszukać czegoś podobnego (darmowego).
RiE
Cytat(nospor @ 23.02.2011, 09:30:19 ) *
RiE naprawdę myślisz, że jakiś rekord ma jednocześnie id 1 i id 2 ?

Rzeczywiscie, przepraszam za wprowadzenie w blad. Bede mial nauczke zeby myslec na przyszlosc
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.