2016-04-25 1 views
4

rowを1つではなくrowと多く表示するにはどうすればいいですか?次のコードは、複数のレコードが利用可能ではなく、レコードの1行のみを表示します。私はここにmysqli_prepareステートメントを使用しています。または、問題は私のアンドロイドスタジオコーディングにありますか?私のアプリケーションは以下のようにログイン機能とコーディングで実装されています。PHPスクリプトでは、アンドロイドスタジオではなく、1行のデータしか表示されません

<?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); 

?>       
+0

'foreach'ループを使用して、やり直してくださいを。 –

+0

@ChoncholMahmudはもっと私を導くことができますか?私はこれに新しいですから。おかげでwhileループ内での助けを –

+0

残念ながら、それは、変更を加えるdoesntの..助けを – RST

答えて

1

私はそのようなものとなるだろう:あなたが正しいクエリをやってますが、時にされているように見えます2次元配列

$users = array(); 

while(mysqli_stmt_fetch($selectquery)) 
{ 
    $users[] = array(); 
    $users[][name]=$name; 
    $users[][studname]=$studname; 
    $users[][studic] = $studic; 
    $users[][form]=$form; 
    $users[][classs]=$classs; 
    $users[][ddate]=$ddate; 
    $users[][code]=$code; 
    $users[][mistakes]=$mistakes; 
    $users[][punishment]=$punishment;   

} 

foreach ($users as $user) 
    echo json_encode($user); 
+0

感謝しますが、エラーではなく –

+0

は多分別のjson_encodeで$ユーザーをカプセル化が発生します。この作業を開始する場合は、mysqli_connect()の代わりにPDOを使用することを検討してください。エラーは何ですか?それは文字列と関係がありますか?明らかにこれはログイン機能のためのものです。 – nyluje

+0

あなたのコーディングを適用した後、代わりにログインすることができませんでした。 –

1

2次元ではなく1つのフラットアレイを使用して結果をフェッチする。

また、公開されているDB資格情報を公開しないようにしてください:)これはかなり危険です。

だからあなたはそのような何か行う必要があります。

<?php 
$host="YOUR_DB_HOST"; 
$user="YOUR_DB_USER"; 
$password="YOUR_DB_USER_PASSWORD"; 
$db="YOUR_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(); 
$users = 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;    

    $users[] = $user; 

} 


mysqli_stmt_close($selectquery); 
mysqli_close($con); 
echo json_encode($users); 
+0

あなたはおそらく私が – RST

+0

私のアプリは、ログイン機能を実装されている 'while'、ループ内での$ users''に '$のuser'を変更することを逃しました。ウルのコードを使用した後、それは今のアプリケーションにログインすることはできません..しかし、それは –

0

を使用する方が簡単かもしれません

$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); 
+0

まず感謝のヘルプは誤りがないが、それは、アプリケーションがアプリケーションを意味しています –

+0

@AdrianLohがデータベースにログインすることはできませんTTにログインできませんでしたなります? は、私はあなたの資格情報を変更する - 公共の場でそれらを共有することは悪い考えです。だから、スクリプトの最初の4行を変更する必要があります –

+0

nope。明らかに、このアプリはログイン機能で実装されています。 urコーディングを使用した後、アプリケーションにログインすることはできません。 @s_mart –

関連する問題