Я занимался этой базой данных всю ночь, и я не могу понять, почему я получаю 0 для идентификатора заказа в корзине таблицы, когда я размещаю заказ из приложения Android. То, что вставляется в обе таблицы, не проблема, но только для orderid в таблице корзины, которая всегда возвращает 0 в таблице.
тележка
<?php
require "connection.php";
session_start();
$foodname=$_POST["food_name"];
$cartquantity=$_POST["cart_quantity"];
$id=$_POST["id"];
$pickuptime=$_POST["pick_up_time"];
$orderid= $_SESSION["last_id"];
$mysqli_qry = "insert into cart (orderid,foodname,cartquantity,id,pickuptime)
values ('$orderid','$foodname','$cartquantity','$id','$pickuptime')";
if ($conn->query($mysqli_qry,$mysqli_qry1)==TRUE){
echo "Insert Successful";
}
else {
echo "Error:".$mysqli_qry."<br>".$conn->error;
}
?>
заказывать
<?php
$hostname = "localhost";
$username = "root";
$password = "";
$database = "";
$conn = new PDO("mysql:host=$hostname;dbname=$database", $username,
$password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
session_start();
$id=$_POST["id"];
$pickuptime=$_POST["pick_up_time"];
$pickupdate=$_POST["pick_up_date"];
$amount=$_POST["amount"];
$mysqli_qry = "insert into `order` (`id`,`pickuptime`,`pickupdate`,`amount`)
values ($id,$pickuptime,$pickupdate,$amount)";
$conn->exec($mysqli_qry);
$_SESSION["last_id"] == $conn->lastInsertId();
?>
Обновлять Для моей части Android
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 order_url = "http://192.168.28.1/restaurant/orderdb.php";
String cart_url = "http://192.168.28.1/restaurant/cartdb.php";
if (type.equals("order")){
try{
String id=params[1];
String pick_up_time=params[2];
String pick_up_date=params[3];
String amount=params[4];
URL url=new URL(order_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("id","UTF-8")+" = "+URLEncoder.encode(id,"UTF-8")+"&"+URLEncoder.encode("pick_up_time","UTF-8")+" = "+URLEncoder.encode(pick_up_time,"UTF-8")+"&"+URLEncoder.encode("pick_up_date","UTF-8")+" = "+URLEncoder.encode(pick_up_date,"UTF-8")+"&"+URLEncoder.encode("amount","UTF-8")+" = "+URLEncoder.encode(amount,"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("cart")){
try{
String food_name=params[1];
String cart_quantity=params[2];
String id=params[3];
String pick_up_time=params[4];
URL url=new URL(cart_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("food_name","UTF-8")+" = "+URLEncoder.encode(food_name,"UTF-8")+"&"+URLEncoder.encode("cart_quantity","UTF-8")+" = "+URLEncoder.encode(cart_quantity,"UTF-8")+"&"+URLEncoder.encode("id","UTF-8")+" = "+URLEncoder.encode(id,"UTF-8")+"&"+URLEncoder.encode("pick_up_time","UTF-8")+" = "+URLEncoder.encode(pick_up_time,"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;
}
Я обновил свою часть Android
Какой у вас post_data? Вы регистрировали свои пост-данные, чтобы проверить, правильно ли построен post_data?
Вы не определили переменную orderid в params, и она отсутствует в post_data.
как я могу определить orderid в params = .section id? Простите за глупый вопрос. Я действительно смущен этим.
Невозможно проверить ошибки в вашем коде, не видя вашего кода Android.