У меня есть тестовая страница для интернет-радиостанции на localhost, и в нее включен этот PHP-файл:
<?php
/*** mysql hostname ***/
$hostname = 'localhost';
/*** mysql username ***/
$username = 'root';
/*** mysql password ***/
$password = 'MYPASSWORD';
try
{
$dbh = new PDO("mysql:host=$hostname;dbname=radio3", $username, $password);
$sql = "SELECT *, TIME_FORMAT(airtime, '%k:%i') `airtime` FROM radiopresenters GROUP BY expiration ORDER BY id";
$result = $dbh->query( $sql );
// not really necessary
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
<?php
// using alternative foreach syntax
foreach($result as $row):
?>
<li class="showItem even">
<p class="showTime"><?php echo $row['airtime']; ?></p>
<p class="showName">
<a href="/on-air/">
<img src="<?php echo $row['image']; ?>" alt="" class="showImage" />
<strong><?php echo $row['presenter']; ?></strong>
</a>
</p>
<p class="showDescr"><?php echo $row['showinfo']; ?></p>
</li>
<?php
// using alternative syntax
endforeach;
?>
Вот схема базы данных:
-- phpMyAdmin SQL Dump
-- version 3.5.0-dev
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jan 01, 2012 at 11:01 PM
-- Server version: 5.0.45-community-nt-log
-- PHP Version: 5.3.5
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
--
-- Database: `radio3`
--
-- --------------------------------------------------------
--
-- Table structure for table `radiopresenters`
--
CREATE TABLE IF NOT EXISTS `radiopresenters` (
`id` int(11) NOT NULL auto_increment,
`image` varchar(255) NOT NULL default 'http://localhost/radio1/microphone.jpg',
`presenter` varchar(255) NOT NULL,
`airtime` time NOT NULL,
`expiration` time NOT NULL,
`showinfo` text NOT NULL,
`more` varchar(255) NOT NULL,
`day` enum('Monday','Tuesday','Wednesday') default NULL,
PRIMARY KEY (`id`),
KEY `presenter` (`presenter`,`more`),
KEY `image` (`image`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Dumping data for table `radiopresenters`
--
INSERT INTO `radiopresenters` (`id`, `image`, `presenter`, `airtime`, `expiration`, `showinfo`, `more`, `day`) VALUES
(1, '', 'Non-Stop Music', '00:00:00', '06:00:00', '', '', NULL),
(2, 'microphone', 'Breakfast Show', '06:00:00', '10:00:00', 'Waking up the West Midlands online in the morning!', '', NULL),
(3, 'image.gif', 'Joe Bloggs', '10:00:00', '14:00:00', 'Hits through your day', '', NULL),
(4, 'image.gif', 'John Smith', '14:00:00', '18:00:00', 'Drivetime for the Midlands', '', ''),
(5, '', 'Richard Roe', '18:00:00', '22:00:00', 'Rich has the hits', '', NULL),
(6, '', 'Late Show', '22:00:00', '00:00:00', 'More Hits and Memories non-stop.', '', NULL);
Тем не менее, я должен вручную обновить базу данных с помощью phpMyAdmin, что является лучшим способом сделать это в качестве шаблона, где он будет показывать данные для определенных дат, а затем вернуться к значению по умолчанию, если ничего не установлено [Я не думаю, что cronзадания могут сделать это, так как я в Windows].
Я довольно новичок в PDO / MySQL, и это лучше, чем старый метод mysql_fetch_array, как на сайте Тизага
Я на PHP 5.35, Apache 2.2, Windows 7 - моя ОС, это добавлено для актуальности.
По сути, я хочу улучшить мой код, чтобы он отображал предустановленныеданные, но отображает данные на страницах за определенные даты, используя данные из базы данных, я думаю, что это называется «сценарий ротации данных», вроде как Capital FM London использует (ОК, так что это сценарий Django в соответствии ск тому, что я читаю онлайн, но я стараюсьЯ хочу сделать что-то подобное в PHP, если это возможно!)
Весь совет очень ценится, спасибо!