2012-05-16 3 views
2

나는 2 개의 PHP 폼을 가지고 있습니다. 하나는 이벤트 목록을 표시하고 다른 하나는 각 특정 이벤트의 결과를 표시합니다. 이벤트 목록이있는 페이지에서 각 개별 이벤트의 결과에 액세스하기 위해 하이퍼 링크를 만들 수 있도록하고 싶습니다.하이퍼 링크가있는 PHP/MySQL 테이블

예를 들어 이벤트 페이지에서 행 2의 하이퍼 링크를 클릭하면 해당 특정 이벤트에 대한 결과가있는 결과 페이지로 이동합니다.

필자는 PHP에 매우 익숙한 도움을 주시면 감사하겠습니다. 추가 세부 사항이 필요하면 언제든지 물어보십시오.

감사합니다.

편집 : 당신은 두 개의 스크립트,하지만 한 필요가 없습니다

<?php 
mysql_connect('localhost','root',''); 
mysql_select_db('clubresults') or die("Unable to select database"); 
$sql = "SELECT *, DATE_FORMAT(EventDate, '%d/%m/%y') as newdate FROM Events"; 
$result = mysql_query ($sql); 
?> 
<table border = 1> 
<tr> 
<th>Event ID</th> 
th>Event Name</th> 
<th>Event Date</th> 
<th>Location</th> 
</tr> 
<?php 
while ($row = mysql_fetch_array($result)) 
{ 
echo "</td><td>" . $row['EventID'] . "</td><td>" . $row['EventName'] . "</td><td>" . $row['newdate'] . "</td><td>" . $row['Location'] . "</td><tr>"; 
} 
echo "</table>"; 
mysql_close(); 
?> 
+0

2 개의 PHP 폼은 어디에 있습니까? –

+0

특정 이벤트의 URL은 어떻게 표시됩니까? – declan

답변

2

: 지금까지처럼 이벤트 양식 모습을 보여 드리겠습니다 죄송합니다 거기에

events.php?list 
events.php?event=1234 

당신 만 가지를 확인해야합니다

$db = new Database(); # simplified 


/* show event details if requested */ 

if (isset($_GET['event']) { 
    if ($event = $db->getEventByID($_GET['event'])) { 
     printf('<h2>Event: %s</h2>', htmlspecialchars($event->title)); 
     # ... 
    } 
} 

/* show the list if requested (or show it always, whatever pleases you) */ 

if (isset($_GET['list']) { 
    echo '<table>'; 
    foreach($db->getEventList() as $event) { 
     printf('<tr><td><a href="?event=%d">%s</a></td></tr>' 
       , $event->ID, htmlspecialchars($event->title)); 
    } 
    echo '</table>'; 
} 

편집 : 업데이트 된 질문에서 보았 듯이 oldskool mysql_* 함수를 예제에서 설명한 클래스 스타일로 전환해야합니다. 사용법이 훨씬 간단하기 때문입니다. 여기에 가까운 코드 예제가 있습니다 :

<?php 
/** 
* My First PDO Databaseclass 
*/ 
class Database extends PDO 
{ 
    public function __construct() 
    { 
     $host = 'localhost'; 
     $name = 'clubresults'; 
     $user = 'root'; 
     $pass = NULL; 

     parent::__construct("mysql:host=$host;dbname=$name", $user, $pass); 
     $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     // $this->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 
    } 

    public function getEvents() 
    { 
     $sql = "SELECT *, DATE_FORMAT(EventDate, '%d/%m/%y') as newdate FROM Events"; 
     return $this->query($sql, PDO::FETCH_OBJ); 
    } 

    public function getEventByID($id) 
    { 
     $sql = sprintf("SELECT * FROM Events WHERE EventID = %d;", $id); 
     return $this->query($sql)->fetchObject(); 
    } 
} 

$db = new Database(); 

?> 
<table border=1> 
    <tr> 
     <th>Event ID</th> 
     th>Event Name</th> 
     <th>Event Date</th> 
     <th>Location</th> 
    </tr> 
<?php 
foreach($db->getEvents() as $event) 
{ 
    echo "</td><td>" . $event->EventID . "</td><td>" . $event->EventName . "</td><td>" . $event->newdate . "</td><td>" . $event->Location . "</td><tr>"; 
} 
?> 
</table> 
+0

너 같은 게 필요 없어? echo 'View Details'; 하나의 페이지에 과 $ query = "SELECT * FROM events WHERE ID =". intval ($ _REQUEST [ 'ID']); 결과에 (이것은 내가 다른 곳에서 온라인으로 본 것입니다.) –

+0

파일 이름이 다른 경우에만 수행해야합니다. 파일 이름이 같으면 '?'로 시작할 수 있습니다. – hakre

관련 문제