2011-04-17 32 views
1

好吧,這是我第一個使用PHP和MySQL的項目,我認爲使用HTML,PHP和MySQL的Facemash風格的網站將是一個很好的開始。從圖像超鏈接運行PHP函數(Facemash項目)

除了像圖片超鏈接調用「updateHits」函數的行爲不像我所期望的那樣,一切正常。

我相信MySQL數據庫能夠正常運行並且圖片按預期顯示。我的研究指向使用iFrames,jQuery或AJAX來更新「點擊」字段,儘管我無法理解如何在這裏應用它們。

我希望我的代碼可讀,任何建議將不勝感激!

<html> 
<body> 
<?php 
// Make a MySQL Connection 
mysql_connect("localhost", "admin", "admin") or die(mysql_error()); 
mysql_select_db("facemash") or die(mysql_error()); 

// Select two random people 
$personA = rand(1, 28); 
$personB = rand(1, 28); 

// Ensure that it is not the same person 
if ($personB == $personA) { 
    $personB = rand(1, 28); 
} 

// Function to return path of photo 
function photoPath ($person){ 

$query = mysql_query("SELECT photo FROM people WHERE id=$person"); 
$result = mysql_fetch_row($query); 
$result = $result[0]; 

echo $result; 
} 

// Function to update the hits field 
function updateHits($person){ 

$query = mysql_query("SELECT hits FROM people WHERE id=$person;"); 
$result = mysql_fetch_row($query); 
$result = $result[0]; 

$result++; 

mysql_query("UPDATE people SET hits = $result WHERE id=$person"); 
} 
?> 

<!--Image for personA--> 
<a href="<?php updateHits($personA);?>"><img src="<?php photoPath($personA);?>"/></a> 

<!--Image for personB--> 
<a href="<?php updateHits($personB);?>"/><img src="<?php photoPath($personB);?>"/></a> 
</body> 
</html> 

謝謝。

+0

你期待什麼? – ITroubs 2011-04-17 23:43:14

回答

0

呃,PHP不能這樣工作。 ;)

PHP是服務器端代碼,你正在創建一個指向任何地方的鏈接。爲了達到你想要的效果,你需要對服務器進行AJAX調用,告訴它更新命中。

+0

謝謝,我會研究它:) – Josh 2011-04-17 23:52:44

+0

本質上,運行代碼時發生的情況是,即使您在鏈接中添加updateHits()函數,PHP也會解析整個事件,並在相同的位置生成輸出時間。這意味着,由於updateHits($ personB)實際上並沒有向瀏覽器提供任何輸出(通過打印或回顯,或者只是在標籤之外或其他任何地方),您的標籤看起來就像是 ......這顯然不是你想要什麼。 – 2011-04-17 23:57:39

+0

基本上,您將要創建第二個PHP文件,該文件使用在URL字段中提供的用戶名來調用updateHits()函數,然後在您的頁面鏈接中使用Javascript在點擊鏈接時在後臺加載並(可選)更新加載的頁面以顯示新數據。 – 2011-04-17 23:59:26