2017-10-26 1 views
-2

Ich arbeite ein Schulprojekt, wo ich eine Banking-App entwerfe. Ich arbeite gerade an dem grundlegenden Layout und der Datenbankverbindung für Anmeldung und Registrierung. So funktioniert meine Anmeldung und Registrierung funktionieren gut, aber wenn ich versuchte, die Informationen, die meine PHP-Skripts zurückgibt, ich gebe nur null zurück. Hier ist mein Code:PHP SQL-Abfrage gibt null

Meine Hauptklasse:

enter code here 
package com.example.quinten.netpay; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ProgressBar; 
import android.widget.Toast; 

import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.toolbox.Volley; 

import org.json.JSONException; 
import org.json.JSONObject; 

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    //Vars 
    final Button btnLogin = (Button) findViewById(R.id.btnLogin); 
    final Button btnReg = (Button) findViewById(R.id.btnRegister); 
    final ProgressBar prgLogin = (ProgressBar) findViewById(R.id.prbLogin); 
    final EditText txtGebruiksnaam = (EditText)findViewById(R.id.txtNaam); 
    final EditText txtWachtwoord = (EditText)findViewById(R.id.txtWachtwoord); 

    //ProgressSpiner onzichtbaar maken 
    prgLogin.setVisibility(View.INVISIBLE); 

    //Button listeners 
    //Login 
    btnLogin.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //Nakijken of alle velden zijn ingevuld 
      if(txtGebruiksnaam.getText().toString().equals("") || txtWachtwoord.getText().toString().equals("")) { 
       Toast.makeText(getApplicationContext(), "Vul alle velden in!", Toast.LENGTH_LONG).show(); 
      }else{ 
       //ProgressSpiner zichtbaar maken 
       prgLogin.setVisibility(View.VISIBLE); 

       //Vars 
       final String strGebruikersnaam = txtGebruiksnaam.getText().toString(); 
       final String strWachtwoord = txtWachtwoord.getText().toString(); 

       Response.Listener<String> responseListener = new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         try { 
          JSONObject jsonReponse = new JSONObject(response); 
          boolean success = jsonReponse.getBoolean("success"); 

          if (success) { 
           //Terugekregen gebruikersinfo ophalen 
           String strGebruikersnaamResp = jsonReponse.getString("Gebruikersnaam"); 
           String strVoornaamResp = jsonReponse.getString("Voornaam"); 
           String strAchternaamResp = jsonReponse.getString("Achternaam"); 
           String strSaldoResp = jsonReponse.getString("Saldo"); 


           //Menu openen en gebruikersinformatie doorgeven 
           Intent intent = new Intent(getApplicationContext(), Menu.class); 
           intent.putExtra("gebruikersnaam", strGebruikersnaamResp); 
           intent.putExtra("voornaam", strVoornaamResp); 
           intent.putExtra("achternaam", strAchternaamResp); 
           intent.putExtra("saldo", strSaldoResp); 
           startActivity(intent); 


           //ProgressSpiner onzichtbaar maken 
           prgLogin.setVisibility(View.INVISIBLE); 

          } else { 
           Toast.makeText(getApplicationContext(), "Gebruikersnaam of wachtwoord niet correct!", Toast.LENGTH_LONG).show(); 
           //ProgressSpiner onzichtbaar maken 
           prgLogin.setVisibility(View.INVISIBLE); 
          } 

         } catch (JSONException e) { 
          e.printStackTrace(); 
          Toast.makeText(getApplicationContext(), "ERROR!" + " " + e.getMessage().toString(), Toast.LENGTH_LONG).show(); 
          //ProgressSpiner onzichtbaar maken 
          prgLogin.setVisibility(View.INVISIBLE); 
         } 

        } 
       }; 

       LoginRequest loginRequest = new LoginRequest(strGebruikersnaam, strWachtwoord, responseListener); 
       RequestQueue queue = Volley.newRequestQueue(MainActivity.this); 
       queue.add(loginRequest); 


      } 

     } 

    }); 



    //Registeren 
    btnReg.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(getApplicationContext(), Registreren.class); 
      startActivity(intent); 
     } 

    }); 

} 
} 

Meine loginRequest Klasse:

package com.example.quinten.netpay; 

import com.android.volley.Response; 
import com.android.volley.toolbox.StringRequest; 

import java.util.HashMap; 
import java.util.Map; 

public class LoginRequest extends StringRequest { 

private static final String LOGIN_REQUEST_URL = "http://37.34.58.100/~dragv/login.php"; 
private Map<String, String> params; 

public LoginRequest(String gebruikersnaam, String wachtwoord, Response.Listener<String> listener) { 
    super(Method.POST, LOGIN_REQUEST_URL, listener, null); 
    params = new HashMap<>(); 
    params.put("gebruikersnaam", gebruikersnaam); 
    params.put("wachtwoord", wachtwoord); 
} 

@Override 
public Map<String, String> getParams() { return params; 
} 



} 

Und mein PHP-Skript:

<?php 
$con = mysqli_connect("Private"); 

$gebruikersnaam = $_POST["gebruikersnaam"]; 
$wachtwoord = $_POST["wachtwoord"]; 

$statement = mysqli_prepare($con, "SELECT * FROM Gebruikers WHERE Gebruikersnaam = ? AND Wachtwoord = ?"); 
mysqli_stmt_bind_param($statement, "ss", $gebruikersnaam, $wachtwoord); 
mysqli_stmt_execute($statement); 

mysqli_stmt_store_result($statement); 
mysqli_stmt_bind_result($statement, $Gebruikersnaam, $Voornaam, $Achternaam, $Wachtwoord, $Saldo); 

$response = array(); 
$response["success"] = false; 

while(mysqli_stmt_fetch($statement)){ 
    $response["success"] = true; 
    $response["Gebruikersnaam"] = $Gebruikersnaam; 
    $response["Voornaam"] = $Voornaam; 
    $response["Achternaam"] = $Achternaam; 
    $response["Wachtwoord"] = $Wachtwoord; 
    $response["Saldo"] = $Saldo; 
} 

echo json_encode($response); 
?> 
+0

Verwenden Sie http://php.net/manual/en/function.error-reporting.php und http://php.net/mysqli_error auf die Abfrage - alles davon? Ich kann jedoch nicht mit Android/Java-Sachen helfen –

Antwort

0

die Lösung gefunden. Ich habe nicht alle Spalten meiner Datenbank in die fetch-Anweisung geschrieben.