Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
DIMA_N
1 / 1 / 0
Регистрация: 21.10.2011
Сообщений: 116
#1

Обращение к MySQL - Программирование Android

10.07.2015, 12:23. Просмотров 770. Ответов 10
Метки нет (Все метки)

Добрый день!

Пытаюсь научиться наладить связь с MySQL нашел уроки http://sampleprogramz.com/android/mysqldb.php Пытаюсь сделать В урок по выбору из таблице данных по id.

Ниже код java и php, при вводе 1 вылезает Toast.makeText(getApplicationContext(), "Invalid IP Address"
Помогите в чем у меня ошибка может быть.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package ru.dima_n.mysql2;
 
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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 org.json.JSONObject;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
 
public class MainActivity extends Activity {
 
    String id;
    String name;
    InputStream is=null;
    String result=null;
    String line=null;
    private EditText e_id ;
 
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        e_id=(EditText) findViewById(R.id.editText1);
 
    }
 
    public void onClick(View v)
    {
        id=e_id.getText().toString();
        select();
    }
 
 
    public void select()
    {
        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
 
        nameValuePairs.add(new BasicNameValuePair("pid",id));
 
        try
        {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://dima-n.16mb.com/Okna/mysql2.php");
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
            Log.e("pass 1", "connection success ");
        }
        catch(Exception e)
        {
            Log.e("Fail 1", e.toString());
            Toast.makeText(getApplicationContext(), "Invalid IP Address",
            Toast.LENGTH_LONG).show();
        }
 
        try
        {
            BufferedReader reader = new BufferedReader
                    (new InputStreamReader(is,"iso-8859-1"),8);
            StringBuilder sb = new StringBuilder();
            while ((line = reader.readLine()) != null)
            {
                sb.append(line + "\n");
            }
            is.close();
            result = sb.toString();
            Log.e("pass 2", "connection success ");
        }
        catch(Exception e)
        {
            Log.e("Fail 2", e.toString());
        }
 
        try
        {
            JSONObject json_data = new JSONObject(result);
            name=(json_data.getString("name"));
            Toast.makeText(getBaseContext(), "Name : "+name,
                    Toast.LENGTH_SHORT).show();
        }
        catch(Exception e)
        {
            Log.e("Fail 3", e.toString());
        }
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
}

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
    $host='mysql.hostinger.ru';
    $uname='u527948914_1';
    $pwd='*****';
    $db="u527948914_db";
 
    $con = mysql_connect($host,$uname,$pwd) or die("connection failed");
    mysql_select_db($db,$con) or die("db selection failed");
     
    $id=$_REQUEST['pid'];
     
    $r=mysql_query("select * from products where pid='$id'",$con);
 
    while($row=mysql_fetch_array($r))
    {
        $flag[name]=$row[name];
    }
     
    print(json_encode($flag));
    mysql_close($con);
?>
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2015, 12:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обращение к MySQL (Программирование Android):

Обращение к UI из Timer - Программирование Android
при помощи какой функции из таймера можно обратиться к элементу UI??

Обращение к NULL TextView - Программирование Android
У меня есть TextView описанный в XML в GridLayout. И есть ListView который этими GridLayout и заполняется. Возникает исключение....

Обращение к файлу ресурсов - Программирование Android
Всем доброго времени суток. У меня вопрос как можно, и можно ли, обратиться к файлу ресурса моего приложения (изображение) для его...

Обращение из статического метода - Программирование Android
Очень интересно вот что: В уроке 120 проекта startandroid есть статический метод в классе MyWidget, который обращается к не-статическим...

Обращение к елементам Activity - Программирование Android
Доброго времени суток! Кого не затруднит, по пробуйте помочь. Суть программы в том, что при нажатии на кнопку, картинка становится...

Обращение к функции находящейся не в MainActivity - Программирование Android
Доброго времени суток! Имеется MainActivity.java и HybridMap.java. Мне необходимо при нажатии кнопки обратиться к процедуре в HybridMap....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
10.07.2015, 12:47 #2
Интеерсней, что в логах написало отэто

e.toString()
0
androbro
326 / 286 / 60
Регистрация: 17.10.2014
Сообщений: 843
10.07.2015, 13:06 #3
Цитата Сообщение от Armagedo Посмотреть сообщение
Интеерсней, что в логах написало отэто
вангую что "NetworkOnMainThreadException"
0
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
10.07.2015, 13:11 #4
Цитата Сообщение от androbro Посмотреть сообщение
вангую что "NetworkOnMainThreadException"
Ага.
А значит тему можно закрывать ибо про AsyncTask только ленивый не писал
0
DIMA_N
1 / 1 / 0
Регистрация: 21.10.2011
Сообщений: 116
10.07.2015, 13:12  [ТС] #5
Ребят пытаюсь этот лог посмотреть комп тупит))

Простите а что про AsyncTask?
0
Pablito
10.07.2015, 13:12
  #6

Не по теме:

а я вангую следующую просьбу ТСа
"напишите за меня как надо делать правильно, а то мне лениво по форуму пройтись и почитать что это за ошибка такая и как ее обойти"

0
DIMA_N
1 / 1 / 0
Регистрация: 21.10.2011
Сообщений: 116
10.07.2015, 13:14  [ТС] #7
07-10 06:13:58.610 858-858/ru.dima_n.mysql2 E/Fail 1﹕ android.os.NetworkOnMainThreadException
07-10 06:13:58.751 858-858/ru.dima_n.mysql2 E/Fail 2﹕ java.lang.NullPointerException: lock == null
07-10 06:13:58.770 858-858/ru.dima_n.mysql2 E/Fail 3﹕ java.lang.NullPointerException
0
Pablito
2494 / 1939 / 605
Регистрация: 12.05.2014
Сообщений: 6,798
Завершенные тесты: 1
10.07.2015, 13:15 #8
http://www.cyberforum.ru/search.php?searchid=9585447
0
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
10.07.2015, 13:15 #9
Цитата Сообщение от DIMA_N Посмотреть сообщение
07-10 06:13:58.610 858-858/ru.dima_n.mysql2 E/Fail 1﹕ android.os.NetworkOnMainThreadException
androbro, ты - шайтан шатйанский
0
androbro
326 / 286 / 60
Регистрация: 17.10.2014
Сообщений: 843
10.07.2015, 13:42 #10
Цитата Сообщение от Armagedo Посмотреть сообщение
androbro, ты - шайтан шатйанский
Кликните здесь для просмотра всего текста
Название: Blaine.JPG
Просмотров: 31

Размер: 10.2 Кб
1
DIMA_N
1 / 1 / 0
Регистрация: 21.10.2011
Сообщений: 116
11.07.2015, 22:28  [ТС] #11
Подскажите еще, создал поток там происходит запрос к БД и прием, все проходит, но потом не могу обработать json как я понимаю говорит что нельзя его обрабатывать в потоке.

Попытался создать функцию вне потока, все также выходит.

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

Код
07-10 12:08:16.735      864-886/ru.dima_n.mysql2 E/pass 1﹕ connection success
07-10 12:08:16.923      864-886/ru.dima_n.mysql2 E/pass 2﹕ connection success{"name":"test"}
07-10 12:08:17.023      864-886/ru.dima_n.mysql2 E/Fail 3﹕ java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package ru.dima_n.mysql2;
 
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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 org.json.JSONObject;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
 
public class MainActivity extends Activity {
 
    String id;
    String name;
    InputStream is=null;
    String result=null;
    String line=null;
    private EditText e_id ;
 
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        e_id=(EditText) findViewById(R.id.editText1);
 
    }
 
    public void onClick(View v)
    {
        id=e_id.getText().toString();
 
        // создаем второй поток
        Runnable r = new Runnable(){
            @Override
            public void run ()
            {
                ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
 
                nameValuePairs.add(new BasicNameValuePair("pid",id));
 
                try
                {
                    HttpClient httpclient = new DefaultHttpClient();
                    HttpPost httppost = new HttpPost("http://dima-n.16mb.com/Okna/mysql2.php");
                    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                    HttpResponse response = httpclient.execute(httppost);
                    HttpEntity entity = response.getEntity();
                    is = entity.getContent();
                    Log.e("pass 1", "connection success ");
                }
                catch(Exception e)
                {
                    Log.e("Fail 1", e.toString());
                    Toast.makeText(getApplicationContext(), "Invalid IP Address",
                            Toast.LENGTH_LONG).show();
                }
 
                try
                {
                    BufferedReader reader = new BufferedReader (new InputStreamReader(is,"iso-8859-1"),8);
                    StringBuilder sb = new StringBuilder();
                    while ((line = reader.readLine()) != null)
                    {
                        sb.append(line + "\n");
                    }
                    is.close();
                    result = sb.toString();
                    Log.e("pass 2", "connection success" + result);
                }
                catch(Exception e)
                {
                    Log.e("Fail 2", e.toString());
                }
 
                json();
            }
        };
 
        Thread t = new Thread(r);
        t.start();
 
        //select();
    }
 
    public void json ()
    {
        try
        {
            JSONObject json_data = new JSONObject(result);
            name=(json_data.getString("name"));
            Toast.makeText(getBaseContext(), "name : "+name,
                    Toast.LENGTH_SHORT).show();
        }
        catch(Exception e)
        {
            Log.e("Fail 3", e.toString());
        }
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
 
}
Добавлено через 33 минуты
еще полазил, это из-за вызова Toast происхоит как я понял.
Если не сложно подскажите как выйти из патока
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2015, 22:28
Привет! Вот еще темы с ответами:

Обращение к методу другого класса - Программирование Android
Привет Не пинайте за возможный бред, я учусь) В общем мне необходимо вызвать метод класса Auth из другого класса. Сам метод ...

Обращение к элементам другой Активити - Программирование Android
Есть xml-файл главной активити main.xml который содержит поле ввода &lt;EditText android:id=&quot;@+id/edPhone&quot; ...

Обращение к каждому элементу Адаптера - Программирование Android
мне неужно обратиться к каждому элементу адаптера и изменить там TextView,но почему то изменяется только 1й элемент,какой бы номер позиции...

Обращение к элементу другой формы - Программирование Android
На Activity_1 например есть кнопка по ее нажатию в editText Activity_2 что-то добавляется . подскажите способы как это организовать. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.07.2015, 22:28
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru