Hej,
napisałem skrypt, który wypisuje mi dane z bazy danych (na podstawie artykułu nospora: http://nospor.pl/grupowanie-wynikow.html): najpierw kategorię (z jednej tabeli), a potem "produkty", które są przypisane do danej kategorii (z drugiej tabeli).
To wszystko realizowane jest za pomocą takiego kodu:

  1. // pobranie danych
  2. $res = mysql_query($sql) or die(mysql_error());
  3.  
  4. if(!$res){die("Nie można wykonać zapytania! <br />". mysql_error());}
  5.  
  6. $categories = array();
  7. while ($row = mysql_fetch_array($res)){
  8. $cid = $row['kat_id'];
  9. if (!isset($categories[$cid]))
  10. $categories[$cid] = array('name' => $row['kategoria'], 'products' => array());
  11. if (!empty($row['kategoria'])) //jeśli istnieje produkt
  12. $categories[$cid]['products'][] = array('name' => $row['typ'], 'cena'=>$row['cena']);
  13. }
  14.  
  15. //zapisanie nowych danych
  16. $komunikat = '';
  17. if(isset($_POST['nazwa_kategorii']) && $_POST['nazwa_kategorii'] != '')
  18. {
  19. $query_kat = 'UPDATE '.$rodzaj2.' SET kategoria = \''.$_POST['nazwa_kat'].'\' where id = '.$_POST['id_kat'];
  20. $query = mysql_query($query_kat);
  21. if(!$query){die("Nie można wykonać zapytania do bazy danych");}
  22. else
  23. {
  24. $komunikat = 'Pomyślnie zapisano zmiany';
  25. }
  26. unset($_POST['nazwa_kategorii']);
  27. }
  28.  
  29.  
  30. // formularz
  31. echo('<form action="#podglad" method="POST">');
  32.  
  33. foreach ($categories as $idCat => $category){
  34. echo '<div class="kategoria"><h6 class="tytul_kat"><input type="text" name="nazwa_kat" value="'.$category['name'].'" /><input type="hidden" value="'.$idCat.'" name="id_kat" /></h6>';
  35. foreach ($category['products'] as $product){
  36. echo '<div class="pozycja"><span class="tytul"><input type="text" name="tytul" value="'.$product['name'].'" /></span><span class="cena"><input type="text" name="cena" value="'.$product['cena'].'" /> <p>zł</p></span></div>';
  37. }
  38. echo '</div>';
  39. }
  40. echo '</div>'.$komunikat.'<br /><input type="submit" value="Zapisz zmiany" /></form>';


Chciałbym aby to wszystko co będzie pobrane z bazy danych było umieszczone w jednym dużym formularzu (wszystkie "produkty" i "kategorie" w osobnych input'ach, całość edytowalna - póki co same kategorie staram się wysyłać do bazy i zmieniać). Zapisałem to sobie przy wypisywaniu pobranych elementów, na końcu podanego fragmentu.
Następnie chciałbym aby można było podmienić treść tych input'ów na inną i zapisać wszystko z powrotem do bazy danych.
I nie mam pojęcia jak to zrobić... Problemem dla mnie jest to jak identyfikować, którą kategorię w danym momencie zmieniam, gdyż nie wiem jak to wszystko ze sobą połączyć i przesyłać tak żeby te $_POST'y się nie nadpisywały - co dzieje się teraz.
Czy możecie mnie naprowadzić na jakieś rozwiązanie?

Próbowałem przesłać w "name" danego inputa zmienną ($idCat), która u mnie oznacza nr kategorii ale potem w zapytaniu gdy je wyświetliłem i tak wszystko się nadpisywało i zostawało id ostatniej kategorii... W końcu, po nie małym zamieszaniu mam taki kod...
Z góry dzięki za pomoc smile.gif