Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Jak zrobic aby rejestracja byla nie mozliwa w soboty i niedziele?
Forum PHP.pl > Forum > PHP
szasza
Witam.
Robie projekt do szkoly na zaliczenie i mam problem z rejestracja pacjenta. A wiec mam zrobic tak aby w sobote i niedziele (wtedy gdy przychodnia jest nie czynna) rejestracja byla nie mozliwa. Ktos wie jak taki cos moge zrobic?? Gdyz w tej chwili moj kod wyglada tak:

Kod
<?php
session_start();

$limitk = 25;
@ $wyborlekarza = $_POST['wyborlekarza'];

$connection = @mysql_connect ("localhost","root","");
$ins = @mysql_select_db(bd_przychodnia, $connection);
mysql_query('SET CHARSET latin2');
$select = "SELECT count( wizytaID ) AS ile FROM wizyty WHERE datawizyty=now() AND nazwiskolekarza='$wyborlekarza'";
$result=mysql_query($select);
$row = mysql_fetch_assoc($result);
$kolejka = $row['ile'] +1;

if(empty($wyborlekarza)):
$_SESSION['komunikat2'] = "Nie wybrano lekarza!";
include('msgblad.php');


elseif (($kolejka) > $limitk):
$_SESSION['komunikat2'] = "Przepraszamy przekroczono limit pacjentów dla tego lekarza, proszę spróbować wybrać innego lekarza";
include('msgblad.php');

else:
$zapytanie = "INSERT INTO wizyty SET nazwiskolekarza='$wyborlekarza', loginw='$_SESSION[MM_Username]', datawizyty=now(), kolejka='$kolejka'";
$wykonaj = mysql_query ($zapytanie);
$_SESSION['komunikat2'] = "Rejestracja przebiegła pomyślnie! Twoje miejsce w kolejce to " .$kolejka;
include('msgok.php');
mysql_close($connection);

endif;

?>
nospor
http://pl2.php.net/manual/pl/function.date.php
No i jesli jest sobota lub niedziela, to napisz by koles spadal winksmiley.jpg
popsit
  1. <?php
  2. if( date('N') > 5 ) // 6 - sobota, 7 - niedziela
  3. {
  4. // fukncja wywolujaca zamknieta przychodnie
  5. }
  6. ?>
szasza
Ok. dzieki wam, potestuje wieczorem jak z pracy wróce. Mam jeszcze jeden problem, gdyz wizyty nie moga sie powtarzac, czyli do danego lekarza mozna dodaoc tylko jedna wizyte dziennie. W bazie wizyty mam pola nazwiskolekarza, datawizyty, loginw oraz kolejka. Czyli jesli chcemy dodac drugi rekord o tym samym loginw, nazwiskolekarza i datawizyty to zostanie wyslwierlony komunikat "bla bla bla", co bym musial dopisac do tego kodu który podalem w pierwszym poscie?
nexis
  1. <?php
  2. // Sesja
  3.  
  4. // Połączenie z bazą danych
  5. mysql_connect('localhost', 'root', '') or exit(mysql_error());
  6. mysql_select_db('bd_przychodnia') or exit(mysql_error());
  7. mysql_query('SET CHARSET latin2');
  8.  
  9. // Odrzucenie weekendów
  10. if (date('N') > 5) {
  11.    exit('Przychodnia czynna od poniedziałku do piątku!');
  12. }
  13. // Sprawdzenie wartości z formularza
  14. if (!isset($_POST['wyborlekarza'])) {
  15.    exit('Nie wybrano lekarza!');
  16. }
  17. $query = sprintf
  18.    (
  19.        "SELECT COUNT(*) FROM `wizyty` WHERE `datawizyty` = now() AND `nazwisko"
  20.         . "lekarza` = '%s'",
  21.        mysql_real_escape_string($_POST['wyborlekarza'])
  22.    );
  23. $query  = mysql_query($query);
  24. $result = mysql_fetch_array($query);
  25. $numer  = $result[0]+1;
  26.  
  27. // Ustawienie limitu wizyt
  28. if ($result[0] > 25) {
  29.    exit('Przepraszamy przekroczono limit pacjentów dla tego lekarza, proszę sp'
  30.         . 'róbować wybrać innego lekarza');
  31. }
  32.  
  33. // Ograniczenie do jednej wizyty
  34. $query = sprintf
  35.    (
  36.        "SELECT COUNT(*) FROM `wizyty` WHERE `datawizyty` = now() AND `nazwisko"
  37.         . "lekarza` = '%s' AND `loginw` = '%s'",
  38.        mysql_real_escape_string($_POST['wyborlekarza']),
  39.        $_SESSION['MM_Username']
  40.    );
  41. $query  = mysql_query($query);
  42. $result = mysql_fetch_array($query);
  43.  
  44. if ($result[0] > 1) {
  45.    exit('Możesz mieć tylko jedną wizytę dziennie u tego samego lekarza!');
  46. }
  47.  
  48. // Rejestracja wizyty
  49. $query = sprintf
  50.    (
  51.        "INSERT INTO `wizyty` (`nazwiskolekarza`, `loginw`, `datawizyty`, `kole"
  52.         . "jka`) VALUES ('%s', '%s', now(), '%d')",
  53.        $_POST['wyborlekarza'],
  54.        $_SESSION['MM_Username'],
  55.        $numer
  56.    );
  57. if (mysql_query($query)) {
  58.    printf
  59.        (
  60.            'Rejestracja przebiegła pomyślnie! Twoje miejsce w kolejce to %d!',
  61.            $numer
  62.        );
  63. } else {
  64.    exit(mysql_error());
  65. }
  66. ?>
szasza
Dzieki za kodzik, musialem tylko $row na $result (chyba) poprawic. Wszystko dziala oprócz tego zebym w weekendy nie mogl sie rejestrowac :/ Nie musze gdies dodatkowo ustawic strefy czasowej albo cos?? bo wezmy np jesli wpisze polecenie echo date('l') to wyswietli mi sie saturday czyli ok smile.gif, ale gdy wezme wpisze echo date('N'), to wyswietla sie N a powinno chyba 6 :/ W tej chwili zrobilem tak i działa:

Kod
if (date('l') == "Saturday" OR "Sunday") {
   exit('Przychodnia czynna od poniedziałku do piątku!');
}


Ale zastanawia mnie dlaczego z N nie działa :/
nexis
Trochę własnego zaangażowania. Wystarczyło zajrzeć do manuala date" title="Zobacz w manualu PHP" target="_manual i poszukać informacji o parametrze N:

Cytat
N - Liczbowa forma dnia tygodnia, zgodna z normą ISO-8601 (dodana w PHP 5.1.0)


Skoro nie działa, to twoja wersja PHP jest niższa od 5.1.0.

Skorzystaj zatem z parametru w i daj taki warunek:

  1. <?php
  2. if (date('w') == 0 || date('w') ==  6) {
  3.   exit('Przychodnia czynna od poniedziałku do piątku!');
  4. }
  5. ?>
szasza
Ok dzieki smile.gif wiesz co patrzylem przez chwile z tym 'w', ale gdzies maly blad zrobilem i odrazu do 'l' przelecialem winksmiley.jpg Jeszcze raz dzieki
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.