Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] wyświetlanie dla danego dnia
Forum PHP.pl > Forum > PHP
mb83
Witam,
Mam w bazie taką tabele:
id | data | apteka | ulica | nr | tel

jest to tabelka z dyżurami aptek.
jak skonstruować zapytanie sql aby wyświetlał mi taką linijkę:
Dzisiaj jest (i tu data), apteka dyżurująca to (i tu nazwa).

Tylko żeby wyświetlał dla danego dnia (aktualnego) a nie wszystkie rekordy.

Prosze o pomoc, dzięki.
sonquer
Dodaj do Bazy danych :

następne tabele pon, wtorek, sroda, czw, pt, sob, ndz ...

żeby wyglądało to mniej więcej tak :

id | data | apteka | ulica | nr | tel | pon | wt | sroda | czw | pt | sob | ndz |

Jeżeli jest czynna w danym dniu tygodnia dodaj 1 a jeżeli nie to 0.

index.php :

  1. <?include 'cfg.php'; // config
  2.  
  3. $sql = mysql_query("SELECT * FROM db"); // db = wybierz tabelę
  4.  
  5. $dni = array( 'ndz', 'pon', 'wt', 'sroda', 'czw', 'pt', 'sob' );
  6. $date = date( "N" )+1;
  7.  
  8. while($row=mysql_fetch_assoc($sql)){
  9. if( $row[$dni[$date]] == 1){
  10. echo 'Apteka o nazwie : '.$row['apteka'].'';
  11. echo "</br>";
  12. echo 'Przy ulicy : '.$row['ulica'].'<br/> nr : '.$row['nr'].'';
  13. echo "</br>";
  14. echo 'Telefon kontaktowy : '.$row['tel'].'';
  15. echo "</br></br>";
  16. }else{
  17. echo 'brak czynnych aptek';
  18. }
  19. }
  20. ?>


cfg.php:

  1. <?
  2. mysql_connect("localhost","db_name","pass") or die(mysql_error()."Nie mozna polaczyc sie z baza danych. Prosze chwile odczekac i sprobowac ponownie.");
  3. mysql_select_db("db") or die(mysql_error()."Nie mozna wybrac bazy danych.");
  4.  
  5. ?>


SQL - do bazy danych :

  1. CREATE TABLE `db`(
  2. `id` INT(11)NOT NULL AUTO_INCREMENT ,
  3. `data` VARCHAR(32) NOT NULL ,
  4. `apteka` VARCHAR(32) NOT NULL ,
  5. `ulica` VARCHAR(32) NOT NULL ,
  6. `nr` VARCHAR(32) NOT NULL ,
  7. `tel` VARCHAR(32) NOT NULL ,
  8. `pon` VARCHAR(32) NOT NULL ,
  9. `wt` VARCHAR(32) NOT NULL ,
  10. `sroda` VARCHAR(32) NOT NULL ,
  11. `czw` VARCHAR(32) NOT NULL ,
  12. `pt` VARCHAR(32) NOT NULL ,
  13. `sob` VARCHAR(32) NOT NULL ,
  14. `ndz` VARCHAR(32) NOT NULL ,
  15. PRIMARY KEY (`id`)
  16. );


chyba nie ma błędów ale było robione na szybko...
mb83
trochę inaczej to rozwiązałem, też działa:
  1. <?
  2.  
  3.  
  4.  
  5. $polacz = @mysql_connect($host,$user,$pass);
  6. if(!$polacz) {
  7.  
  8. exit('<p>Nie można polaczyc sie z baza danych</p>');
  9. }
  10.  
  11.  
  12.  
  13. if ( !mysql_select_db($baza) ) {
  14. echo 'Blad otwarcia bazy danych';
  15. exit (0);
  16. }
  17.  
  18. $data = date('d.m.Y'); // wyświetlamy aktualną date
  19.  
  20.  
  21. $zapytanie = "SELECT * FROM apteki WHERE data LIKE ('$data')"; // porównanie dat
  22.  
  23. $wynik = mysql_query($zapytanie);
  24.  
  25.  
  26.  
  27. while ( $row = mysql_fetch_row($wynik) ) {
  28. echo ("<h3>Dzisiaj dyżur ma <b>" . $row['nazwa'] . "</b><br /><span style='color:grey;'>ul. $row['ulica'] $row['nr'], tel. $row['tel']</span></h3>");
  29.  
  30. }
  31.  
  32. //Zamykamy poł‘czenie z baz‘ danych
  33. if ( !mysql_close() ) {
  34. echo 'Nie moge zakonczyc polaczenia z baza danych';
  35. exit (0);
  36. }
  37.  
  38. ?>


mam wprowadzone daty kiedy jaka apteka ma dyżur, następnie przy zapytaniu porównuje czy data z zapytania sql jest zgodna z rekordem w bazie i jeżeli się zgadza to wyświetla dyżur.

dzięki za pomoc sonquer
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.