Данные по времени - как это сделать с PHP / MySQL / PDO? - PullRequest
1 голос
/ 02 января 2012

У меня есть тестовая страница для интернет-радиостанции на 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, если это возможно!)

Весь совет очень ценится, спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...