次のコードでは、データベースから抽出した 6 つの値を配列 'arrayRetrievedUserInfo' に割り当てています。しかし、この配列を印刷すると、そのうちの 2 つしか表示されません。次に、この配列を別の配列 'arrayResponse' に割り当てます。この配列には、arrayRetrievedUserInfo と他の 2 つのフィールドが含まれています。しかし、この配列を印刷すると、arrayRetrievedUserInfo を直接印刷するときに表示されなかった arrayRetrievedUserInfo の 4 つの値が表示されます。この問題を解決するために私を助けてください。
public function signIn()
{
//code for signing in the user
try
{
$success=0;
//query to retrieve user info
$query_sign_in="SELECT * FROM users WHERE user_name='".$this->userName."'and user_pass='".$this->password."'";
$result_sign_in=mysql_query($query_sign_in,$this->db)or die (mysql_error());
if($result_sign_in!=0)
{
/*
Check if record exist against this username-password combination
*/
if(mysql_num_rows($result_sign_in)==0)
{
//Username-password combination does not exit
$arrayErrors['no_user']=$this->USERNAME_PASSWORD_COMBINATION_ERROR;
$success=0;
}
else
{
//Username-password combination exist
while($row=mysql_fetch_array($result_sign_in))
{
//Retrieve the user's data from database
$arrayRetrievedUserinfo['user_id']=$row["user_id"];
$arrayRetrievedUserInfo['first_name']=$row["first_name"];
$arrayRetrievedUserInfo['last_name']=$row["last_name"];
$arrayRetrievedUserinfo['username']=$row["user_name"];
$arrayRetrievedUserInfo['email']=$row["user_email"];
$arrayRetrievedUserInfo['user_type']=$row["user_level"]; //1-admin 0->non-admin
echo "Echoing database elements individually";
echo $row['first_name']."<br />";
echo $row['last_name']."<br />";
echo $row['user_name']."<br />";
echo $row['user_email']."<br />";
echo $row['user_id']."<br />";
echo "-------------------------------<br/>";
}
$success=1;
echo "Printing the contents of the arrayRetrievedUserinfo using a for loop <br/>";
foreach ($arrayRetrievedUserinfo as $key)
{
echo $key."\n";
echo "\n";
}
echo "<br>--------------------------<br>";
}
}
else
{
$arrayErrors['db']=$this->DATABASE_CONNECTION_ERROR;
$success=0;
}
if($success)
{
//Query executed successfully
$arrayResponse["success"]=1; //staus of the operation
$arrayResponse["errors"]=0; //if any error occured
$arrayResponse["user_info"]=$arrayRetrievedUserInfo; //array of the information retrieved from the database
echo "**Checking contents of the arrayResponse using var_dump <br>";
var_dump($arrayResponse);
echo "<br>---------------------------------------<br>";
return $arrayResponse; //return the array of response to the calling methode
}
else
{
//Query failed to execute
$arrayResponse["success"]=0; //status = failure
$arrayResponse["errors"]=1; //errors occured =yes
$arrayResponse["error_details"]=$arrayErrors; //send the errors
return $arrayResponse; //return the array of response to the script: sign_in_android.php
}
}
catch(Exception $e)
{
}
}
出力は ------------ データベース要素を個別にエコーするhddhdh e dd ddd
88
for ループを使用して arrayRetrievedUserinfo の内容を出力する
88日
**var_dump を使用して arrayResponse の内容を確認する