2016-04-25 5 views
4

Ich würde gerne fragen, wie kann ich viele row s Daten statt nur einer row anzeigen. Der folgende Code zeigt nur eine Datensatzzeile an, statt dass mehrere Datensätze verfügbar sind. Ich verwende hier Anweisungen. Oder das Problem ist auf meinem Android Studio-Codierung? Meine Anwendung ist mit Login-Funktion und Codierung wie folgt implementiert.PHP-Skript zeigen nur eine Reihe von Daten anstelle von vielen in 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); 

?>       
+0

Verwendung 'foreach' Schleife und versuchen Sie es erneut. –

+0

@ChoncholMahmud können Sie mich auf mehr führen? weil ich neu bin. Danke –

+0

bewegen Sie Ihr Echo json_encode in der While-Schleife – RST

Antwort

1

ich mit so etwas gehen würde:

$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

danke für die Hilfe aber Fehler tritt stattdessen –

+0

vielleicht kapseln $ Benutzer in einem anderen json_encode. Wenn Sie damit beginnen, können Sie PDO anstelle von mysqli_connect() verwenden. Was ist der Fehler? Hat es mit String zu tun? – nyluje

+0

anscheinend ist dies für eine Login-Funktion. Nach dem Anwenden Ihrer Kodierung konnte es sich stattdessen nicht einloggen. –

1

Es könnte einfacher sein, verwenden 2-dimensionalen Array

$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

hast du wahrscheinlich verpasst, dass ich '$ user' zu' $ users' in der 'while'-Schleife ändere – RST

+0

meine App ist mit Login-Funktion implementiert. nach der Verwendung von ur Codierung, kann es nicht in die apps jetzt anmelden .. aber es hat keinen Fehler –

0

Es sieht aus wie Sie richtige Abfrage tun, aber wenn Abrufen von Ergebnissen unter Verwendung eines flachen Arrays anstelle von zwei Dimensionen.

Versuchen Sie auch zu vermeiden, veröffentlichen Ihre DB-Anmeldeinformationen in der Öffentlichkeit :) Es ist ziemlich gefährlich.

So sollten Sie so etwas tun:

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

erstens danke für die Hilfe, aber es macht die Anwendung konnte nicht einloggen TT –

+0

@AdrianLoh meinst du deine Anwendung kann nicht in der Datenbank anmelden ? Ich habe Ihre Anmeldeinformationen geändert - es ist eine schlechte Idee, sie öffentlich zu teilen. Also, sollten Sie zuerst vier ausgekreist von Skript –

+0

Nö ändern. Offensichtlich ist diese App mit Login-Funktion implementiert. Nach der Verwendung von Ur-Codierung kann es sich nicht bei der Anwendung anmelden. @s_mart –

Verwandte Themen