Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wykluczenie poszczególnych elementów z pętli
jacusek
post
Post #1





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


Witam.
Mam skrypt który generuje listę wyboru dat z godzinami - jest to rodzaj systemu rezerwacyjnego dla przychodni lekarskich.
Skrypt wygląda następująco:
  1. <?php
  2. include('connect2.php');
  3. $sql= "select concat(dni_tyg,godz_pocz) as poczatek, czas_BAD*60 as czas_BAD, concat(dni_tyg,godz_kon)
  4. as koniec from bad_lek where id_lek=3";
  5. $rez= mysqli_query($mysqli, $sql);
  6. while ($nowaTab=mysqli_fetch_array($rez,MYSQLI_ASSOC))
  7. {
  8. $pocz=$nowaTab['poczatek'];
  9. $czas=$nowaTab['czas_BAD'];
  10. $konc=$nowaTab['koniec'];
  11. $poczatek= date('Y-m-d G:i:s', strtotime($pocz));
  12. $koniec= date('Y-m-d G:i:s', strtotime($konc));
  13. }
  14. $sql2= "select timestamp(termin) as zajety from wizyta where id_lek=3";
  15. $rez2= mysqli_query($mysqli, $sql2);
  16. while ($nowaTab1=mysqli_fetch_array($rez2,MYSQLI_ASSOC))
  17. {
  18. $zaj=$nowaTab1['zajety'];
  19. $zajety= date('Y-m-d G:i:s', strtotime($zaj));
  20. }
  21. echo '<select name="termin">';
  22. echo '<option value=>--wybierz datę--</option>';
  23. $termin=$poczatek;
  24. while ($termin<=$koniec){
  25. echo '<option value="'.$termin.'">'.$termin.'</option>';
  26. echo $termin. "<br>";
  27. $termin=date("Y-m-d G:i:s", strtotime("+$czas second", strtotime($termin)));
  28. if ($termin==$zajety){continue;}
  29. }
  30. echo '</select>';
  31. ?>


Próbowałem już różnych rzeczy i chciałem żeby skrypt przy wykonywaniu pętli wykluczał wszystkie opcje które będą podawane przez zmienną $zajety. Są to dokładnie takie same ciągi.
Chciałem to zrobić pętlą for, ale z jakiegoś powodu nie działa mi na datach. Wpadłem na to while, ale nie bardzo wiem jak sprawę rozwiązać dalej. Prosiłbym o jakieś wskazówki ew. przykłady. Mnie się skończyłu pomysły. A że niestety jestem początkujący to za dużo ich nie mam.
Z góry dzięki za waszą pomoc

Wpadłem jeszcze na coś takiego:
  1. for ($termin=$poczatek;$termin<=$koniec;){
  2. echo '<option value="'.$termin.'">'.$termin.'</option>';
  3. echo $termin. "<br>";
  4. $termin=date("Y-m-d G:i", strtotime("+$czas second", strtotime($termin)));
  5. if($termin==$zajety){
  6. continue;
  7. }
  8. }
  9. echo '</select>';

ale to też mi pokazuje całą pętlę. bez wyłączenia $zajety. (IMG:style_emoticons/default/sciana.gif)
Pls pomocy bo już zupełnie nie wiem co zrobić a nie daje mi to spokoju.

Ten post edytował jacusek 8.12.2009, 23:47:22
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Mowiac, ze na dzien dobry w petli zwiekszasz termin, mialem na mysli wlasnie to i nic innego. Nie wiem skad ci nagle do glowy wpadl ten break.
Skoro ci mowie, ze zwiekszasz cos na samym poczatku petli a nie powinienes, to znaczy tyle, ze zamiast zwiekszac na poczatku masz to zwiekszac na koncu petli. Nie doszukuj się zadnych ukrytych przekazów bo takowych tu nie ma.
Go to the top of the page
+Quote Post

Posty w temacie
- jacusek   [PHP]Wykluczenie poszczególnych elementów z pętli   9.12.2009, 07:59:31
- - nospor   Cytatale to też mi pokazuje całą pętlę. bez wyłącz...   9.12.2009, 08:02:42
- - jacusek   No właśnie nie bardzo wiem jak to sprawdzić. Dlac...   9.12.2009, 08:25:22
- - nospor   CytatNo właśnie nie bardzo wiem jak to sprawdzić.o...   9.12.2009, 08:29:35
- - jacusek   Dzięki nospor . Zaszwankowała u mnie logika . Jes...   9.12.2009, 08:51:07
- - nospor   no to niech $zajęty bedzie tablicą a poźniej ...   9.12.2009, 09:05:40
- - zulik   OT [PHP] pobierz, plaintext include('connect2...   9.12.2009, 10:05:54
- - jacusek   Ok. Zrobiłem coś takiego [PHP] pobierz, plaintex...   9.12.2009, 10:31:33
- - nospor   kurcze.... ale weź zajrzyj do manuala jak należy u...   9.12.2009, 10:38:42
- - jacusek   Wielkie dzięki i gratulacje za cierpliwość . Tylk...   9.12.2009, 11:10:03
- - nospor   to pokaz caly kod bo rzeczy o ktorych tu mowisz ni...   9.12.2009, 11:12:54
- - jacusek   oto cały kod. Był powyżej ale rzeczywiście w kawał...   9.12.2009, 11:18:43
- - nospor   nie pojawia ci sie pierwsza data, bo na dzien dobr...   9.12.2009, 11:22:04
- - jacusek   Szczerze mówiąc nie wiem jak to zrobić. Udało mi s...   9.12.2009, 12:06:54
- - nospor   Mowiac, ze na dzien dobry w petli zwiekszasz termi...   9.12.2009, 21:18:41
- - jacusek   Dobra powiem jak ja rozumuję i popraw mnie gdzie p...   9.12.2009, 21:34:49
- - nospor   CytatNo ale jak ma coś sprawdzać skoro pętla nie m...   9.12.2009, 21:38:56
- - jacusek   Poprawiłem kod tak jak mówiłeś i nadal nie działa....   9.12.2009, 21:56:25
- - nospor   przeciez to: $termin=date("Y-m-d G:i...   9.12.2009, 22:00:40
- - jacusek   w taki przypaku w ogóle mi się nie wykonuje. Już n...   9.12.2009, 22:13:17
- - nospor   [PHP] pobierz, plaintext while ($termin<=$k...   9.12.2009, 22:18:24
- - jacusek   Dzięki wielkie. NOSPOR . Jak widzisz napraw...   9.12.2009, 22:39:39
- - nospor   To nie wykrzyknik. To operator negacji W manualu ...   9.12.2009, 22:41:56
- - jacusek   W manualu przy in_array przy przykładach nie znala...   9.12.2009, 23:09:29


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

 



RSS Aktualny czas: 16.10.2025 - 14:12