Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Nie działa $selected z bazą danych
Forum PHP.pl > Forum > Przedszkole
szczalpi
Witam
Mam problem, aby prawidłowo działał $selected po wyciągnięciu go z bazy. Kiedy zamierzam zmienić nazwę z bazy na inną to już nie zapisuje go.
Jedynie pojawia się lista w <option>, ale już nie chce zapamiętać wybranego wpisu.
Proszę o pomoc.
  1. <select>
  2.  
  3. <?php
  4. $query= "SELECT kat_nazwa FROM kat_atrakcje ORDER BY kat_nazwa ASC";
  5. $result = mysql_query($query);
  6. while ($rows = mysql_fetch_array($result)) {
  7.  
  8. if($row['kat'])
  9. {
  10. $selected='selected';
  11. }
  12. else
  13. {
  14. $selected='';
  15. }
  16. ?>
  17. <option value="<?php echo $row['kat']?>" <?php echo $selected;?> ><?php echo $rows['kat_nazwa'];?></option>
  18.  
  19. <?php
  20. }
  21. ?></select>
nospor
Nigdzie nie okreslasz ktory to jest wybrany wiec czemu sie dziwisz? Na chwilę obecną robisz SELECTED dla kazdej opcji...
szczalpi
No nie rozumiem do końca. Czy na kierujesz mnie troche questionmark.gif
Dziekuje
nospor
O to:
if($row['kat'])
jest spelnione dla kazdego Twojego rekordu wiec logiczne ze twoje $selected ustawia sie dla kazdego rekordu... Nie sądzisz, ze tam powinieni byc warunek:
if (aktualny rekord jest rekordem ktory wlasnie edytuje) to dopiero selected
?
trueblue
Raczej warunek niespełniony.
szczalpi
Wszystkie inne dane z danego rekordu pobiera prawidłowo. Tylko w tym jednym przypadku jest źle ...
trueblue
A zauważyłeś, że nie pobierasz w zapytaniu kolumny o nazwie kat?
szczalpi
Kolumnę $row[kat] mam już wywołaną wcześniej w kodzie. Baza kat_atrakcje zawiera wpisy np miasta, astrakcje, zabytki.
Chciałbym, aby zmiany pobierało z kat_atrakcje i wstawiało do kat.

Za tempy jestem aby to ogarnać. Proszę was o podanie co zmienić .
Tuminure
Cytat
A zauważyłeś, że nie pobierasz w zapytaniu kolumny o nazwie kat?

Z bazy danych wyciąga do zmiennej $rows, a "kat" wyciąga ze zmiennej $row (która nie ma nic wspólnego z $rows).

Podczas każdego przebiegu w pętli while, element tablicy $row["kat"] ma taką samą wartość. Dlatego wszystkie <option> są oznaczone jako selected (lub też wszystkie nie są, co w sumie daje taki sam efekt).
nospor
No pisalem juz o tym wielokrotnie....

Cytat
Za tempy jestem aby to ogarnać. Proszę was o podanie co zmienić .
Musisz porownac wartosc z edycji, z aktualnie przetwarzaną wartoscią z petli co nam tu pokazales. Pomysl troche. To jest naprawde proste... Jak teraz tego sam nie zrobisz to nie ma sensu byś w ogole dalej pisal jakiekolwiek skrypty. A juz za dlugo siedzisz na forum by z taką pierdułą się bawić.
szczalpi
To już troche gotowca zmienilem na takiego i nic...
  1. <?php
  2. $sql1 = mysql_query("select * from atrakcje where id='$pokaz'");
  3. while($row1 = mysql_fetch_array($sql1)) {
  4. $wer = $row1['kat'];
  5. $query= "SELECT * FROM kat_atrakcje ORDER BY kat_nazwa ASC";
  6. $result = mysql_query($query);
  7. while ($rows = mysql_fetch_array($result)) {
  8.  
  9. echo '<option ' . ($wer==$rows['kat_nazwa'] ? 'selected' : '') . ' value="'.$wer.'">'.$rows['kat_nazwa'].'</option>';
  10. }
  11. }
  12. ?>
nospor
wyswietl sobie co zawiera $wer, wyswietl sobie co zawiera $rows['kat_nazwa'] a bedzie wiadomo czemu warunek nie jest spelniony. No wykaz sie samodzielnoscią.

ps: value="'.$wer.'" czemu?? Przeciez wartoscia dla OPTION ma byc aktualno wartosc z kat_atrakcje tak jak wyswietlasz stamtad kat_nazwa
szczalpi
Aktualna wartosc $kat ma być z atrakcje np: jezioro. W kat_atrakcje mam liste wszystkich rodzaji atrakcji np: miasta, zabytki, ratusze.
Po zmianie na ratusze powinna się zapisać w bazie atrakcje $kat=ratusze.
nospor
Ja sie nie pytam o wartosc "jaka ma byc". Ja sie pytam o wartosc "JAKA DOKLADNIE TERAZ JEST".... mowilem.. sprawdz.... var_dump()
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.