在不同的函数中使用sql assoc数组的结果之一

时间:2018-06-15 00:17:29

标签: php mysql

我正在尝试使用assoc的一个结果。其原始函数之外的SQL查询数组。 即我想在一个完全不同的函数中使用assoc数组查询的一个值。 我首先把它变成一个变量然后全球化。然后 我试图在它的父函数之外回显它,但没有任何可见的东西。请参阅我的代码 明晰。或者我可以在mysqli fetch数组函数中运行不同的函数吗?

<?php
session_start();
include_once('server.php');

$gat = "";

if(isset($_POST['btn-login'])){
    $query = "select * from users";
    $conditions = array();

    if(! empty($firstname)){
        $conditions[] = "firstname='$firstname'";
    }

    if(! empty($lastname)){
        $conditions[] = "lastname='$lastname'";
    }

    if(! empty($gender)){
        $conditions[] = "gender='$gender'";
    }

    $sql = $query;
    if(count($conditions) > 0){
        $sql .= " WHERE " . implode(' AND ', $conditions);
    }

    $result = mysqli_query($conn, $sql);

    while($users = mysqli_fetch_array($result, MYSQLI_ASSOC)){
        $users['firstname'];

        $users['firstname'] = $gat;
        GLOBAL $gat;
        $users['lastname'];
        $users['id'];
    }       

    //tried to echo value outside to be used for different function.

    echo $gat; 
}

?>

2 个答案:

答案 0 :(得分:0)

首先,您不需要在此使用GLOBAL。变量$gat在最外层的作用域中定义,因此它可以在文件的任何位置使用。

你的问题在这里。您将$ users ['firstname']设置为等于$gat的值,此时此字符串为空字符串:“”。你想做相反的事情,设置$gat = $users['firstname']

所以转过这些界限:

$users['firstname'];
$users['firstname'] = $gat;
GLOBAL $gat;
$users['lastname'];
$users['id'];

分为:

$users['firstname']; // 1
$gat = $users['firstname']; // 2
$users['lastname']; // 3
$users['id']; // 4

另外,我不确定你的确切意图是什么,但第1,3和4行什么也没做。

答案 1 :(得分:0)

您不在任何限制访问mysql结果的函数内部。永远不会为$ gat分配值,而是将$ users [&#39; firstname&#39;]分配给$ gat,最初设置为&#34;&#34;。