PHP中的动态页面适合初学者?

时间:2012-02-07 13:43:28

标签: php mysql dynamic query-string dynamic-data

我已经创建了一个用于在线广播电台的PHP脚本:

<?php
$username = "root";
$password = "PASSWORD";
$hostname = "localhost";
$database = "myradio1";
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
$selected = mysql_select_db($database,$dbhandle)
or die("Could not select $database");
$query= 'SELECT * FROM showmon';
$result = mysql_query($query) or die ('Error in query');
echo '<table width=100% border=1>';
while ($row=mysql_fetch_row($result))
{
  echo '<tr>';
  echo '<td><img src="\ '.$row['image'].' \"></td>';
  echo '<td>'.$row['presenter'].'</td>';
  echo '<td>'.$row['showinfo'].'</td>';
  echo '</tr>';
}
echo '</table>';
mysql_free_result($result);
mysql_close($dbhandle);
?>

我还有其他几个页面,分别是一周中其余几天的1,3,4,5,6,7.php,但更改脚本以便查看日期和预先选择更好来自表格的数据:

showmon

showtue

showwed

showthu

showfri

showsat

showsun

所有表格格式与上述脚本相同;数据不同。

它可以很好地显示数据,没有问题;但是如果数据库没有被更改等,如何制作动态页面,这些页面将恢复为预设数据。

http://www.capitalfm.com/northeast/on-air/schedule/是我工作过的模特;例如,http:capitalfm.com/northeast/on-air/schedule/?日期= 2012-02-08是一个动态页面,据我所知,它恢复到数据库中的预设数据 - AFAIK,这是最多的无线电网站的​​工作。

(//删除,因为我无法以新用户的身份发布链接)

我确实在Google上查了一下,但对于初学者来说并没有找到太多。

http:www.capitalfm.com/northeast/on-air/schedule/?日期= 2012-02-08(好吧,用URL术语)是我想要实现的目标。

我的网站的域名为http:radio.localhost / scheduleX(由mod_rewrite隐藏的php扩展名),X代表数字,但我怎样才能更好地改进此脚本?

感谢任何建议;我是动态PHP的新手,可以做PHP和MySQL的基础知识,以及表格的GET / POST,但就是这样。

如果有人能帮助我,我会非常感激。

5 个答案:

答案 0 :(得分:0)

您可以使用?date=2012-02-08

$_GET获取日期
echo $_GET['date'];

要在查询中使用此功能:

$query= "SELECT * FROM showmon WHERE date = '".mysql_real_escape_string($_GET['date'])."'";

您应该阅读php tutorial以开始使用。

答案 1 :(得分:0)

如果您只需要查看日期并选择相应的字段,那么:

$day = date("l");
$field = NULL;

switch($day) {
    case "Monday":
        $field = "showmon";
        break;
    case "Tuesday":
        $field = "showtue";
        break;
    case "Wednesday":
        $field = "showwed";
        break;
    case "Thursday":
        $field = "showthu";
        break;
    case "Friday":
        $field = "showfri";
        break;
    case "Saturday":
        $field = "showsat";
        break;
    case "Sunday":
        $field = "showsun";
        break;
}

$query= 'SELECT * FROM '.$field;
... // and so on

答案 2 :(得分:0)

虽然我同意其他关于需要查看一些PHP基础知识以便清理代码的评论,但这里有一个创建所需查询的示例。

$query = 'SELECT * FROM ' . mysql_real_escape('show' . strtolower(date('D')));

需要date('D'),即周一,周二,周三等。它会降低它的大小并将其加入“show”这个词,即showmon。

如果您想使用用户提供的日期,可以将其添加到日期方法中:

date('D', mktime(0, 0, 0, 2, 8, 2012))

mktime中的最后三个数字是月,日,年。

答案 3 :(得分:0)

最棒的事情是浏览这个网站,有很多类似于你的问题。

但这里有一个提示它不是那么高效,而且我没有告诉它最佳实践,但它值得尝试,例如创建一个主页

    mainpage.php
在它里面你可以调用你的所有页眉,页脚,正文

    <?php include('path/header.php');?>
    <?php include('path/dynamic_body.php');?>
    <?php include('path/footer.php');?>

每当你有一个页面你的页眉和页脚是相同的,只有身体发生变化。 它取决于你想要传递的数据。

但它不是一个标准的练习,如果你想要一个,我建议你阅读基础知识和练习框架。

答案 4 :(得分:0)

您的桌面设置错误。
它应该只是一个表。使用该字段以2012-02-10格式保存日期

现在您可以像这样进行查询

if (isset($_GET['date'])){
   $date = mysql_real_escape_sring($_GET['date']);
} else {
   $date = date("Y-m-d");
}
$query = 'SELECT * FROM `show` WHERE `date`='$date'";

它将根据所选日期或今天日期选择内容

要创建链接列表,您需要这样的代码(未经测试):

$monday = strtotime("monday"); // getting monday unix timestamp
for ($i=0,$i<7,$i++){
  $stamp = $monday + $i * 86400;
  $date  = date("Y-m-d",$stamp);
  $day   = date("D",$stamp);
  echo "<a href='?date=$date'>$day</a> ";
}