Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Zapisanie konkretnej wartości
Forum PHP.pl > Forum > Przedszkole
radziowie
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ć?
tehaha
  1. #
  2. <option value="'.$id_kat_sal.'">'.$kategoria.'</option>';
radziowie
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).
tehaha
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
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.