Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Update kilku rekordów na raz
Przemo75
post
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 2
Dołączył: 9.03.2004
Skąd: POLSKA

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


Witam,
Niestety nie mogę przeskoczyć update'a. Chyba mam coś namieszane z tablicą, bo wyświetla najpierw same produkty a później ich id (id_asort).
Próbuję uzyskać taką postać tablicy:

[products] => Array ( [0] => Array ( [produkt] => Produkt_1 [id_asort] => 148 ) [1] => Array ( [produkt] => Produkt_2 [id_asort] => 149 ) )

a wciąż otrzymuję taką:

Array ( [produkt] => Array ( [0] => Produkt_1 [1] => Produkt_2 ) [id_asort] => Array ( [0] => 148 [1] => 149 ) )
  1. @$kategoria = $_GET['kategoria'];
  2. if ($kategoria)
  3. {
  4. $link=mysql_query(" SELECT a.id_kategorii aid, a.produkt aprodukt, a.id_asort aida, k.id_kategorii kid, k.nazwa knazwa, k.opis kopis FROM kategoria k LEFT JOIN asortyment a ON a.id_kategorii = k.id_kategorii WHERE k.id_kategorii='$kategoria' ORDER BY a.id_asort ASC ");
  5.  
  6. $categories = array();
  7. while ($wybor2 = mysql_fetch_array($link)){
  8. $kid = $wybor2['kid'];
  9.  
  10. if (!isset($categories[$kid]))
  11. $categories[$kid] = array('nazwa' => $wybor2['knazwa'], 'opis' => $wybor2['kopis'], 'products' => array());
  12.  
  13. if (!empty($wybor2['aprodukt']))
  14. $categories[$kid]['products'][] = array('produkt' => $wybor2['aprodukt'], 'id_asort' => $wybor2['aida']);
  15. }
  16.  
  17. echo '<br><ul>';
  18. foreach ($categories as $idCat => $category)
  19. {
  20. echo '<li><b>'.$category['nazwa'].'</b><br>';
  21. echo '<li>'.$category['opis'].'<ul>';
  22. foreach ($category['products'] as $produkty)
  23. {
  24. echo '<form method="POST" action="main_asortyment.php?oferta=wyedytuj">';
  25. echo '<li><input type="hidden" name="id_asort[]" value="'.$produkty['id_asort'].'"><input type="text" name="produkt[]" size="60" value="'.$produkty['produkt'].'"></li>';
  26. }
  27. echo '<br><br><input type="submit" value="ZAPISZ">';
  28. echo '</form>';
  29. echo '</ul></li>';
  30. }
  31. echo '</ul>';
  32. }
  33. }
  34.  
  35. elseif(isset($_GET['oferta']) && $_GET['oferta']=='wyedytuj') // WYEDYTUJ
  36. {
  37. $kid=$_POST['id_kategorii'];
  38.  
  39. if (!empty($_POST['produkt']))
  40. $produkty2[] = array('produkt' => $_POST['produkt'], 'id_asort' => $_POST['id_asort']);
  41.  
  42. foreach($produkty2 as $produkt => $id_asort)
  43. {
  44. $query = "UPDATE asortyment SET produkt='$produkt' WHERE id_asort='$id_asort'";
  45. $result = mysql_query ($query);
  46. }
  47. }

Będę wdzięczny za pomoc, bo siedzę nad tym już stanowczo za długo i próbuje rozpracować na różne sposoby, niestety bezskutecznie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Przemo75
post
Post #2





Grupa: Zarejestrowani
Postów: 66
Pomógł: 2
Dołączył: 9.03.2004
Skąd: POLSKA

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


Próbuję przerobić edycję danych na okoliczność wykasowania zawartości z 1 lub kilku pól produktów podczas edycji. Przy wykasowaniu zawartości z co najmniej 2 pól, wykasowany zostaje tylko i wyłącznie rekord z ostatniego "wykasowanego" pola, a inne są pomijane. Natomiast UPDATE działa poprawnie.

  1. elseif(isset($_GET['oferta']) && $_GET['oferta']=='wyedytuj') // WYEDYTUJ
  2. {
  3. $kid=$_POST['id_kategorii'];
  4.  
  5. if (!empty($_POST['produkt']))
  6. $tab1 = $_POST['produkt'];
  7. $tab2 = $_POST['id_asort'];
  8. $tablica = array_combine($tab1, $tab2);
  9.  
  10. foreach($tablica as $produkt => $id_asort)
  11. {
  12.  
  13. if (strlen($produkt) > 0)
  14. {
  15. $query1 = "UPDATE asortyment SET produkt='{$produkt}' WHERE id_asort='{$id_asort}'";
  16. $result1 = mysql_query ($query1);
  17. $message1='<br> Pomyślnie zaktualizowałem produkt - <b>'.$produkt.' o id <b>'.$id_asort.'</b></b><br>';
  18. echo "<p align=\"center\" class=\"style3\">$message1</p>";
  19. }
  20. else
  21. {
  22. $query2 = "DELETE FROM asortyment WHERE id_asort='$id_asort'";
  23. $result2 = mysql_query ($query2);
  24. $message2='<br> Pomyślnie skasowałem produkt o id <b>'.$id_asort.'</b><br>';
  25. echo "<p align=\"center\" class=\"style3\">$message2</p>";
  26. }
  27. }
  28. }


Ten post edytował Przemo75 12.07.2011, 10:16:49
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: 27.12.2025 - 08:42