Запрос внутреннего соединения для моего приложения Android - PullRequest
0 голосов
/ 22 мая 2018

Я делаю это приложение для Android.Страница в приложении должна отображать данные из 2 разных столбцов в моей базе данных, она должна собирать данные из таблицы мастерских и таблицы расписаний, где значение семинара равно.Я знаю, что должен использовать внутреннее соединение на семинаре, но мне кажется, что это не работает.

Это мой код прямо сейчас:

 private void GetInfo(String eventName, String workshopName) {
    String GetInfo = null;
    String dbResult = "empty";
    dbConnect database = new dbConnect(this);

    try{
        String query = "SELECT workshopid, scedules.workshopid, scedules.starttime, scedules.endtime, workshopname, workshopdesc FROM workshops INNER JOIN scedules ON workshops.workshopid = scedules.workshopid WHERE workshopname = '" + workshopName + "';";
        GetInfo = "?query=" + URLEncoder.encode(query, "UTF-8");
        String link = "https://jackstest.000webhostapp.com/androiddbconnect.php" + GetInfo;
        dbResult = database.execute(link).get();
    }
    catch(Exception e){
        Header.setText("Workshop");
    }

    try{
        JSONArray ja = new JSONArray(dbResult);
        JSONObject jo = null;
        data = new String[ja.length()];
        data2 = new String[ja.length()];

        for (int i = 0;i < 1 ; i++){
            jo = ja.getJSONObject(i);
            data[i] = jo.getString("workshopname");
            data2[i] = jo.getString("workshopdesc");
        }

        Header.setText(data[0]);
        Content.setText(data2[0]);
        Location.setText("Locatie : " + eventName);

    }
    catch(Exception e){
        e.printStackTrace();
    }

Содержание таблицы мастерских:

workshopid: "1", workshopname: "Workshop1", imagelink: "", workshopdesc: " Lorem ipsum dolor sit amet"

Содержимое таблицы расписаний:

eventid: "1",
workshopid: "1",
starttime: "13:23:00",
endtime: "13:25:00",
date: "2018-04-03"

Из этих двух таблиц, из мастерских мне нужно название мастерской, workshopdesc, imagelink.А из таблицы расписаний мне нужны время начала, время окончания и дата.

1 Ответ

0 голосов
/ 22 мая 2018

Попробуйте этот оператор SQL и посмотрите, дает ли он ожидаемый результат:

String query = "SELECT w.workshopid, s.starttime, s.endtime, w.workshopname, w.workshopdesc 
FROM workshops AS w
INNER JOIN scedules AS s ON 
w.workshopid = s.workshopid 
WHERE w.workshopname = '" + workshopName + "';";

Если это не сработает, мне нужно будет знать, к какому типу базы данных вы обращаетесь (MySQL, MS SQL,...).

Также: я заметил эту строку кода:

database.execute(link).get();

Является ли database AsyncTask?Если это так, то использование метода get() заблокирует поток, пока ответ не вернется, что фактически сделает AsyncTask бесполезным.

...