Выборка из базы

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
savr
Сообщения: 6
Зарегистрирован: 20 апр 2015, 21:56

Выборка из базы

Сообщение savr » 22 май 2015, 16:12

Привет всем. есть бекэнд и фронтэнд, в бекэнде делается выборка из базы

Код: Выделить всё

SELECT * FROM idiomslist WHERE entry LIKE '%$keyword%'
фронтэнд выводит но не так как нужно, а нужно вот так

Код: Выделить всё

SELECT * FROM idiomslist WHERE entry = '$keyword'
(с такой выборкой у меня фронтэнд ничего не выводит в чем может быть проблема)
вот вывод результата

Код: Выделить всё

public class ListResult extends ListActivity {

    // Progress Dialog
    private ProgressDialog pDialog;

    // Creating JSON Parser object
    JSONParser jParser = new JSONParser();

    ArrayList<HashMap<String, String>> idiomsList;

    // url to get the idiom list
    private static String url_search = "http://10.0.2.2/denwer/search.php";

    // JSON Node names
    private static final String TAG_SUCCESS = "success";
    private static final String TAG_IDIOMS = "idioms";
    private static final String TAG_ID = "id";
    private static final String TAG_ENTRY = "entry";
    private static final String TAG_MEANING = "meaning";

    // products JSONArray
    JSONArray idioms = null;
    //search key value
    public String searchkey;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_result);
        Intent myIntent = getIntent();
        // gets the arguments from previously created intent
        searchkey = myIntent.getStringExtra("keyword");

        // Hashmap for ListView
        idiomsList = new ArrayList<HashMap<String, String>>();

        // Loading idioms in Background Thread
        new LoadIdioms().execute();

        // Get listview
        ListView lv = getListView();

        // on seleting single idioms
        // to do something
        lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {
                // getting values from selected ListItem
                String iid = ((TextView) view.findViewById(R.id.id)).getText()
                        .toString();

            }
        });

    }

    /**
     * Background Async Task to Load Idioms by making HTTP Request
     * */
    class LoadIdioms extends AsyncTask<String, String, String> {

        /**
         * Before starting background thread Show Progress Dialog
         * */
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(ListResult.this);
            pDialog.setMessage("Loading IDIOMS. Please wait...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(false);
            pDialog.show();
        }

        /**
         * getting Idioms from url
         * */
        protected String doInBackground(String... args) {
            // Building Parameters
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            //value captured from previous intent
            params.add(new BasicNameValuePair("keyword", searchkey));
            // getting JSON string from URL
            JSONObject json = jParser.makeHttpRequest(url_search, "GET", params);

            // Check your log cat for JSON response
            Log.d("Search idioms: ", json.toString());

            try {
                // Checking for SUCCESS TAG
                int success = json.getInt(TAG_SUCCESS);

                if (success == 1) {
                    // products found
                    // Getting Array of Products
                    idioms = json.getJSONArray(TAG_IDIOMS);

                    // looping through All Products
                    for (int i = 0; i < idioms.length(); i++) {
                        JSONObject c = idioms.getJSONObject(i);

                        // Storing each json item in variable
                        String id = c.getString(TAG_ID);
                        String entry = c.getString(TAG_ENTRY);
                        String meaning = c.getString(TAG_MEANING);

                        // creating new HashMap
                        HashMap<String, String> map = new HashMap<String, String>();

                        // adding each child node to HashMap key => value
                        map.put(TAG_ID, id);
                        map.put(TAG_ENTRY, entry);
                        map.put(TAG_MEANING, meaning);

                        // adding HashList to ArrayList
                        idiomsList.add(map);
                    }
                } else {

                    //do something
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

            //return "success";
            return null;
        }

        /**
         * After completing background task Dismiss the progress dialog
         * **/
        protected void onPostExecute(String file_url) {
            // dismiss the dialog after getting the related idioms
            pDialog.dismiss();
            // updating UI from Background Thread
            runOnUiThread(new Runnable() {
                public void run() {
                    /**
                     * Updating parsed JSON data into ListView
                     * */
                    ListAdapter adapter = new SimpleAdapter(
                            ListResult.this, idiomsList,
                            R.layout.list_item, new String[] { TAG_ID, TAG_ENTRY, TAG_MEANING},
                            new int[] { R.id.id, R.id.entry, R.id.meaning});
                    // updating listview
                    setListAdapter(adapter);
                }
            });

        }

    }
кстати выборка работает в адресной строке браузера, но в приложении никак(((

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Выборка из базы

Сообщение Foenix » 22 май 2015, 16:23

я не понимаю в этом особо, но вот думаю как может что-то выводить выборка
SELECT * FROM idiomslist WHERE entry = '$keyword'
если в кавычках пишут обычно ту самую строку, что сравнивают, например
SELECT * FROM idiomslist WHERE entry = 'вася'
Поэтому и пусто.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

savr
Сообщения: 6
Зарегистрирован: 20 апр 2015, 21:56

Re: Выборка из базы

Сообщение savr » 22 май 2015, 16:40

Foenix писал(а):я не понимаю в этом особо, но вот думаю как может что-то выводить выборка
SELECT * FROM idiomslist WHERE entry = '$keyword'
если в кавычках пишут обычно ту самую строку, что сравнивают, например
SELECT * FROM idiomslist WHERE entry = 'вася'
Поэтому и пусто.
$keyword это переменная, т.е. если в вести в edit text "Вася" то это значит что переменой $keyword присвоено значение "Вася".

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Выборка из базы

Сообщение Foenix » 22 май 2015, 17:39

тогда не нужно ее брать в кавычки, я вот о чем
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Ответить