2011-10-19 3 views
0

개별 PHP 페이지를 자동으로 만드는 방법에 관한 문제가 있습니다.자동으로 PHP 페이지를 만듭니다

나는 이미 catalog.php라는 페이지를 만들었습니다.

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

그런 다음이 쿼리 것 루프를하고 옆에 catalog.php 측의 내용을 표시 :

catalog.php에서

, MySQL의 쿼리는 쿼리, 일어날

<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 

예 : 위, 이미지, 자막, 제목, 저자의 의견에

  Picture of bridge 
IMAGE  This image was taken in paris 

      Low Shuttle Speed 

가 같은 테이블에 동일한 데이터베이스 "photodb"에서 발견된다 "사진 "여기

내 문제는 다음과 같다 :

  1. 같은 페이지 자동 게이트를 만들 수있는 방법이 있나요 atically? 그 이유는 수동으로 만들면 내 데이터베이스에 100 개 이상의 항목이 있기 때문에 힘든 시간을 보게 될 것입니다.

  2. catalog.php에 표시된 <a href=""> 태그에서 값은 무엇입니까?

  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.greensql.com/articles/mysql-security-best-practices

+0

감사합니다. 나는 혼란 스러웠다. 나는이 문제를 직접 해결했다는 것을 깨닫지 못했다. – exxcellent

0

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

. 나는 또한 사용한다

mysql_real_escape_string() 

확실히 mySQL 공격을 막기 위해. 위의 코드 중 일부를 살펴보면, 새로운 또는 "오래된"weby 복사 및 붙여 넣기 코더를 추측합니까 ??

이 기능들은 당신이 배우기도하는데 도움이되며 .. 매우 쉽게 할 수 있습니다. 그래서 .. .. .. 당신은 파일 기능을 사용할 수 있습니다.

는 fopen() 참조 부록 M, FCLOSE()는 fgets(), FREAD()에 fwrite(),()는 fsockopen, 파일(), file_exists(),() is_readable, stream_set_timeout()는 popen() 및 stream_context_create()를 호출합니다.

관련 문제