title: Undefined variable: query_params
body: <p>can someone help me what i suppose to do to fix this error?
  because, the result of the code is success for json format. but there's still have error "Undefined variable: query_params".</p>
  
  <p>i want to make listview in my android program from this json format. and in my android it can't show the success json format from my comments.php. and i think, maybe because this error "Undefined variable: query_params  ".</p>
  
  <p><img src="https://i.stack.imgur.com/nvm0p.png" alt="enter image description here"></p>
  
  <p>this is my comments.php</p>
  
  <pre><code>&lt;?php
  
  
  require("config.inc.php");
  
  //initial query
  $query = "Select * FROM comments";
  
  //execute query
  try {
  $stmt   = $db-&gt;prepare($query);
  $result = $stmt-&gt;execute($query_params);
  }
  catch (PDOException $ex) {
  $response["success"] = 0;
  $response["message"] = "Database Error!";
  die(json_encode($response));
  }
  
  
  $rows = $stmt-&gt;fetchAll();
  
  
  if ($rows) {
  $response["success"] = 1;
  $response["message"] = "Post Available!";
  $response["posts"]   = array();
  
  foreach ($rows as $row) {
      $post             = array();
      $post["post_id"]  = $row["post_id"];
      $post["username"] = $row["username"];
      $post["title"]    = $row["title"];
      $post["message"]  = $row["message"];
  
  
      //update our repsonse JSON data
      array_push($response["posts"], $post);
  }
  
  // echoing JSON response
  echo json_encode($response);
  
  
  } else {
  $response["success"] = 0;
  $response["message"] = "No Post Available!";
  die(json_encode($response));
  }
  
  ?&gt;
  </code></pre>
  
  <p>this is my android coding to read the json format from comments.php to make listview. and nothing show for the listview.</p>
  
  <p>ReadComments.java</p>
  
  <pre><code>import java.util.ArrayList;
  import java.util.HashMap;
  import org.json.JSONArray;
  import org.json.JSONException;
  import org.json.JSONObject;
  import android.app.ListActivity;
  import android.app.ProgressDialog;
  import android.content.Intent;
  import android.os.AsyncTask;
  import android.os.Bundle;
  import android.view.View;
  import android.widget.AdapterView;
  import android.widget.AdapterView.OnItemClickListener;
  import android.widget.ListAdapter;
  import android.widget.ListView;
  import android.widget.SimpleAdapter;
  
  public class ReadComments extends ListActivity {
  
  
  private ProgressDialog pDialog;
  
  
  private static final String READ_COMMENTS_URL = "http://192.168.56.101/webservice/comments.php";
  
  
  private static final String TAG_SUCCESS = "success";
  private static final String TAG_TITLE = "title";
  private static final String TAG_POSTS = "posts";
  private static final String TAG_POST_ID = "post_id";
  private static final String TAG_USERNAME = "username";
  private static final String TAG_MESSAGE = "message";
  
  private JSONArray mComments = null;
  private ArrayList&lt;HashMap&lt;String, String&gt;&gt; mCommentList;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      // note that use read_comments.xml instead of our single_post.xml
      setContentView(R.layout.read_comments);
  }
  
  @Override
  protected void onResume() {
      // TODO Auto-generated method stub
      super.onResume();
      // loading the comments via AsyncTask
      new LoadComments().execute();
  }
  
  public void addComment(View v) {
      Intent i = new Intent(ReadComments.this, AddComment.class);
      startActivity(i);
  }
  
  
  public void updateJSONdata() {
  
  
      mCommentList = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;();
      JSONParser jParser = new JSONParser();
      JSONObject json = jParser.getJSONFromUrl(READ_COMMENTS_URL);
  
      try {
          mComments = json.getJSONArray(TAG_POSTS);
          for (int i = 0; i &lt; mComments.length(); i++) {
              JSONObject c = mComments.getJSONObject(i);
  
  
              String title = c.getString(TAG_TITLE);
              String content = c.getString(TAG_MESSAGE);
              String username = c.getString(TAG_USERNAME);
  
  
              HashMap&lt;String, String&gt; map = new HashMap&lt;String, String&gt;();
  
              map.put(TAG_TITLE, title);
              map.put(TAG_MESSAGE, content);
              map.put(TAG_USERNAME, username);
  
  
              mCommentList.add(map);
  
  
          }
  
      } catch (JSONException e) {
          e.printStackTrace();
      }
  }
  
  
  private void updateList() {
      ListAdapter adapter = new SimpleAdapter(this, mCommentList,
              R.layout.single_post, new String[] { TAG_TITLE, TAG_MESSAGE,
                      TAG_USERNAME }, new int[] { R.id.title, R.id.message,
                      R.id.username });
  
      setListAdapter(adapter);
      ListView lv = getListView();    
      lv.setOnItemClickListener(new OnItemClickListener() {
  
          @Override
          public void onItemClick(AdapterView&lt;?&gt; parent, View view,
                  int position, long id) {
          }
      });
  }
  
  public class LoadComments extends AsyncTask&lt;Void, Void, Boolean&gt; {
  
      @Override
      protected void onPreExecute() {
          super.onPreExecute();
          pDialog = new ProgressDialog(ReadComments.this);
          pDialog.setMessage("Loading Comments...");
          pDialog.setIndeterminate(false);
          pDialog.setCancelable(true);
          pDialog.show();
      }
  
      @Override
      protected Boolean doInBackground(Void... arg0) {
          updateJSONdata();
          return null;
  
      }
  
      @Override
      protected void onPostExecute(Boolean result) {
          super.onPostExecute(result);
          pDialog.dismiss();
          updateList();
      }
  }
   }
  </code></pre>