John Collier
asked on
How do i fix error inside message when pressing button on app coded with Android Studio ?
Currently working on an app in A with 3 pages (activities if you will).
A login, register & reservation page. All work fine except for the latter. Whenever i try sending data to my local database, on the reservation page I get an error. The error's inside my succes/fail message after i've pressed the send button
How do i fix this ?
Reservation.JAVA (called Reserveer.JAVA)
Thanks to anyone for replying / helping me out!!
___________
Other code files in the project
MainActivity.JAVA
Register.JAVA
A login, register & reservation page. All work fine except for the latter. Whenever i try sending data to my local database, on the reservation page I get an error. The error's inside my succes/fail message after i've pressed the send button
How do i fix this ?
Reservation.JAVA (called Reserveer.JAVA)
package com.example.baudelo.zeilreservering;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class Reserveer extends AppCompatActivity {
EditText Eindereservering;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_boten);
Eindereservering = (EditText)findViewById(R.id.dteDatum);
}
public void OnRes(View view) {
String dte_datum = Eindereservering.getText().toString();
String type = "reserveer";
BackgroundWorker backgroundWorker = new BackgroundWorker(this);
backgroundWorker.execute(type, dte_datum);
}
}
BackgroundWorker.JAVApackage com.example.baudelo.zeilreservering;
import android.app.AlertDialog;
import android.content.Context;
import android.os.AsyncTask;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
public class BackgroundWorker extends AsyncTask<String,Void,String> {
Context context;
AlertDialog alertDialog;
BackgroundWorker (Context ctx) {
context = ctx;
}
@Override
protected String doInBackground(String... params) {
String type = params[0];
String login_url = "http://10.0.2.2/login.php";
String register_url = "http://10.0.2.2/register.php";
String reserveer_url = "http://10.0.2.2/reserveer.php";
if(type.equals("login")) {
try {
String user_name = params[1];
String password = params[2];
URL url = new URL(login_url);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
String post_data = URLEncoder.encode("user_name", "UTF-8")+"="+URLEncoder.encode(user_name, "UTF-8")+"&"
+URLEncoder.encode("password", "UTF-8")+"="+URLEncoder.encode(password, "UTF-8");
bufferedWriter.write(post_data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
String result="";
String line="";
while((line = bufferedReader.readLine())!= null) {
result += line;
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return result;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else if(type.equals("register")) {
try {
String name = params[1];
String surname = params[2];
String username = params[3];
String password = params[4];
URL url = new URL(register_url);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
String post_data = URLEncoder.encode("name", "UTF-8")+"="+URLEncoder.encode(name, "UTF-8")+"&"
+ URLEncoder.encode("surname", "UTF-8")+"="+URLEncoder.encode(surname, "UTF-8")+"&"
+ URLEncoder.encode("username", "UTF-8")+"="+URLEncoder.encode(username, "UTF-8")+"&"
+URLEncoder.encode("password", "UTF-8")+"="+URLEncoder.encode(password, "UTF-8");
bufferedWriter.write(post_data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
String result="";
String line="";
while((line = bufferedReader.readLine())!= null) {
result += line;
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return result;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else if(type.equals("reserveer")) {
try {
String Eindereservering = params[1];
URL url = new URL(reserveer_url);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
String post_data = URLEncoder.encode("Eindereservering", "UTF-8")+"="+URLEncoder.encode(Eindereservering, "UTF-8");
bufferedWriter.write(post_data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
String result="";
String line="";
while((line = bufferedReader.readLine())!= null) {
result += line;
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return result;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPreExecute() {
alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle("Login Status");
}
@Override
protected void onPostExecute(String result) {
alertDialog.setMessage(result);
alertDialog.show();
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
}
second_activity.JAVA (called Boten.Java)package com.example.baudelo.zeilreservering;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class Boten extends AppCompatActivity {
EditText Eindereservering;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_boten);
Eindereservering = (EditText)findViewById(R.id.dteDatum);
}
public void OnRes(View view) {
String dte_datum = Eindereservering.getText().toString();
String type = "reserveer";
BackgroundWorker backgroundWorker = new BackgroundWorker(this);
backgroundWorker.execute(type, dte_datum);
}
}
Reservation.php (called Reserveer.php)<?php
require "conn.php";
if(!empty($_POST['eindereservering'])) {
$eindereservering = $_POST["eindereservering"];
}
$mysql_qry = "insert into boten_data (eindereservering) values ('$eindereservering')";
if($conn->query($mysql_qry) === TRUE) {
echo "ZeilReservering: Succesvol gereserveerd!";
}
else {
echo "Oeps, deze boot is al gereserveerd!";
}
$conn->close();
?>
Thanks to anyone for replying / helping me out!!
___________
Other code files in the project
MainActivity.JAVA
package com.example.baudelo.zeilreservering;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
EditText UsernameEt, PasswordEt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
UsernameEt = (EditText)findViewById(R.id.etUserName);
PasswordEt = (EditText)findViewById(R.id.etPassword);
}
public void OnLogin(View view) {
String username = UsernameEt.getText().toString();
String password = PasswordEt.getText().toString();
String type = "login";
BackgroundWorker backgroundWorker = new BackgroundWorker(this);
backgroundWorker.execute(type, username, password);
startActivity(new Intent(this,Boten.class));
}
public void OpenReg(View view) {
startActivity(new Intent(this,Register.class));
}
}
Register.JAVA
package com.example.baudelo.zeilreservering;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class Register extends AppCompatActivity {
EditText name, surname, username, password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
name = (EditText)findViewById(R.id.et_name);
surname = (EditText)findViewById(R.id.et_surname);
username = (EditText)findViewById(R.id.et_username);
password = (EditText)findViewById(R.id.et_password);
}
public void OnReg(View view) {
String str_name = name.getText().toString();
String str_surname = surname.getText().toString();
String str_username = username.getText().toString();
String str_password = password.getText().toString();
String type = "register";
BackgroundWorker backgroundWorker = new BackgroundWorker(this);
backgroundWorker.execute(type, str_name, str_surname, str_username, str_password);
}
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
I've replaced the php code with your new code, yet i still get the exact same error. I do think your php code is correct though! maybe there's an error somewhere in the Java code?
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
<?php
require "conn.php";
if(!empty($_POST['Eindereservering'])){
$eindereservering = $_POST['Eindereservering'];
$sql = "INSERT INTO `zeilreservering`.`boten_data` (`eindereservering`) VALUES ('".$eindereservering."')";
if(mysqli_query($conn, $sql)){
echo "ZeilReservering: Succesvol gereserveerd!";
}
else {
echo "Oeps, deze boot is al gereserveerd!";
}
}else{
echo "Post was empty";
}
$conn->close();
?>
this error now:
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
like this:
echo (mysqli_error($con).);
?
echo (mysqli_error($con).);
?
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
i don't know the correct datetime value,
but it doesn't have to be datetime, simple text is also good, how do i change it so it accepts text input
but it doesn't have to be datetime, simple text is also good, how do i change it so it accepts text input
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Sorry, i already knew that i simply had to change it inside my database from 'datetime' to 'text' field. But i was confused lol, anyways, sorry you wrote that last code, i don't need to convert it. Saving it as text is good enough.
It works now!!!! I'm so happy, thanks for helping me, you've been EXTREMELY helpful and patient! there wasn't so much code wrong, only the php, i was just confused i think & maybe i'm better at Java than php lol.
It works now!!!! I'm so happy, thanks for helping me, you've been EXTREMELY helpful and patient! there wasn't so much code wrong, only the php, i was just confused i think & maybe i'm better at Java than php lol.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
I'm doing one last test (re-building my whole project etc.) just to be sure everything's aright, you know?
Please message me so i can express my gratitude towards you.
Please message me so i can express my gratitude towards you.
No problem.
ASKER
Personalised help
ASKER
require "conn.php";
if(!empty($_POST['einderes
$eindereservering = $_POST["eindereservering"]
}
$mysql_qry = "insert into boten_data (eindereservering) values ('$eindereservering')";
if($conn->query($mysql_qry
echo "ZeilReservering: Succesvol gereserveerd!";
}
else {
echo "Oeps, deze boot is al gereserveerd!";
}
$conn->close();
?>