Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] "NIE" wyświetlanie danych z bazy danych
Forum PHP.pl > Forum > Przedszkole
ghastblood
Witam mam taki problem nie wiem jak nie wyświetlać danych z bazy danych. Konkretnie chodzi mi o to że zapisuje kolejki startowe do bazy danych i chciałem dodać do formularza pomijanie stanowisk które są zajęte.

  1. <?php
  2. $stanowisko = 1;
  3. if($stanowisko == 1){
  4. }else{
  5. echo '<option>1</option>';
  6. }
  7. ?>


stanowisk może być nawet 50 więc robienie 50 if'ów nie ma sensu

generalnie chodzi o to że jak stanowisko 1,2,3,4 jest zajęte to żeby nie było ich w opcji select.

proszę o pomoc.
patrysiek2
Pobierasz dane z bazy potem sprawdzasz ifem ktore sa wolne i wyswietlasz. Eaj ten kodw co juz napisales bedzie nam latwiej.
ghastblood
obecny kod wyświetla mi zajęte stanowiska a nie wolne
  1. <?php
  2.  
  3. require_once "core.php";
  4.  
  5. $sql_wynik = mysql_query("SELECT * FROM zawodnik LEFT JOIN konkurencje_zawodnikow ON id_zawodnika = id LEFT JOIN konkurencje ON id_konkurencji = id_konk WHERE pawilon = '25m' && godzina = '10.00'") or die(mysql_error());
  6. echo '<select>';
  7. while($r = mysql_fetch_assoc($sql_wynik))
  8. {
  9.  
  10.  
  11. echo '<option name="stanowisko_'.$r['id'].'_'.$r['id_konk'].'" value="'.$r['stanowisko'].'">'.$r['stanowisko'].'</option>';
  12.  
  13. }
  14. echo '</select>';
  15. ?>
Tuminure
Proponowałbym utworzyć tablice wszystkich stanowisk oraz tablice zajętych stanowisk, a następnie odjąć tą drugą od tej pierwszej.
Niżej kod dla 10 stanowisk, z usuniętymi kilkoma stanowiskami.
  1. $liczba_stanowisk = 10;
  2. $niedostepne_stanowiska = array('1','3','4','6','8','9'); // w tym miejscu tablica stworzona z wartości znajdujących się w bazie
  3. for($i=1; $i<=$liczba_stanowisk; $i++)
  4. {
  5. $dostepne_stanowiska[$i] = '<option>'.$i.'</option>';
  6. }
  7. foreach($niedostepne_stanowiska as $stanowisko)
  8. {
  9. unset($dostepne_stanowiska[$stanowisko]);
  10. }
  11. echo '<select>';
  12. foreach($dostepne_stanowiska as $stanowisko)
  13. {
  14. echo $stanowisko;
  15. }
  16. echo '</select>';

Efektem jest select, wyświetlający 2, 5, 7, 10.
ghastblood
jak pobrać te dane do tablicy twoja tablica wyświetla się tak

  1. array(6) {
  2. [0]=>
  3. string(1) "1"
  4. [1]=>
  5. string(1) "3"
  6. [2]=>
  7. string(1) "4"
  8. [3]=>
  9. string(1) "6"
  10. [4]=>
  11. string(1) "8"
  12. [5]=>
  13. string(1) "9"
  14. }


a moje tak

  1. array(4) {
  2. [0]=>
  3. array(1) {
  4. [0]=>
  5. string(1) "1"
  6. }
  7. [1]=>
  8. array(1) {
  9. [0]=>
  10. string(1) "2"
  11. }
  12. [2]=>
  13. array(1) {
  14. [0]=>
  15. string(1) "3"
  16. }
  17. [3]=>
  18. array(1) {
  19. [0]=>
  20. string(1) "4"
  21. }
  22. }


kod
  1. $sql_wynik = mysql_query("SELECT stanowisko FROM zawodnik LEFT JOIN konkurencje_zawodnikow ON id_zawodnika = id LEFT JOIN konkurencje ON id_konkurencji = id_konk WHERE pawilon = '25m' && godzina = '10.00'") or die(mysql_error());
  2.  
  3. while($r = mysql_fetch_assoc($sql_wynik, MYSQL_NUM))
  4. {
  5. $niedostepne_stanowiska[] = $r;
  6. }


Prosze o pomoc


niestety dalej nie znalazłem na to rozwiązania
Tuminure
Podmień w podanym przeze mnie kodzie:
  1. unset($dostepne_stanowiska[$stanowisko]);
na:
  1. unset($dostepne_stanowiska[$stanowisko[0]]);
i powinno być ok wink.gif.

Ewentualnie w swoim możesz zmienić:
  1. $niedostepne_stanowiska[] = $r;
na:
  1. $niedostepne_stanowiska[] = $r[0];
ghastblood
dzięki
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.