从用户onclick运行php

I'm not sure how well i'll be able to explain this, but here goes. I have a website for attractions. Let's say that one of my categories is Historical villages. When the user opens the Historical villages page he gets a list of villages displayed from the database. The way I display them is: Name plus a picture of the attraction. What I want to do is unable the user to click on of the villages (by making the name and picture a clickable link) and the user to be redirected to a page that will run a php script that will display more information from the database about the selected village. That way I will only have one page for all attractions that will display different information every time a user selects something different, instead of hardcoding all the pages.

This is my code displaying the lits of villages:

$sql = "SELECT `Name`, `Location`, `Description`, `Airport`, `imglink`, `pagelink` "
        . "FROM `attractions` "
        . "WHERE `Category`='HistV'";
$result = mysql_query($sql, $link);

if (!$result) {
    echo "DB Error, could not query the database
";
    echo 'MySQL Error: ' . mysql_error();
    exit;
}

while ($row = mysql_fetch_assoc($result)) {

    echo $row['Name'];
    echo "<img src='" . $row['imglink'] . "'>";
}

Do any of you have any suggestions on how to make this output a link and the make it run the PHP to show the users selection?

Your while condition changed to like this,

while ($row = mysql_fetch_assoc($result)) {
    /* For example , 
       $row['pagelink'] must contains the pagelink as belowed here
            /viewVillage.php?village_id=1
            /viewVillage.php?village_id=2 and so on.  */
     echo "<a href='" . $row['pagelink'] . "'>"
             .  $row['Name']  .
             . "<img src='" . $row['imglink'] . "'>
           </a>";
}

This will generate your list of villages like this,

<a href="/viewVillage.php?village_id=1">
   Village name 1
   Village Image 1
</a>

<a href="/viewVillage.php?village_id=2">
   Village name 2
   Village Image 2
</a>

<a href="/viewVillage.php?village_id=3">
   Village name 3
   Village Image 3
</a>

 .....

When you click on any of the link, it will redirected to viewVillage.php page. Now you can get the particular village using $_GET['village_id']

viewVillage.php

if(isset($_GET['village_id']]) && $_SERVER['REQUEST_METHOD'] == 'GET' ) {

    $villageId = $_GET['village_id'];
    // Then do your stuff over here
}

On your current page

while ($row = mysql_fetch_assoc($result)) {
/* For example , 
   $row['pagelink'] should be a village id */
 echo "<a href='/attractions.php?village=" . $row['pagelink'] . "'>"
         .  $row['Name']  .
         . "<img src='" . $row['imglink'] . "'>
       </a>";

}

Now it would print something like

<a href="/attractions.php?vilage=2"> Vilage Name <img src="urltoimage"></a>

When you click on this link you will be sent to a file called "attractions.php"

Create this file in the same directory and it should have the following php in it

<?php 
$villageId = $_GET['village']; //this gets the id of the village from the url and stores
//it in a variable
//now that you have the id of the village, perform your sql lookup here
//of course you will have to fill this is, as I don't know your actual table fields and names
$sql = "SELECT * FROM Attractions WHERE villageID = `$villageID`";

 //now perform the query, loop through and print out your results
?>

Does this make sense?