我正在尝试从mysql数据库中获取数据并将其填充到列表视图中。
我正在获取我的系统的IP地址
String link_url = "192.168.19.6";
现在在我的wamp服务器中,我有一个名为
的文件/product_api/getDataProduct.php";
我现在想要在eclipse中调用此文件我正在做这个
link_url = Referensi.link+"/product_api/getDataProduct.php";
请问这是将android连接到mysql的正确方法,以及我如何知道我在eclipse上调用的文件是否连接到mysql数据库。
这是getDataOriduct.php文件
<?php
include("koneksi.php");
$q = mysql_query('select * from produk');
$v = '{"info" : [';
while($r=mysql_fetch_array($q))
{
$ob = array("<br>","<b>","</b>");
if(strlen($v)<12)
{
$v .= '{"id_produk" : "'.$r['id_produk'].'", "nama_produk" : "'.$r['nama_produk'].'", "harga" : "'.$r['harga'].'", "deskripsi" : "'.$r['deskripsi'].'", "stok" : "'.$r['stok'].'", "gambar" : "'.str_replace($ob,"",$r['gambar']).'"}';
}
else
{
$v .= ',{"id_produk" : "'.$r['id_produk'].'", "nama_produk" : "'.$r['nama_produk'].'", "harga" : "'.$r['harga'].'", "deskripsi" : "'.$r['deskripsi'].'", "stok" : "'.$r['stok'].'", "gambar" : "'.str_replace($ob,"",$r['gambar']).'"}';
}
}
$v .= ']}';
echo $v;
?>
这是包含的文件
<?php
$conn = mysql_connect("localhost","root","");
$db = mysql_select_db("android_tokobaju");
?>
这是发生错误的地方,此方法在oncreate方法中定义
JSONParser jParser = new JSONParser();
String nlink_url = link_url +"/product_api/getDataProduct.php";
JSONObject json = jParser.AmbilJson(nlink_url);
这是堆栈跟踪
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ecommysql.yonandroid/com.ecommysql.yonandroid.PhotoProduk}: java.lang.IllegalStateException: Target host must not be null, or set in parameters.
这是AmbilJson功能
public JSONObject AmbilJson(String url) {
// Making HTTP request
try {
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
}
请与上面的数据库连接到mysql db。感谢
答案 0 :(得分:2)
你的方向非常错误我的朋友。您共享的代码中存在许多问题。在开始之前你必须先了解一些事情。
Why shouldn't I use mysql_* functions in PHP
之后,您的代码将如下所示
include("koneksi.php");
$q = mysql_query('select * from produk'); // change it too
$v['info'] = [];
while($r=mysql_fetch_array($q))
{
$ob = array("<br>","<b>","</b>");
$temp['id_produk'] = $r['id_produk'];
$temp['nama_produk'] = $r['nama_produk'];
$temp['harga'] = $r['harga'];
$temp['deskripsi'] = $r['deskripsi'];
$temp['stok'] = $r['stok'];
$temp['gambar'] = str_replace($ob,"",$r['gambar']);
$v['info'][] = $temp;
}
echo json_encode($v);
?>
之后在android端你必须使用
Simple parse JSON from URL on Android and display in listview
您无法直接将android连接到 MySql ,您必须使用任何服务器 一种语言,它将从mysql中获取数据并提供给 机器人。在您的情况下, PHP 是服务器端脚本语言 从mysql获取数据并返回JSON作为响应。通过 Android 向服务器发出 HTTP 请求,您可以从中获取 JSON 服务器,然后用该数据为列表充气。
答案 1 :(得分:-1)
您应该添加用户名,密码,主机名和数据库。 再加上他们再试一次。
<?php
$username = "your_name";
$password = "your_password";
$hostname = "localhost";
$dbase ="your_database";
//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password,$dbase)
or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";
//execute the SQL query and return records
$result = mysql_query("SELECT id, model,year FROM cars");
//fetch tha data from the database
while ($row = mysql_fetch_array($result)) {
echo "ID:".$row{'id'}." Name:".$row{'model'}."Year: ". //display the results
$row{'year'}."<br>";
}
//close the connection
mysql_close($dbhandle);
?>