我想问一下如何显示多行数据而不是一行.以下代码仅显示一行记录而不是多条记录.我在这里使用mysqli_prepare语句.或问题是我的android studio编码?我的应用程序使用登录功能和编码实现如下.
<?PHP
$host="DB_HOST";
$user="DB_USER";
$password="DB_PASSWORD";
$db="DB_NAME";
$con = MysqLi_connect($host,$user,$password,$db);
$parentic=$_POST["ParentIC"];
$password=$_POST["Password"];
$selectquery = MysqLi_prepare($con, "SELECT Parents_Data.Name, Student_List.StudName, Student_List.StudIC, Student_List.Form,Student_List.Class,discipline_record.Date,discipline_record.RulesCode, discipline_record.TypesofMistakes,discipline_record.Punishment FROM discipline_record LEFT JOIN Student_List ON discipline_record.StudIC = Student_List.StudIC LEFT JOIN Parents_Data ON Student_List.ParentIC = Parents_Data.ParentIC WHERE Parents_Data.ParentIC = ? AND Parents_Data.Password = ? ");
MysqLi_stmt_bind_param ($selectquery, "ss", $parentic, $password);
MysqLi_stmt_execute($selectquery);
MysqLi_stmt_store_result($selectquery);
MysqLi_stmt_bind_result($selectquery,$name,$studname,$studic,$form,$classs,$ddate,$code,$mistakes,$punishment);
$user = array();
while(MysqLi_stmt_fetch($selectquery))
{
$user[name]=$name;
$user[studname]=$studname;
$user[studic] = $studic;
$user[form]=$form;
$user[classs]=$classs;
$user[ddate]=$ddate;
$user[code]=$code;
$user[mistakes]=$mistakes;
$user[punishment]=$punishment;
}
echo json_encode($user);
MysqLi_stmt_close($selectquery);
MysqLi_close($con);
?>
解决方法:
我会选择这样的东西:
$userGroup = array();
$user = array();
while(MysqLi_stmt_fetch($selectquery))
{
$user[name]=$name;
$user[studname]=$studname;
$user[studic] = $studic;
$user[form]=$form;
$user[classs]=$classs;
$user[ddate]=$ddate;
$user[code]=$code;
$user[mistakes]=$mistakes;
$user[punishment]=$punishment;
array_push($userGroup,$user);
}
echo json_encode($userGroup);