WHERE标准中的数组

时间:2015-10-12 10:14:43

标签: php mysql arrays

我希望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查询按时间排序。

任何帮助将不胜感激。

4 个答案:

答案 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,因为内容应该是安全的。

看这里:

http://www.php.net/manual/en/function.json-encode.php

http://www.php.net/manual/en/function.urlencode.php

答案 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'))获得falsein_array('bat', array('bat','ball'))获得true。对于非关联数组,数组的后续条目将添加$array[] = 'foo';

请阅读并确保理解how arrays work in PHP