2011-04-17 4 views
1

これはPHPとMySQLを使用した私の最初のプロジェクトで、HTML、PHP、MySQLを使用したFacemashスタイルのサイトを開始するのがよいと思いました。イメージハイパーリンク(Facemashプロジェクト)からPHP関数を実行

"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

答えて

0

Erm、PHPはそのようには動作しません。 ;)

PHPはサーバサイドコードなので、あなたはどこにもリンクしていません。効果を得るには、AJAXを呼び出してヒットを更新する必要があるでしょう。

+0

ありがとうございます。 – Josh

+0

リンク内にupdateHits()関数を追加しているにもかかわらず、PHPがそのコードを実行したときに起こっていることは、PHPがすべてを一度解析して同じ出力を生成するということです時間。これは、updateHits($ personB)が実際にブラウザに何らかの出力を提供していないことを意味します(タグなどの外にある)。完成したタグはのように見えます。あなたが欲しいもの。 –

+0

基本的には、URLフィールドに指定されたユーザー名でupdateHits()関数を呼び出し、リンクをクリックしたときにページリンクにJavascriptを使用してバックグラウンドでロードする2番目のPHPファイルを作成したい場合があります。 (オプション)読み込まれたページを更新して新しいデータを表示します。 –

関連する問題