Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在函数php-mysql上返回值数组_Php_Mysql_Arrays - Fatal编程技术网

如何在函数php-mysql上返回值数组

如何在函数php-mysql上返回值数组,php,mysql,arrays,Php,Mysql,Arrays,为什么我有下面的代码, 我想用函数返回值数组: <?php include "config/koneksi.php"; //script1 $fetch1 = mysqli_query($conn, "SELECT * FROM orders_temp"); $array = array(); while($row = mysqli_fetch_assoc($fetch1)){ $array[] = $row[id_orders_temp]; } echo "scri

为什么我有下面的代码, 我想用函数返回值数组:

    <?php

include "config/koneksi.php";

//script1
$fetch1 = mysqli_query($conn, "SELECT * FROM orders_temp");

$array = array();
while($row = mysqli_fetch_assoc($fetch1)){
    $array[] = $row[id_orders_temp];
}
echo "script1: ";
print_r($array);

echo "<br>";

//script2
function cart(){
    $array1= array();

    $fetch2 = mysqli_query($conn,"SELECT * FROM orders_temp");

    while ($r=mysqli_fetch_assoc($fetch2)) {
        $array1[] = $r[id_orders_temp];
    }
    return $array1;
}

$cart1 = cart();
echo "script2 : ";
print_r($cart1);


?>
如果我打印没有函数的数组没有问题,但是 当我使用上面的函数时,我得到了一个空数组。 如何使用函数获取数组值?

是变量id\u orders\u temp 返回正确的值?? 如果它是一列DB,那么你必须

$row['id_orders_temp'];

由于数组中的作用域,您必须将数组指定为全局数组,因此将函数中的第一行替换为下面的一行: $array1=全局$array

函数中未定义变量$conn,因此需要将其传递给函数或引用全局可用的$conn

转交$conn 参考全球$conn 理想情况下,您应该限制全局状态并访问它,所以我不建议这样做

include "config/koneksi.php";

function cart() {
    global $conn;

    $identifiers = array();

    $result = mysqli_query($conn, 'SELECT id_orders_temp FROM orders_temp');

    while ($row = mysqli_fetch_assoc($result)) {
        $identifiers[] = $row['id_orders_temp'];
    }

    return $identifiers;
}

$cart = cart();

var_dump($cart);

注意,我已经重命名了cart中的变量,并优化了SQL查询,以仅选择实际需要的列

应为$array[]=$row['id\u orders\u temp'];不起作用,script1和script2之间的变量名不同@JigarShah,只需关注函数仍不起作用的script2连接处理程序$conn在函数范围内不可用。使用全局或显式地将连接处理程序传递给函数。cart函数中的连接存在范围问题,应将其作为参数传递给函数,避免使用全局。如果您启用了错误报告功能,您会收到通知。Php非常聪明,能够自己解决这个问题,但是它会发出通知,我现在明白了,它非常感谢您
include "config/koneksi.php";

function cart($conn) {
    $identifiers = array();

    $result = mysqli_query($conn, 'SELECT id_orders_temp FROM orders_temp');

    while ($row = mysqli_fetch_assoc($result)) {
        $identifiers[] = $row['id_orders_temp'];
    }

    return $identifiers;
}

$cart = cart($conn);

var_dump($cart);
include "config/koneksi.php";

function cart() {
    global $conn;

    $identifiers = array();

    $result = mysqli_query($conn, 'SELECT id_orders_temp FROM orders_temp');

    while ($row = mysqli_fetch_assoc($result)) {
        $identifiers[] = $row['id_orders_temp'];
    }

    return $identifiers;
}

$cart = cart();

var_dump($cart);