Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
2 / 2 / 1
Регистрация: 21.10.2011
Сообщений: 116

Обращение к MySQL

10.07.2015, 12:23. Показов 1631. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.07.2015, 12:23
Ответы с готовыми решениями:

Обращение к MySQL
Пытаюсь подключится к mysql из кода C++. VS 2010 компилит экзешник, ошибок не выдаёт. Запускаю экзешник - он через мгновение закрывается....

Обращение в MYSQL из PERL
Никогда раньше не писал на перле.... Срочно надо сделать простенький цмс на мускле под перловкой написал вот таак my $dbh =...

Обращение к MySQL Ускорение
Здравствуйте, Не знаю как улучшить мой велосипед из костылей. Вот код. $db-&gt;Query(&quot;SELECT * FROM db_users WHERE id =...

10
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
10.07.2015, 12:47
Интеерсней, что в логах написало отэто

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

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

Не по теме:

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

0
2 / 2 / 1
Регистрация: 21.10.2011
Сообщений: 116
10.07.2015, 13:14  [ТС]
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
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
10.07.2015, 13:15
https://www.cyberforum.ru/sear... id=9585447
0
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
10.07.2015, 13:15
Цитата Сообщение от DIMA_N Посмотреть сообщение
07-10 06:13:58.610 858-858/ru.dima_n.mysql2 E/Fail 1﹕ android.os.NetworkOnMainThreadException
androbro, ты - шайтан шатйанский
0
400 / 343 / 85
Регистрация: 17.10.2014
Сообщений: 1,015
10.07.2015, 13:42
Цитата Сообщение от Armagedo Посмотреть сообщение
androbro, ты - шайтан шатйанский
Кликните здесь для просмотра всего текста
Название: Blaine.JPG
Просмотров: 45

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

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

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

Code
1
2
3
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.07.2015, 22:28
Помогаю со студенческими работами здесь

Обращение к MySQL на удалённом сервере
Создав две темы и получив пинков за недоумие, разабрался как организовать конект с MySQL на С++. На localhost всё заработало. Но как только...

Обращение к записям из запроса к MySQL
Здравствуйте! Поясните пожалуйста. Обращаюсь к БД MySQL, к конкретной таблице, извлекаю из нее все записи: $result =...

База данных MySQL и обращение к ней
Собственно вопрос в том , как сделать обращение в баззу данных при помощи браузера . Я знаю ,что это делается при помощи php запросов и...

Запретить прямое обращение к скрипту, но разрешить обращение через RewriteEngine
основной файл у меня index.php и в нем уже определяется какой файл подключить, к примеру index.php ...

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
Ajenti CentOS 6 Linux 2.6.32-573.7.1.el6.x86_64 x86_64 Добрый день. Перестал работать MySQL. Выводить такую ошибку: ERROR...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru