2011-10-19 12 views
0

並べ替えられていないリストに表示されるランダムな選択肢がページに表示される単純なデータベースを構築しました。 jsスクリプトは、各リスト項目を1つずつ表示します。これまでのところPHP:検索クエリから配列要素を追跡する

while ($row = mysql_fetch_assoc($query)) { 
    echo "<li><span id='id'>"; 
    // print the quote number 
printf ("%s", $row['id']); 
    echo "</span>&nbsp;<span id='quote'>"; 
    // print the quote 
printf ("%s", $row['strategy']); 
    echo "</span>&nbsp;<span id='author'>"; 
    // print the quote author 
    printf ("by %s", $row['author']); 
    echo "</span></li>"; 

}

とても良い:

これは、クエリーループです。私の問題は、好き嫌いの数を表示し、ユーザーに投票させる方法です。私はこのようにプリントアウトされた後、どのようにアレイデータをアクティブに保つことができるのか理解できません。 PHPで行要素を追跡するためにカウンタを使用することができますので、ユーザーが投票している見積もりを知ることができますか?

ありがとうございます!

答えて

0

あなたのコードが読みにくかったので、私はそれを書き直しました。見積もりID番号を使用して、見積もりに関する他のデータにアクセスしたいとします。 Dhruvの例は、要素のidを使用し、javascriptでデータを取得するための良い方法でした。しかし、いくつかのことについては、サーバー上でそれ以上のことを処理したいかもしれません。

// assume the numbers I'm using are valid quote ids 
$like_array=array(12=>'15 likes', 14=>'2 likes', 18=>'6 likes'); 

$output =''; 

while ($row = mysql_fetch_assoc($query)) { 
    $output .= "<li><span id='id'>{$row['id']}</span>&nbsp;";      // quote number 
    $output .= "<span id='quote'>{$row['strategy']}</span>&nbsp;";    // print the quote 
    $output .= "<span id='author'>by {$row['author']}</span></li>";    // print the quote author 
    $output .= '<a href="http://somelink.com/page.php?like='.$row['id'].'"></a>'; // like link 
    $output .= '<span>Number of likes: '.$like_array[$row['id'].'</span>';  // like link 
} 

echo $output; 

同様のリンクは、引用符のIDを$ _GET変数として渡すリンクであることがわかります。好きな数の部分については、既にその情報を持っていると仮定し、インデックスキーが引用符で囲まれた配列に既にあります。 (これは$ like_arrayです)

これは単なる基本的な考えですが、正しい方向に進むべきです。

+0

構文エラー(と@DhruvPathak) - ありがとう、私はこれらの方法の両方を試みます。 – matski

0

データベースのプライマリキーまたはインデックス番号をidとしてエコーすることができます。 その後、javascriptはどの要素が投票されたのかを簡単に検出できます。

例:

while ($row = mysql_fetch_assoc($query)) { 
    echo "<li><span id='id'>"; 
    // print the quote number 
printf ("%s", $row['id']); 
    echo "</span>&nbsp;<span id='quote'>"; 
    // print the quote 
printf ("%s", $row['strategy']); 
    echo "</span>&nbsp;<span id='author'>"; 
    // print the quote author 
    printf ("by %s", $row['author']); 
    echo "</span>"; 
    echo "<a id='votelink_'".$row['id']."href='javascript:void(0);' onclick='checkVote(this.id);' > VOTE HERE </a>";  
    echo "</li>"; 

} 

Javascriptを:

function checkVote(theId) 
{ 
    alert("Element with id = " + theId + " was voted"); 
} 
関連する問題