2011-10-19 10 views
0

私は個々のPHPページを自動的に作成する方法に問題があります。自動的にPHPページを作成する

私はすでにcatalog.phpというページを作成しました。 catalog.phpで

、MySQLのクエリは、照会、場所を取るでしょう。そして、このクエリは、ループだろうと横にcatalog.php側で内容を表示

$link = mysql_connect("localhost", "root", ""); 
mysql_select_db("photodb", $link); 
$sql = "SELECT id, title, caption, comments, imagelink, year FROM photo"; 

を:

<ul class="grid"> 
<?php while ($row = mysql_fetch_assoc($result)) 
    { ?> 
     <li> 
      <p class="image"><a href="?"><img src="getImage.php?id=<?php echo $row['id']; ?>" alt="" width="175" height="200" /></a></p> 
      <p class="name"><?php echo $row['title']; ?></p> 
      <p class="year"><?php echo $row['year']; ?></p> 
     </li> 
     <?php } // while 
?> 
</ul> 

クラス= "grid"は照会されたすべてのデータを並べて、イメージ、タイトル、年を表示します。

しかし、これらの画像のいずれかをクリックするたびに、詳細な画像、タイトル、キャプション、および著者のコメントを表示するために、独自のPHPページ(individual.php)にリンクする必要があります。推敲を以下に示します。

  Title 
IMAGE  Caption 

      Author's comments 

例:上記、IMAGE、キャプション、タイトル、作者のコメントで

  Picture of bridge 
IMAGE  This image was taken in paris 

      Low Shuttle Speed 

が同じテーブルで同じデータベース「photodb」で発見された「写真「ここ

私の問題は、次のとおりです。

  1. このようなページのAUTOMを作成する方法はありますatically?その理由は、手動で作成した場合、データベースには100を超えるエントリがあるため、苦労します。

  2. <a href="">タグでは、catalog.phpに見られるように、値はどのようになるべきですか?

  3. 私はすでにこのような "individual.php"ページのテンプレートを持っています。ある彼の構造の例は次のとおりです。

    <body>

    <p class="title">

    London Bridge</p>

    <p class="caption">

    Image taken in summer 2009<br /><br /></p>

    <p class="image">

    </p>

    </body>

<img border="0" class="floatleft" src="imagelink" width="250" height="400" />

Low Shuttle Speedどのように私は私の要件に合わせて、この構造を変更することができますか?

4。そのような "individual.php" URLは一意のIDを持つ別の名前に変更できますか?データベースにある各イメージには固有のIDがあります。

5。私は既にcatalog.phpのデータベースに問い合わせました。どういうわけかこのクエリindividual.phpを再利用できますか?あなたが思っている場合には

次のように、getimage.phpは次のようになります。私の質問を読み取るための

<?php 

$id = $_GET['id']; 
// do some validation here to ensure id is safe 

$link = mysql_connect("localhost", "root", ""); 
mysql_select_db("photodb", $link); 
$sql = "SELECT imagelink FROM photo WHERE id=$id"; 
$result = mysql_query($sql, $link); 
$row = mysql_fetch_assoc($result); 
mysql_close($link); 

header("Content-type: image/jpeg"); 
echo file_get_contents($row['imagelink']); 

?> 

感謝します。

答えて

1

最後のコードスニペットは本質的にあなたの質問に答えました。別のページを作成し、URL($_GET)で変数を渡します。ですから、あなたのURLは "individual.php?id = 25"のように見えます。これはIDが '25'の画像を引っ張ります。 $_GET['id']はこの例では '25'になります。

MySQL接続に「root」ユーザーが使用されていることにも気付きました。私は強くそれに対して助言します。 @Nathan Lodingを参照すると

http://www.1stwebdesigner.com/tutorials/getting-started-php-dynamic-content/

http://www.greensql.com/articles/mysql-security-best-practices

+0

ありがとうございます!私は自分自身が混乱した、私は自分自身でこの問題を解決したことに気付かなかった – exxcellent

0

。私も使用するでしょう

mysql_real_escape_string() 

明らかにmySQLの攻撃を防ぐために。上記のいくつかのコードで判断すると、私はあなたの新しいまたは "古い" webyのコピーと貼り付けコーダーを推測しますか?

これらの関数は、学習するのに役立ちます。非常に簡単です。これは非常に簡単です。そうです。あなたはファイル関数を使用できます。

のfopen() も参照付録M、fcloseを()、fgetsの()、関数fread()、fwriteの()、fsockopenの()、ファイル()、file_exists()、is_readable()、はstream_set_timeout()、popenの()、およびstream_context_create()を呼び出します。

関連する問題