Tijd tussen
Zit met een scriptje in de knoop. Ik ben bezig met een script van een online radiostation. Nu moet dit script de programmering weergeven dus welk programma en welke deejay er op dit moment draaien.
Ik heb een tabel in mysql staan waar de onair tijden en offair tijden als 00:00 worden weergegeven. Het script heb ik op internet gevonden die ik een tikje heb aangepast maar het werkt niet. Want hij blijft het eerste programma weergeven die in die dag gepland staat.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$time = date ('H:i');
$extract = mysql_query ("SELECT * FROM programmering");
if ($row = mysql_fetch_assoc ($extract))
{
$onair = $row ['onair'];
$offair = $row ['offair'];
$program = $row ['program'];
$deejay = $row ['deejay'];
if ($time <$onair || $time >$offair)
{
echo "Nu: $program <br> Met: $deejay <br> $onair tot $offair uur";
}
}
?>
$time = date ('H:i');
$extract = mysql_query ("SELECT * FROM programmering");
if ($row = mysql_fetch_assoc ($extract))
{
$onair = $row ['onair'];
$offair = $row ['offair'];
$program = $row ['program'];
$deejay = $row ['deejay'];
if ($time <$onair || $time >$offair)
{
echo "Nu: $program <br> Met: $deejay <br> $onair tot $offair uur";
}
}
?>
Met while weergeeft hij de volledige programmering en dit is niet de bedoeling. hij moet echt het programma weergeven die op dat moment bezig is.
if ($time <$onair || $time >$offair)
dan niet dit zijn?
if ($time >$onair and $time <$offair)
Edit: Je kan natuurlijk beter de query aanpassen.
Gewijzigd op 17/11/2011 14:33:59 door - SanThe -
Maar tot nu toe ben ik helaas niet verder gekomen dan het eerste programma van die dag.
Gewijzigd op 17/11/2011 14:48:44 door - Ariën -
en hoe zou de code er dan uit komen te zien ben op dit moment beginner met datums en tijden en PHP/MySQL is tevens nog niet mijn sterkste taal. Ben al blij dat ik de basis begrijp ervan.
Code (php)
1
2
3
4
2
3
4
<?php
$now = date('H:i:s');
$sql = "SELECT * FROM programmering WHERE " . $now . " BETWEEN onair AND offair";
?>
$now = date('H:i:s');
$sql = "SELECT * FROM programmering WHERE " . $now . " BETWEEN onair AND offair";
?>
Gewijzigd op 17/11/2011 14:56:09 door Ger van Steenderen
Nou heb echt elke combinatie nu geprobeerd en niks schijnt dus te werken. Heel vreemd zelfs van de experts van PHP Hulp kom ik er niet uit.
Echo anders eens $sql en kijk of deze klopt....
Ik zie dat Ger trouwens ook de secondes meerekent, en zie ik in jouw script namelijk niet.
Gewijzigd op 17/11/2011 15:11:40 door - Ariën -
Heb uiteraard de mysql_query() erbij gehouden en als ik de $sql echo dan gebeurt er helemaal niks.
Gebeurt dit niet, dan is er iets in je script fout.
Code (php)
1
2
3
4
2
3
4
<?php
$now = date('H:i:s');
$sql = "SELECT * FROM programmering WHERE " . $now . " BETWEEN onair AND offair";
?>
$now = date('H:i:s');
$sql = "SELECT * FROM programmering WHERE " . $now . " BETWEEN onair AND offair";
?>
Laat ook eens zien hoe je programma's in de database staan.
Wat heb je dan voor veldtype in de database?
CREATE TABLE IF NOT EXISTS `programmering` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`monday` tinyint(1) DEFAULT NULL,
`tuesday` tinyint(1) DEFAULT NULL,
`wednesday` tinyint(1) DEFAULT NULL,
`thursday` tinyint(1) DEFAULT NULL,
`friday` tinyint(1) DEFAULT NULL,
`saturday` tinyint(1) DEFAULT NULL,
`sunday` tinyint(1) DEFAULT NULL,
`onair` varchar(5) NOT NULL,
`offair` varchar(5) NOT NULL,
`program` varchar(100) NOT NULL,
`deejay` varchar(100) NOT NULL,
`information` longtext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
--
-- Gegevens worden uitgevoerd voor tabel `programmering`
--
INSERT INTO `programmering` (`id`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`, `sunday`, `onair`, `offair`, `program`, `deejay`, `information`) VALUES
(1, 1, 1, 1, 1, 1, NULL, NULL, '06:00', '10:00', 'Rush in the morning', 'Peter de Jong', 'Dit is een test.'),
(2, 1, 1, 1, 1, 1, NULL, NULL, '10:00', '16:00', 'Non Stop Hits', 'AutoDJ', ''),
(3, 1, 1, 1, 1, 1, 1, 1, '16:00', '17:00', 'Most requested songs', 'AutoDJ', ''),
(4, NULL, NULL, NULL, NULL, NULL, 1, NULL, '14:00', '18:00', 'Top 50 Most wanted', 'Rob van Dijck', ''),
(5, NULL, NULL, NULL, 1, NULL, NULL, NULL, '17:00', '18:00', 'Working late', 'Auto DJ', '');
En het script ziet er momenteel als volgt uit
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$time = date ('H:i');
$extract = mysql_query ("SELECT * FROM programmering WHERE " . $time . " BETWEEN onair AND offair");
if ($row = mysql_fetch_assoc ($extract))
{
$onair = $row ['onair'];
$offair = $row ['offair'];
$program = $row ['program'];
if ($time <$onair || $time >$offair)
{
echo "$program <br> $onair tot $offair uur";
}
}
?>
$time = date ('H:i');
$extract = mysql_query ("SELECT * FROM programmering WHERE " . $time . " BETWEEN onair AND offair");
if ($row = mysql_fetch_assoc ($extract))
{
$onair = $row ['onair'];
$offair = $row ['offair'];
$program = $row ['program'];
if ($time <$onair || $time >$offair)
{
echo "$program <br> $onair tot $offair uur";
}
}
?>
Een ander script maakt ook gebruik van deze tabel vandaar ook de dagen van de week die ertussen staan maar in dit script word daar geen gebruik van gemaakt.
Toevoeging op 17/11/2011 17:38:26:
Nog even snel een toevoegen als ik het script gebruik zoals ik hem heb staan dus hoe ik ermee begon en ik echo een $sql dan krijg ik het volgende:
Resource id #35
En dit is met het volgende script.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$time = date ('H:i');
$extract = mysql_query ("SELECT * FROM programmering");
if ($row = mysql_fetch_assoc ($extract))
{
$onair = $row ['onair'];
$offair = $row ['offair'];
$program = $row ['program'];
if ($time <$onair || $time >$offair)
{
echo "$program <br> $onair tot $offair uur";
}
}
?>
$time = date ('H:i');
$extract = mysql_query ("SELECT * FROM programmering");
if ($row = mysql_fetch_assoc ($extract))
{
$onair = $row ['onair'];
$offair = $row ['offair'];
$program = $row ['program'];
if ($time <$onair || $time >$offair)
{
echo "$program <br> $onair tot $offair uur";
}
}
?>
Gewijzigd op 17/11/2011 18:44:04 door Peter Overdam
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$time = date ('H:i');
$extract = mysql_query ("SELECT * FROM programmering WHERE '" . $time . "' BETWEEN onair AND offair");
while ($row = mysql_fetch_assoc ($extract))
{
$onair = $row ['onair'];
$offair = $row ['offair'];
$program = $row ['program'];
echo $program . '<br>' . $onair . ' tot ' . $offair . ' uur';
}
?>
$time = date ('H:i');
$extract = mysql_query ("SELECT * FROM programmering WHERE '" . $time . "' BETWEEN onair AND offair");
while ($row = mysql_fetch_assoc ($extract))
{
$onair = $row ['onair'];
$offair = $row ['offair'];
$program = $row ['program'];
echo $program . '<br>' . $onair . ' tot ' . $offair . ' uur';
}
?>
Gewijzigd op 17/11/2011 18:59:21 door - SanThe -
Hij werkt eindelijk met jou script ben er echt tevreden mee.
Heel erg bedankt voor je hulp.
Greetz
Peter