我正在尝试检查数组中是否存在值,如果存在,它应该从数据库中回显有关该值的信息。
我现在得到的是“null”结果,但我希望列表中至少有三个结果,它们存在于数组和数据库中。
这就是var_dump对数组的看法,它不是整个数组,但它看起来一样:$friends = array($friends['data']);
array(1) {
[0]=>
array(680) {
[0]=>
array(2) {
["name"]=>
string(17) "One friends name"
["id"]=>
string(8) "FRIEND_ID"
}
[1]=>
array(2) {
["name"]=>
string(13) "Another friends name"
["id"]=>
string(9) "FRIEND_ID"
}
[2]=>
array(2) {
["name"]=>
string(22) "Another friends name"
["id"]=>
string(9) "FRIEND_ID"
}
PHP代码:
<?php
$query_top_list_friends = mysql_query("
SELECT * FROM ".$DBprefix."users
WHERE center_id='" . $personal['center_id'] . "'
ORDER BY workouts DESC LIMIT 10");
$i = 0;
$friends = array($friends['data']);
while ($top_list_friends = mysql_fetch_array($query_top_list_friends))
{
//Below it should only echo if the "fid" in the database and the "id" in the array is equal, then it should echo information based on that id from the database
if($friends[$top_list_friends['fid']])
{
$i++;
echo "<div class='user'>";
echo "<span class='number'>" . $i . "</span>";
echo "<span class='name'>" . $top_list_friends['name'] . "</span>";
echo "<span class='workouts'>" . $top_list_friends['workouts'] . "</span>";
echo "</div>";
}
}
我有什么想法可以解决这个问题吗?
答案 0 :(得分:2)
我认为$friends = array($friends['data']);
在索引0处持有朋友数组,因此当您调用if($friends[$top_list_friends['fid']])
时,您不会查看包含朋友的数组,而是查看数组保持朋友的数组,如果这是有意义的
尝试将$friends = array($friends['data']);
更改为$friends = $friends['data'];
,您应该开始获得结果,但是fid是如何工作的?它是指向数组的索引还是数组的键?从上面发布的那个数组看,唯一可访问的值是:
$friends[0][0] // One friend
$friends[0][1] // Another friend
$friends[0][2] // Another friend
因此请确保fid是一个整数,因为调用$friends[0][$fid]
需要是0到2的整数才能返回任何数据
希望有帮助以及我将乐意回答的任何问题
答案 1 :(得分:1)
您应该可以使用SQL
的{{1}}:
IN