我正在尝试使用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;
}
?>
答案 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;。