2016-01-09 28 views
2

在我的項目不保存選定的微調值我使用一個微調項目有3個edittexts fields..here我正在通過URL發送這些值,而這又是PHP文件將這些值存儲到PHP文件數據庫...如果我在程序中使用只有三場的EditText,它被存儲到database..Now我的問題是什麼,所選擇的微調值不保存到database.previously只有三個的EditText值保存。 。經過微調使用沒有什麼保存到數據庫.. 這裏我想給三個編輯文本的價值觀和選擇微調項目作爲paramater到PHP文件.. 請幫我選擇的微調項目保存到數據庫中。 。使用PHP和Android

這裏是我的文件..

MainActivity.java

package com.example.server; 


import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.EditText; 
import android.widget.Spinner; 
import android.widget.TextView; 
import android.widget.Toast; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.message.BasicNameValuePair; 


import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.io.UnsupportedEncodingException; 
import java.util.ArrayList; 
import java.util.List; 

@SuppressWarnings({ "deprecation", "unused" }) 
public class MainActivity extends Activity { 

    private Spinner spin; 
    private EditText editTextFname; 
    private EditText editTextLname; 
    private EditText editTextMobile; 
    //private EditText editTextPin; 

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

     spin = (Spinner)findViewById(R.id.spinner1); 
     editTextFname = (EditText) findViewById(R.id.editTextFname); 
     editTextLname = (EditText) findViewById(R.id.editTextLname); 
     editTextMobile = (EditText) findViewById(R.id.editTextMobile); 
     //editTextPin = (EditText) findViewById(R.id.editTextPin); 
     ArrayAdapter<CharSequence> spinner = ArrayAdapter.createFromResource(this, R.array.country_arrays, android.R.layout.simple_spinner_item); 
     spinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spin.setAdapter(spinner); 

    } 

    public void insert(View view){ 

     String salutation = spin.getSelectedItem().toString();//spinner item..not saving.. 
     String fname = editTextFname.getText().toString(); 
     String lname = editTextLname.getText().toString(); 
     String mobile = editTextMobile.getText().toString(); 


     insertToDatabase(salutation,fname,lname,mobile); 


     /*Uri uri = Uri.parse("http://oursite/insert-db.php"); 
     Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
     startActivity(intent);*/ 
    } 

    private void insertToDatabase(String salutation, String fname, String lname,String mobile){ 
     class SendPostReqAsyncTask extends AsyncTask<String, Void, String> { 
      @SuppressWarnings({ "unused", "deprecation" }) 
      @Override 
      protected String doInBackground(String... params) { 
       @SuppressWarnings("unused") 
       String paramSalutation = params[0]; 
       String paramFname = params[1]; 
       String paramLname = params[2]; 
       String paramMobile = params[3]; 

       //InputStream is = null; 

       String salutation = spin.getSelectedItem().toString(); 
       String fname = editTextFname.getText().toString(); 
       String lname = editTextLname.getText().toString(); 
       String mobile = editTextMobile.getText().toString(); 

       List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
       nameValuePairs.add(new BasicNameValuePair("salutation", salutation)); 
       nameValuePairs.add(new BasicNameValuePair("fname", fname)); 
       nameValuePairs.add(new BasicNameValuePair("lname", lname)); 
       nameValuePairs.add(new BasicNameValuePair("mobile", mobile)); 

       try { 
        HttpClient httpClient = new DefaultHttpClient(); 
        HttpPost httpPost = new HttpPost(
          "http://oursite/insert-db.php"); 
        httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

        HttpResponse response = httpClient.execute(httpPost); 

        HttpEntity entity = response.getEntity(); 

        //is = entity.getContent(); 


       } catch (ClientProtocolException e) { 

       } catch (IOException e) { 

       } 
       return "success"; 
      } 

      @Override 
      protected void onPostExecute(String result) { 
       super.onPostExecute(result); 

       Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show(); 
       TextView textViewResult = (TextView) findViewById(R.id.textViewResult); 
       textViewResult.setText("Inserted"); 
      } 
     } 
     SendPostReqAsyncTask sendPostReqAsyncTask = new SendPostReqAsyncTask(); 
     sendPostReqAsyncTask.execute(salutation,fname,lname,mobile); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
} 

刀片式db.php中

<?php 

    define('HOST','mysql.hostinger.in'); 
    define('USER','u449667615_user'); 
    define('PASS','1234'); 
    define('DB','u449667615_db'); 

    $con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect'); 

    $salutation = $_POST['salutation']; 
    $fname = $_POST['fname']; 
    $lname = $_POST['lname']; 
    $mobile = $_POST['mobile']; 


    $sql = "insert into person (salutation,fname,lname,mobile) values ('$salutation','$fname','$lname','$mobile')"; 
    if(mysqli_query($con,$sql)){ 
    echo 'success'; 
    } 
    else{ 
    echo 'failure'; 
    } 
    mysqli_close($con); 
?> 
+0

請檢查DATABSE字段名名稱和TABEL架構。 –

+0

表名是正確的...但微調值並沒有保存.. –

+0

請檢查所有值在php文件中使用回聲。 –

回答

0

檢查spin.getSelectedItem().toString()返回值。 也試圖echo值在PHP移動echo $_POST['salutation'];去年的位置,因爲如果失敗,會崩潰以下回聲。