2012-02-07 10 views
1

私は、オンラインラジオ局のためにあるPHPスクリプトを作成しました:初心者のための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/?date=2012-02-08は、私が知る限りデータベース内のプリセットデータに戻る動的なページです - AFAIK、それはどのようにラジオサイトが動作します。

(// WWW。私は、新しいユーザーとしてリンクを投稿することはできませんので、削除)

私はGoogleで検索しましたが、これに初心者のための多くを発見していません。

http:www.capitalfm.com/northeast/on-air/schedule/?date=2012-02-08(よく、URLの意味で)私が達成しようとしているものです。

私のサイトのドメインは、Xを表す数字でhttp:radio.localhost/scheduleX(mod_rewriteによって隠されたphp拡張子)ですが、どうすればこのスクリプトを改善することができますか?

アドバイスありがとうございます。私はかなり動的なPHPには新しく、PHPやMySQLの基礎、フォーム用のGET/POSTを行うことができますが、それはそれです。

誰かが私を助けることができたら、私はそれを感謝します。

+2

正確に何を求めていますか?特定の問題を探しているのか、一般的なアドバイスを探しているのかは、私には不明なようです。後者の場合、それは本当にSOのことではありません。質問を特定の領域に絞ってみると、より多くの助けを得ることができます。 – Hecksa

+0

私は強くあなたが最初に[PHPチュートリアル - w3schools](http://www.w3schools.com/php/default.asp)[php-101-絶対初心者のためのPHP](http://devzone.zend.com/6/php-101-php-for-the-absolute-beginner/) –

答えて

0

あなたは$_GETを使用して?date=2012-02-08から日付を取得することができます。

echo $_GET['date']; 

クエリでこれを使用するには:

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

あなたが始めるためにphp tutorialをお読みください。

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 
0

私はいくつかのPHPの基礎を見る必要がに関する他のコメントに同意するが、そのコードをクリーンアップするために、次に、必要なクエリを作成する例を示します。

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

月、火、水などはdate('D')です。それはそれを下げ、それを「ショー」という言葉、すなわちショーモンに結びつける。ユーザーは、付属の日付を使用する場合は

、日付メソッドにこれを追加することができます。

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

最後の3つの数字mktimeにされている月、日、年が。

+0

「mysql_real_escape」*正しく綴られていても*見る少なくともここでは役に立たない。 –

+0

はい、3文字の曜日の名前に悪い文字があることは予想されません。 – Fenton

+0

「悪い人物」が何であれ期待する理由があっても、そのような機能はちょっとでも助けにならないかもしれません。 –

0

あなたのサイトに似たような質問がたくさんあります。

が、ここで、それはそれは効率的ではありませんティップであり、私はそのベストプラクティスを伝えるが、しようとしてその価値はないよ、それは内部の例えばメインページを作成

mainpage.php 

すべてのあなたのヘッダーを呼び出すことができます、フッター、本文

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

ページがあるたびに、ヘッダーとフッターが同じ場合は、本文のみが変更されます。 あなたが渡したいデータはあなた次第です。

しかし、標準的な習慣ではありませんが、あなたが好きなら、私は基本と練習の枠組みを読むことをお勧めします。

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> "; 
} 
+0

'$ date'の前後に一重引用符を付けることができます。 –

+0

はい、これを忘れました。どうもありがとう。 –

関連する問題