2013-08-01 32 views
0

我是一個初學者,在PHP和mysqli。我想編寫一個程序來顯示數據庫表中的名稱列表。用戶可以點擊這些名稱,點擊該名稱應該顯示該人的圖片。如何使名稱變量clickable(mysqli)?

我的代碼如下。我可以添加名稱和人員到數據庫並檢索數據庫中的所有名稱,但我不知道如何使名稱「可點擊」,以便用戶可以點擊它們並顯示圖片。有人可以看看並給我一些提示嗎?謝謝你的幫助!

請參閱下面的我的代碼部分 - 這裏是我的主要PHP文件:

//Turn on error reporting 
    ini_set('display_errors', 'On'); 
    //Connects to the database 
    $mysqli = new mysqli("blah blah", "username","pw", "blah"); 
    if($mysqli->connect_errno){ 
     echo "Connection error: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; 
    } 
?> 


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html> 
    <head> 
     <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script> 
     <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.js"></script> 
     <script>$(document).ready(function() {$("form").validate();});</script> 
     <title>CS302</title> 
     <meta charset="UTF-8"> 
     <p></p> 
    </head> 
    <body> 
     <div>This is a homework</div> 
     <p></p> 
     <div> 
      <form method="post" action="index.php" enctype="multipart/form-data"> 
       Celebrity Name: <input type="text" name="c_name"> 
       Celebrity Photo: <input type="file" name="c_picture"> 
       <input type="submit" name="add" value="Upload"> 
      </form> 
     </div> 
     <br> 
     <div> 
     <table> 
     <tr> 
      <td>See below for a list of celebrities in our database</td> 
     </tr> 
     <?php 
      //Display names in the celebrity database 
      if(!($stmt = $mysqli->prepare("SELECT c_name FROM celebrity"))){ 
       echo "Prepare failed: " . $stmt->errno . " " . $stmt->error; 
      } 

      if(!$stmt->execute()){ 
       echo "Execute failed: " . $mysqli->connect_errno . " " . $mysqli->connect_error; 
      } 

      if(!$stmt->bind_result($c_name)){ 
       echo "Bind failed: " . $mysqli->connect_errno . " " . $mysqli->connect_error; 
      } 

      while($stmt->fetch()){ 
       echo "<tr>\n<td>\n" . $c_name . "\n</td>\n</tr>"; 
      } 

      $stmt->close(); 
     ?> 
     </table> 
     </div> 
    </body> 
</html> 

這裏是PHP文件檢索圖像:

//Turn on error reporting 
    ini_set('display_errors', 'On'); 
    //Connects to the database 
    $mysqli = new mysqli("blah", "blah","blah", "blah"); 
    if($mysqli->connect_errno){ 
     echo "Connection error: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; 
    } 


    //retrieve the blob 
    if(!($stmt = $mysqli->prepare("SELECT c_picture FROM celebrity where c_name = ?"))){ 
     echo "Prepare failed: " . $stmt->errno . " " . $stmt->error; 
    } 

    if(!($stmt->bind_param("i",$_POST['c_id']))){ 
     echo "Bind failed: " . $stmt->errno . " " . $stmt->error; 
    } 

    if(!$stmt->execute()){ 
     echo "Execute failed: " . $mysqli->connect_errno . " " . $mysqli->connect_error; 
    } 

    if(!$stmt->bind_result($c_picture)){ 
     echo "Bind failed: " . $mysqli->connect_errno . " " . $mysqli->connect_error; 
    } 

    $stmt->store_result(); 

    while($stmt->fetch()){ 
     echo "<tr>\n<td>\n" . $c_picture . "\n</td>\n</tr>"; 
    } 

    $stmt->close(); 
?> 

回答

1

試試這個

$mysqli->prepare("SELECT c_id,c_name FROM celebrity") 
// make sure your $c_id contains the id of that name record 
while($stmt->fetch()){ 
       echo "<tr><td><a href='your_picture.php?c_id=".$c_id."'>" . $c_name . "</a></td></tr>"; 
      } 

而且在your_picture.php使用$_GET['c_id']

$stmt->bind_param("i",$_GET['c_id']) 
0

它種取決於你在c_picture中存儲的內容。如果您正在存儲圖像的Web位置字符串,則可以簡單地更改查詢以返回c_name和c_picture。

那麼你的PHP可以使用此:

echo "<tr>\n<td>\n<a href=\"".$c_picture."\">".$c_name."</a>\n</td>\n</tr>";