Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] "NIE" wyświetlanie danych z bazy danych
ghastblood
post 14.06.2012, 04:33:53
Post #1





Grupa: Zarejestrowani
Postów: 360
Pomógł: 12
Dołączył: 17.09.2009
Skąd: Warszawa

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


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.
Go to the top of the page
+Quote Post
patrysiek2
post 14.06.2012, 05:23:53
Post #2





Grupa: Zarejestrowani
Postów: 108
Pomógł: 5
Dołączył: 8.12.2011
Skąd: Łomża

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


Pobierasz dane z bazy potem sprawdzasz ifem ktore sa wolne i wyswietlasz. Eaj ten kodw co juz napisales bedzie nam latwiej.


--------------------
if($problem == 1)
{
header("Location: http://www.forum.php.pl");
}
else
{
thinking();
}
Go to the top of the page
+Quote Post
ghastblood
post 14.06.2012, 11:53:03
Post #3





Grupa: Zarejestrowani
Postów: 360
Pomógł: 12
Dołączył: 17.09.2009
Skąd: Warszawa

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


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. ?>
Go to the top of the page
+Quote Post
Tuminure
post 14.06.2012, 13:05:39
Post #4





Grupa: Zarejestrowani
Postów: 178
Pomógł: 49
Dołączył: 16.04.2012
Skąd: Bytom

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


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.

Ten post edytował Tuminure 14.06.2012, 13:08:30
Go to the top of the page
+Quote Post
ghastblood
post 14.06.2012, 20:44:22
Post #5





Grupa: Zarejestrowani
Postów: 360
Pomógł: 12
Dołączył: 17.09.2009
Skąd: Warszawa

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


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

Ten post edytował ghastblood 14.06.2012, 20:45:00
Go to the top of the page
+Quote Post
Tuminure
post 14.06.2012, 21:53:17
Post #6





Grupa: Zarejestrowani
Postów: 178
Pomógł: 49
Dołączył: 16.04.2012
Skąd: Bytom

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


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];


Ten post edytował Tuminure 14.06.2012, 21:55:18
Go to the top of the page
+Quote Post
ghastblood
post 14.06.2012, 23:56:34
Post #7





Grupa: Zarejestrowani
Postów: 360
Pomógł: 12
Dołączył: 17.09.2009
Skąd: Warszawa

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


dzięki
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: 23.06.2025 - 03:28