Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] Zapisanie konkretnej wartości
radziowie
post 18.12.2010, 21:26:45
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 1.11.2010

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


Mam problem. Otóż chciałbym początkowo pobierać dane z bazy i wyświetlać nazwy kategorii. W tym celu zrobiłem kod:
  1. <tr><td>Kategoria: </td><td><select name="kat_sal">';
  2. $kat = mysql_query("SELECT id_kat, kategoria FROM kategorie;") or
  3. die ("zle polecenie sql");
  4. WHILE ($rekord = mysql_fetch_assoc ($kat))
  5. {
  6. $kategoria = $rekord['kategoria'];
  7. $id_kat_sal = $rekord['id_kat'];
  8. echo '
  9. <option>'.$kategoria.'</option>';
  10. }
  11. echo '
  12. </select></td></tr>


Tylko mam pewien problem. Otóż z bazy pobieram nazwy kategorii np. kategoria_1 i w moim przypadku taka wartość jest zapisywana do bazy a chciałbym aby wyświetlało nazwe np. kategoria_1 natomiast do bazy zostało zapisana wartość jego id czyli np. 1. Co powinienem tu dodać/zmienić?
Go to the top of the page
+Quote Post
tehaha
post 18.12.2010, 21:29:11
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


  1. #
  2. <option value="'.$id_kat_sal.'">'.$kategoria.'</option>';
Go to the top of the page
+Quote Post
radziowie
post 19.12.2010, 14:10:51
Post #3





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 1.11.2010

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


Tylko mam teraz mały problem z edycją. Oto mój kod:

  1. ...
  2. elseif (isset($_GET['co']) && $_GET['co'] == 'edytuj')
  3. {
  4. $edycja = mysql_query("SELECT * FROM sale WHERE id_sali = '".$_GET['id']."';");
  5. $rekord = mysql_fetch_assoc($edycja);
  6. $nrid_sali = $rekord['id_sali'];
  7. $sala = $rekord['sala'];
  8. $opiekun = $rekord['opiekun'];
  9. $info = $rekord['info'];
  10. $opiekun_pr = $rekord['opiekun_pr'];
  11. $opis_sali = $rekord['opis_sali'];
  12. $kat_sal = $rekord['kategoria'];
  13.  
  14. echo '<table class="text"><tr><td>
  15. <form action="sale1.php" method="post">
  16. <input type="hidden" name="co" value="popraw">
  17. <input type="hidden" name="id_sali" value="'.$nrid_sali.'">
  18. Nr. sali: </td><td><input type="text" name="sala" value="'.htmlspecialchars($sala).'" /></td></tr>
  19. <tr><td>Opis sali: </td><td><input type="text" name="opis_sali" value="'.htmlspecialchars($opis_sali).'" /></td></tr>
  20. <tr><td>Opiekun pracowni: </td><td><input type="text" name="opiekun_pr" value="'.htmlspecialchars($opiekun_pr).'" /></td></tr>
  21. <tr><td>Opiekun naukowy: </td><td><input type="text" name="opiekun" value="'.htmlspecialchars($opiekun).'" /></td></tr>
  22. <tr><td>Kategoria: </td><td>
  23. <select name="kat_sal" multiple="multiple">';
  24. $kat = mysql_query("SELECT kategoria FROM kategorie;") or
  25. die ("zle polecenie sql");
  26. WHILE ($rekord = mysql_fetch_assoc ($kat))
  27. {
  28. $kategoria = $rekord['kategoria'];
  29. $id_kat_sal = $rekord['id_kat'];
  30.  
  31. if($kat_sal == $id_kat_sal)
  32. {
  33. echo '<option selected="selected" value="'.$kat_sal.'">'.$kategoria.'</option>';
  34. }
  35. else
  36. {
  37. echo '<option value="'.$kat_sal.'">'.$kategoria.'</option>';
  38. }
  39. }
  40.  
  41. echo '
  42. </select></td>
  43. </tr><tr>
  44. ...

I teraz problem jest taki, że albo nie zamienia kategorii podczas edycji bądź też wysyła do bazy puste dane (czyli komórka kategorii jest pusta).
Go to the top of the page
+Quote Post
tehaha
post 19.12.2010, 14:47:49
Post #4





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


bo domyślam się, że pewnie od razu próbujesz wstawić wartość $_POST['kat_sal'] do zapytania, swoją drogą możesz pokazać skrypt aktualizacji.

Przede wszystkim na samej górze skryptu aktualizacji daj print_r($_POST) aby sprawdzić jakie dane są przesyłane.

Zwróć uwagę, że użyłeś <select name="kat_sal" multiple="multiple"> mulitple, czyli umożliwiasz wybranie kilku kategorii, w takiej sytuacji nazwa pola powinna być taka name="kat_sal[]" z kwadratowym nawiasem, i wtedy to pole zostanie przesłane jako tablica.

Potem w zależności od tego w jaki sposób przechowujesz te wartości albo pętla foreach() przelatujesz po zaznaczonych wartościach kategorii i wprowadzasz do bazy, lub np. funkcją implode, scalasz i wrzucasz do jednego pola bazy
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 21:28