PHP:跟踪搜索查询中的数组元素

时间:2011-10-19 04:33:26

标签: php arrays loops counter

我构建了一个简单的数据库,其中页面显示随机选择的引号,这些引号显示在无序列表中。 js脚本遍历每个列表项,一次显示一个。

这是查询循环:

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中的行元素,这样我就可以知道用户投票的是什么引用了吗?

谢谢!

2 个答案:

答案 0 :(得分: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" );
}

答案 1 :(得分: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;

您可以看到,like链接只是一个将引号的id作为$ _GET变量传递的链接。对于喜欢部分的数量,假设我们已经拥有该信息,并且它已经在索引键为引号ID的数组中。 (那是$ like_array)

这只是基本的想法,但应该让你朝着正确的方向前进。