Php 带游标的MySQL/SQlite(1行上传)
你好 我在将游标中捕获的所有信息填充到MySQL服务器时遇到问题 我已经做了测试,在我的Toast消息中,它确实显示了正确的行数等等,但是循环和响应消息看起来都是有序的,但是MySQL中只上传了一行,你知道我哪里出错了吗Php 带游标的MySQL/SQlite(1行上传),php,android,mysql,sqlite,Php,Android,Mysql,Sqlite,你好 我在将游标中捕获的所有信息填充到MySQL服务器时遇到问题 我已经做了测试,在我的Toast消息中,它确实显示了正确的行数等等,但是循环和响应消息看起来都是有序的,但是MySQL中只上传了一行,你知道我哪里出错了吗 多谢各位- 代码: ConnectivityManager cm=(ConnectivityManager)context.getSystemService(context.CONNECTIVITY_服务); NetworkInfo activeNetwork=cm.get
- 多谢各位-
ConnectivityManager cm=(ConnectivityManager)context.getSystemService(context.CONNECTIVITY_服务);
NetworkInfo activeNetwork=cm.getActiveNetworkInfo();
//如果有网络
if(activeNetwork!=null){
//如果连接到wifi或移动数据计划
if(activeNetwork.getType()==ConnectivityManager.TYPE|WIFI | | activeNetwork.getType()==ConnectivityManager.TYPE|MOBILE){
//获取所有未同步的名称
最终游标=db.getUnsyncedNames();
if(cursor.moveToFirst()){
int rows=cursor.getCount();
做{
String custno=cursor.getString(1);
String custna=cursor.getString(2);
字符串custtnad=cursor.getString(3);
String outletno=cursor.getString(cursor.getColumnIndex(“outletno”));
Toast.makeText(上下文,“要同步的GPS绘图:”+String.valueOf(rows),Toast.LENGTH_LONG.show();
//Toast.makeText(上下文,outletno+“\n”+custno+“\n\n”+custna+“\n\n”+custnad,Toast.LENGTH\u LONG).show();
保存名(
cursor.getString(cursor.getColumnIndex(“outletno”),
cursor.getString(cursor.getColumnIndex(“lati”),
cursor.getString(cursor.getColumnIndex(“longi”),
cursor.getString(cursor.getColumnIndex(“dserial”),
cursor.getString(cursor.getColumnIndex(“GPS”)),
cursor.getString(cursor.getColumnIndex(“GPSA”),
cursor.getString(cursor.getColumnIndex(“ACC”));
}while(cursor.moveToNext());
}
}
}
}
私有void存储名(最终字符串outletno、最终字符串lati、最终字符串longi、最终字符串dserial、最终字符串GPS、最终字符串GPSA、最终字符串ACC){
StringRequest StringRequest=新建StringRequest(Request.Method.POST、MainActivity.url\u create\u product、,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject obj=新的JSONObject(响应);
字符串响应=obj.getString(“成功”);
int success=obj.getInt(“success”);
如果(成功==1){
Toast.makeText(上下文,outletno+“\n”+“upload!”,Toast.LENGTH\u LONG.show();
db.updateNameStatus(outletno,MainActivity.NAME与服务器同步);
}否则{
Toast.makeText(上下文,“上载失败”,Toast.LENGTH_LONG.show();
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
}) {
@凌驾
受保护的映射getParams()引发AuthFailureError{
Map params=新的HashMap();
参数输出(“OutletNo”,OutletNo);
参数put(“纬度”,纬度);
参数put(“经度”,longi);
参数put(“设备串行”,数据串行);
参数put(“GPS”,GPS);
参数put(“新地址”,GPSA);
参数put(“ACC”,ACC);
返回参数;
}
};
getInstance(上下文).addToRequestQueue(stringRequest);
}
}在while循环中使用了
cursor.isAfterLast()
条件,而不是类似的cursor.moveToNext()
do{
...
cursor.moveToNext();
}while(!cursor.isAfterLast());
试试这个片段
您可能已经声明了someColumn非Null
在创建表时
及
不知何故,cursor.getString()
返回了null
,因此该行没有被添加到数据库表中。if(cursor.moveToFirst()){
if (cursor.moveToFirst()) {
int rows = cursor.getCount();
do {
Toast.makeText(context, "GPS Plots to Sync: " + String.valueOf(rows), Toast.LENGTH_LONG).show();
String onumber = cursor.getString(cursor.getColumnIndex("outletno"));
String olati = cursor.getString(cursor.getColumnIndex("lati"));
String olongi = cursor.getString(cursor.getColumnIndex("longi"));
String oserial = cursor.getString(cursor.getColumnIndex("dserial"));
String ogps = cursor.getString(cursor.getColumnIndex("GPS"));
String ogpsa = cursor.getString(cursor.getColumnIndex("GPSA"));
String oacc = cursor.getString(cursor.getColumnIndex("ACC"));
// Toast.makeText(MainActivity.this, currentLocation, Toast.LENGTH_LONG).show();
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("OutletNo", onumber));
params.add(new BasicNameValuePair("Latitude", olati));
params.add(new BasicNameValuePair("Longitude", olongi));
params.add(new BasicNameValuePair("DeviceSERIAL", oserial));
params.add(new BasicNameValuePair("GPS", ogps));
params.add(new BasicNameValuePair("NEWADDR", ogpsa));
params.add(new BasicNameValuePair("ACC", oacc));
JSONObject json = jsonParser.makeHttpRequest(MainActivity.url_create_product,
"POST", params);
Log.d("Create Response", json.toString());
try {
int success = json.getInt("success");
if (success == 1) {
Toast.makeText(context, onumber + "\n"+"Uploaded!", Toast.LENGTH_LONG).show();
db.updateNameStatus(onumber, MainActivity.NAME_SYNCED_WITH_SERVER);
// If uploaded = finish();
} else {
// failed to create product
// Toast.makeText(MainActivity.this, "Need To Sync", Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
cursor.moveToNext();
} while (!cursor.isAfterLast());
}
}
}
}
int rows=cursor.getCount();
做{
Toast.makeText(上下文,“要同步的GPS绘图:”+String.valueOf(rows),Toast.LENGTH_LONG.show();
字符串onumber=cursor.getString(cursor.getColumnIndex(“outletno”);
String olati=cursor.getString(cursor.getColumnIndex(“lati”);
字符串olongi=cursor.getString(cursor.getColumnIndex(“longi”);
String oserial=cursor.getString(cursor.getColumnIndex(“dserial”);
字符串ogps=cursor.getString(cursor.getColumnIndex(“GPS”);
字符串ogpsa=cursor.getString(cursor.getColumnIndex(“GPSA”);
字符串oacc=cursor.getString(cursor.getColumnIndex(“ACC”);
//Toast.makeText(MainActivity.this,currentLocation,Toast.LENGTH_LONG.show();
//建筑参数
List params=new ArrayList();
参数add(新的BasicNameValuePair(“OutletNo”,onumber));
参数添加(新的BasicNameValuePair(“纬度”,olati));
添加(新的BasicNameValuePair(“经度”,olongi));
参数添加(新的BasicNameValuePair(“DeviceSERIAL”,oserial));
参数添加(新的BasicNameValuePair(“GPS”,ogps));
参数添加(新的BasicNameValuePair(“新添加”,
final Cursor cursor = db.getUnsyncedNames();
cursor.moveToFirst();
try {
while (!cursor.isAfterLast()){
String custtno = cursor.getString(0);
String custtna = cursor.getString(1);
String custtnad = cursor.getString(2);
saveName(
cursor.getString(cursor.getColumnIndex("outletno")),
cursor.getString(cursor.getColumnIndex("lati")),
cursor.getString(cursor.getColumnIndex("longi")),
cursor.getString(cursor.getColumnIndex("dserial")),
cursor.getString(cursor.getColumnIndex("GPS")),
cursor.getString(cursor.getColumnIndex("GPSA")),
cursor.getString(cursor.getColumnIndex("ACC")));
cursor.moveToNext();
}
} catch (Exception e) {
e.printStackTrace();
}
}
if (cursor.moveToFirst()) {
int rows = cursor.getCount();
do {
Toast.makeText(context, "GPS Plots to Sync: " + String.valueOf(rows), Toast.LENGTH_LONG).show();
String onumber = cursor.getString(cursor.getColumnIndex("outletno"));
String olati = cursor.getString(cursor.getColumnIndex("lati"));
String olongi = cursor.getString(cursor.getColumnIndex("longi"));
String oserial = cursor.getString(cursor.getColumnIndex("dserial"));
String ogps = cursor.getString(cursor.getColumnIndex("GPS"));
String ogpsa = cursor.getString(cursor.getColumnIndex("GPSA"));
String oacc = cursor.getString(cursor.getColumnIndex("ACC"));
// Toast.makeText(MainActivity.this, currentLocation, Toast.LENGTH_LONG).show();
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("OutletNo", onumber));
params.add(new BasicNameValuePair("Latitude", olati));
params.add(new BasicNameValuePair("Longitude", olongi));
params.add(new BasicNameValuePair("DeviceSERIAL", oserial));
params.add(new BasicNameValuePair("GPS", ogps));
params.add(new BasicNameValuePair("NEWADDR", ogpsa));
params.add(new BasicNameValuePair("ACC", oacc));
JSONObject json = jsonParser.makeHttpRequest(MainActivity.url_create_product,
"POST", params);
Log.d("Create Response", json.toString());
try {
int success = json.getInt("success");
if (success == 1) {
Toast.makeText(context, onumber + "\n"+"Uploaded!", Toast.LENGTH_LONG).show();
db.updateNameStatus(onumber, MainActivity.NAME_SYNCED_WITH_SERVER);
// If uploaded = finish();
} else {
// failed to create product
// Toast.makeText(MainActivity.this, "Need To Sync", Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
cursor.moveToNext();
} while (!cursor.isAfterLast());
}
}
}
}