我希望select查询根据此数组运行。数组示例:
Array([0] => 'something@something.com' [1] => 'something@something.com')
但是当我拿到它时会出现错误。错误是:
警告:mysqli_fetch_array()要求参数1为mysqli_result,布尔值为__
我的代码是
$other_user_array = array();
$result = mysqli_query($con, "SELECT * FROM friends WHERE (frd_one ='$email') OR (frd_two = '$email')");
while($row = mysqli_fetch_array($result)){
$id_frd = $row['id'];
$user_one = $row['frd_one'];
$user_two = $row['frd_two'];
if($user_one == $email){
$other_user_array[] = $user_two;
} else{
$other_user_array[] = $user_one;
}
}
$join = implode(',',$other_user_array);
$select_post = mysqli_query($con,"SELECT * FROM posts WHERE created_by IN ($join)");
while($postrow = mysqli_fetch_array($select_post)){
$post_id = $postrow['id'];
$post_content = ucfirst($postrow['content']);
$post_created_by = $postrow['created_by'];
}
我还希望$ select_post查询按时间排序。
任何帮助将不胜感激。
答案 0 :(得分:2)
苛刻,我没有新的答案,只是一个技巧,你可以更好地理解PHP中的数组。
只需使用print_r()或var_dump()检查数组。
例如:
$myArr = ['hello','no','yes'];
echo "<pre>";
print_r($myArr);
echo "</pre>";
您将在输出中看到所使用的值将获取索引,如BFDatabaseadmin指出的那样。
现在,如果要使用关联数组,请使用键:
$myArr = ['IPointToHello'=>'hello', 'bananas'=>'no', 'yes'=>'yes'];
echo "<pre>";
print_r($myArr);
echo "</pre>";
我的建议是以这种方式检查任何数组,当你对它的结构有疑问时,并记住元素总是有一个索引,即使你没有提供索引。
最后一件事:如果你想在问号之后的URL中传递数组,请确保将数组转换为字符串(称为编码的过程),并在收到数组时将其作为数组(解码)。 / p>
json_encode(和接收时的json_decode())之类的函数可以做到这一点。
,在使用URL之前,请先使用url_encode,因为内容应该是安全的。看这里:
答案 1 :(得分:1)
不完全;如果您没有指定密钥,PHP将为您添加密钥。
您可以像在第一个示例中那样定义数组,但PHP会将其视为您在第二个示例中定义的数组。因此,当您检索数组时,它会有一个键 - 但无论如何都没有理由不想要键。
答案 2 :(得分:0)
请尝试以下代码,它将为您提供顺序数组。
$temp = array('ball','bat');
添加更多
$temp[] = 'stump';
答案 3 :(得分:0)
PHP函数array_values()将关联数组转换为数字索引数组。但是,正如其他人所说,你的例子中的数组已经用数字索引。
PHP函数in_array()查看数组中是否存在特定值。这可能与你在PHP中最好的IN CRITERIA相似。
in_array('foo', array('bat','ball'))
获得false
,in_array('bat', array('bat','ball'))
获得true
。对于非关联数组,数组的后续条目将添加$array[] = 'foo';
。
请阅读并确保理解how arrays work in PHP。