Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Wykluczenie dat
spisekd
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 4.04.2009

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


Witam, piszę pierwszy raz na tym forum.

Chciałbym się zapytać jak w mysql   zrobić aby wykluczyć daty  przekazywane przez zmienne z formularza z pierwszej strony.

Dałem not between w zapytaniu i zwraca 4 a zostały a w formularzu wpisałem daty: data1:2009-04-04 i 2009-04-12. Powinno zwrócić 2 czyli to:

 (3, '2009-04-01', '2009-04-02', 'nazwa3'),
(4, '2009-04-22', '2009-04-23', 'nazwa4');

Próbowałem też z innym zapytaniem

CODE


$ile=mysql_query("SELECT COUNT(*) FROM daty where dataod < $date1 and  dataod > $date2 and datado <$date1 and datado >  $date2");


Etap1.html
CODE
<html>

<body>

<FORM ACTION="etap2.php" METHOD="post" >

data1 <input type="text" name="date1">

data2<input type="text" name="date2">

 <input type="Submit" value="Sprawdź wolny termin">

</form>



Etap2.php
CODE


<?
include("polaczenie.php");
$ile=mysql_query("SELECT COUNT(*) FROM daty where 
dataod not between $date1 and $date2 and datado not between $date1 and $date2"); 
$liczba = mysql_result($ile,0);
echo $liczba;
?>




Tabela daty utworzenie: 


CODE
CREATE TABLE `daty` (
  `id` int(11) NOT NULL auto_increment,
  `dataod` date NOT NULL default '0000-00-00',
  `datado` date NOT NULL default '0000-00-00',
  `nazwa` char(10) NOT NULL default '',
  PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;


Dane wpisane:


CODE
INSERT INTO `daty` (`id`, `dataod`, `datado`, `nazwa`) VALUES
(1, '2009-04-04', '2009-04-11', 'nazwa1'),
(2, '2009-04-05', '2009-04-12', 'nazwa2'),
(3, '2009-04-01', '2009-04-02', 'nazwa3'),
(4, '2009-04-22', '2009-04-23', 'nazwa4');


Proszę o wskazówki i Dziękuję
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
TomASS
post
Post #2





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Zapytanie:

  1. SELECT * FROM daty WHERE (dataod < '2009-04-04' OR dataod >'2009-04-12') AND (datado > '2009-04-12' OR datado< '2009-04-04')


czyli:

  1. SELECT * FROM daty WHERE (dataod < '$date1' OR dataod >'$date2') AND (datado > '$date2' OR datado< '$date1)
Go to the top of the page
+Quote Post

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: 24.08.2025 - 00:23