2014-09-22 3 views
0

Привет В моем приложении У меня есть несколько имен учеников и нет данных, и нажмите кнопку «Сохранить», данные не вставлены в базу данных, а с помощью тоста вы увидите только одно имя и рулон ничего не отображается и данные не вставлен.данные не были успешно сохранены с использованием базы данных в android

Attend.class

public class Attend extends Activity implements OnClickListener { 

    String data = ""; 
    TableLayout tl; 
    TableRow tr; 
    TextView studentName; 
    EditText Firstname,stRoll; 
    CheckBox present; 
    String[] class_name, section_name; 
    String[] words; 
    String name; 
    String roll; 
    Button save; 

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

     tl = (TableLayout) findViewById(R.id.maintable); 

     save = (Button)findViewById(R.id.save); 
     Firstname = (EditText) findViewById(R.id.studentname); 
     Firstname.setVisibility(View.GONE); 
     stRoll = (EditText) findViewById(R.id.rollnumber); 
     stRoll.setVisibility(View.GONE); 
     save.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       //save.setText("Record Saved Sucessfully"); 
       name = Firstname.getText().toString(); 
       System.out.println(name); 
       roll = stRoll.getText().toString(); 
       System.out.println(roll); 
       Toast.makeText(
         Attend.this, 
         "Result : " + "\nStudentName : " +name 
         + "\nRollno : " + roll, 

         Toast.LENGTH_SHORT).show(); 
       data = DatabaseUtility.executeQueryPhp("save",""); 
       System.out.println(data); 
      } 


     }); 

     String class_id = getIntent().getStringExtra("class_id"); 
     String section_id = getIntent().getStringExtra("section_id"); 
     Toast.makeText(
       this, 
       "Result : " + "\nclassName : " + class_id + "\nSectionName : " 
         + section_id, 

       Toast.LENGTH_SHORT).show(); 

     final String queryString = "class_id=" + class_id + "&section_id=" 
       + section_id; 
     /*String result = DatabaseUtility.executeQueryPhp("getStudent", 
       queryString);*/ 

     new Thread(new Runnable() { 
      public void run() { 
       data = DatabaseUtility.executeQueryPhp("getStudent",queryString); 
       System.out.println(data); 

       runOnUiThread(new Runnable() { 

        @Override 
        public void run() { 
         ArrayList<StudentDetails> users = parseJSON(data); 
         addData(users); 
        } 
       }); 

      } 
     }).start(); 

    } 
    public ArrayList<StudentDetails> parseJSON1(String result1) { 
     ArrayList<StudentDetails> users = new ArrayList<StudentDetails>(); 
     try { 
      JSONArray jArray = new JSONArray(result1); 
      for (int i = 0; i < jArray.length(); i++) { 
       JSONObject json_data = jArray.getJSONObject(i); 
       StudentDetails user = new StudentDetails(); 

       user.setStudentname(json_data.getString("student_nme")); 
       user.setRollno(json_data.getString("roll_no")); 
       users.add(user); 
      } 
     } catch (JSONException e) { 
      Log.e("log_tag", "Error parsing data " + e.toString()); 
     } 
     return users; 
    } 

    public ArrayList<StudentDetails> parseJSON(String result) { 
     ArrayList<StudentDetails> users = new ArrayList<StudentDetails>(); 
     try { 
      JSONArray jArray = new JSONArray(result); 
      for (int i = 0; i < jArray.length(); i++) { 
       JSONObject json_data = jArray.getJSONObject(i); 
       StudentDetails user = new StudentDetails(); 
       // user.setId(json_data.getInt("class_name")); 
       // user.setClass_id(json_data.getInt("section_name")); 
       // user.setSection_id(json_data.getInt("section_id")); 
       user.setStudentname(json_data.getString("first_name")); 
       user.setRollno(json_data.getString("roll_no")); 
       users.add(user); 
      } 
     } catch (JSONException e) { 
      Log.e("log_tag", "Error parsing data " + e.toString()); 
     } 
     return users; 
    } 

    void addHeader() { 

     tr = new TableRow(this); 

     studentName = new TextView(this); 


     studentName.setText("StudentName"); 

     studentName.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 
       LayoutParams.WRAP_CONTENT)); 
     studentName.setPadding(5, 5, 5, 5); 
     studentName.setBackgroundColor(Color.RED); 
     LinearLayout Ll = new LinearLayout(this); 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
       LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 
     params.setMargins(5, 5, 5, 5); 

     Ll.addView(studentName, params); 
     tr.addView((View) Ll); 

     TextView RollNo = new TextView(this); 
     RollNo.setText("RollNo"); 
     RollNo.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 
       LayoutParams.WRAP_CONTENT)); 
     RollNo.setPadding(5, 5, 5, 5); 
     RollNo.setBackgroundColor(Color.RED); 
     Ll = new LinearLayout(this); 
     params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT); 
     params.setMargins(0, 5, 5, 5); 

     Ll.addView(RollNo, params); 
     tr.addView((View) Ll); 
     TextView Present = new TextView(this); 
     Present.setText("Present"); 
     Present.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 
       LayoutParams.WRAP_CONTENT)); 
     Present.setPadding(5, 5, 5, 5); 
     Present.setBackgroundColor(Color.RED); 
     Ll = new LinearLayout(this); 
     params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT); 
     params.setMargins(0, 5, 5, 5); 

     Ll.addView(Present, params); 
     tr.addView((View) Ll); 

     tl.addView(tr, new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 



    } 

    @SuppressWarnings({ "rawtypes" }) 
    public void addData(ArrayList<StudentDetails> users) { 

     addHeader(); 

     for (Iterator i = users.iterator(); i.hasNext();) { 

      StudentDetails p = (StudentDetails) i.next(); 

      /** Create a TableRow dynamically **/ 
      tr = new TableRow(this); 

      /** Creating a TextView to add to the row **/ 
      Firstname = new EditText(this); 
      Firstname.setText(p.getStudentname()); 
      Firstname.setId(p.getId()); 
      Firstname.setLayoutParams(new LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
      Firstname.setPadding(5, 5, 5, 5); 

      LinearLayout Ll = new LinearLayout(this); 
      LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
        LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 
      params.setMargins(5, 2, 2, 2); 

      Ll.addView(Firstname, params); 
      tr.addView((View) Ll); 

      EditText stRoll= new EditText(this); 
      stRoll.setText(p.getRollno()); 
      stRoll.setLayoutParams(new LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
      stRoll.setPadding(5, 5, 5, 5); 

      Ll = new LinearLayout(this); 
      params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 
        LayoutParams.WRAP_CONTENT); 
      params.setMargins(0, 3, 3, 3); 

      Ll.addView(stRoll, params); 
      tr.addView((View) Ll); 
      CheckBox present = new CheckBox(this); 

      present.setLayoutParams(new LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
      present.setPadding(5, 5, 5, 5); 

      Ll = new LinearLayout(this); 
      params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 
        LayoutParams.WRAP_CONTENT); 
      params.setMargins(0, 3, 3, 3); 

      Ll.addView(present, params); 
      tr.addView((View) Ll); 

      tl.addView(tr, new TableLayout.LayoutParams(
        LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
     } 
    } 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 

    } 

save.php

<?php 

    mysql_connect("localhost","root",""); 
    mysql_select_db("login"); 
    $name = $_POST['name']; 
$roll = $_POST['roll']; 
    $q=mysql_query("insert into save (student_name,roll_no) values('$name','$roll')"); 

    while($row=mysql_fetch_assoc($q)) 
      $json_output[]=$row; 

    print(json_encode($json_output)); 

    mysql_close(); 

?> 
+1

ты тестировал? пытается сделать сообщение на веб-странице с почтальоном (расширение до хром) –

+0

да, но показывая undefined json json_output в C: \ xampp \ htdocs \ android_connect \ save.php в строке 13 null – user1

+0

Попробуйте echo mysql_error(); Чтобы получить сообщение об ошибке :) –

ответ

0

Ошибка у вас возникли потому, что не существует массив поместить данные в ($ json_output)

если вы определяете $ json_output, проблем не должно быть

save.php

<?php 

mysql_connect("localhost","root",""); 
mysql_select_db("login"); 
$name = !empty($_POST['name']) ? $_POST['name'] : $_GET['name']; 
$roll = !empty($_POST['roll']) ? $_POST['roll'] : $_GET['roll']; 
$query = "insert into save (student_name,roll_no) values('$name','$roll')"; 
$json_output = array(); 
if (!mysql_query($query)) { 
    $json_output[] = mysql_errno() . ": ".mysql_error(); 
}else{ 
    $json_output[] = true; 
} 

print(json_encode($json_output)); 
mysql_close(); 
?> 
+0

Примечание: Неопределенный индекс: имя в C: \ xampp \ htdocs \ android_connect \ save.php on line 5 Примечание: Не определено индекс: ролл в C: \ XAMPP \ HTDOCS \ android_connect \ save.php на линии 6 Внимание: mysql_fetch_assoc() ожидает параметр 1, чтобы быть ресурсом, логический приведены в C: \ XAMPP \ HTDOCS \ android_connect \ save.php в строке 9 [] – user1

+0

он показывает это сообщение – user1

+0

, если вы получаете эти ошибки, тогда ваш пост не прав :), поскольку ошибка означает, что вы не ставите его как POST на сервер (правильно получите) Я внесла изменения в свой ответ, чтобы исправить некоторые другие вещи –