باسلام به آدمین و دوستان فعال که کمکشون بدون دریغ انجام میدن.
بنده با مجموع تصویری آموزشی نحوه ارتباط با دیتابیس سرور و ارسال کردن و دریافت مقادیر یاد گرفتم.اما به نظر خودم روشی که در این پکیج آموزشی است خیلی راه وقت گیر است.احساس میکنم روش سریعتری باشه.
فرض کنید من یک دیتابیس دارم که دو فیلد به نام title و body داره.من میخوام برای بروز رسانی بیاد تمامی سطرهایی که مثلا از یه عددی هست رو بگیر و به سمت گوشی بفرسته.برای اینکار
درسمت php من کدهایی نوشتم که قسمتی از آن :
درواقع من میام نتیجه کوئری که رو در یک حلقه میندازم و فیلدها رو با کارکتر | جدا میکنم و پرینت میکنم.
درسمت اندروید هم
نمیخوام وارد جزئیات بشید .فقط بحث اینه که کد بالا میاد یک BufferReader تعریف میکنه. بعد میاد یه حلقه میزنه میگه تا زمانی که به انتهای نرسید خط به خط میگه و داخل متغیر line میریزه.
بعد روی این خط میاد یک حلقه دیگه میزنه و کارکتر به کارکتر میخونه تا برسه به کارکتر | و فیلدها رو جدا میکنه.و داخل دیتابیس insert میکنه.
برنامه به درستی کار میکنه.ولی مشکل اینه اگر ما مثلا 30 مطلب و هرکدوم از آنها شامل چند 10 خط باشه .خب عملا تکرار حلقه ها خیلی زیاد میشه.
میخواستم بدونم اینکار منطقیه؟ آیا روش کوتاه تری هست؟
این روش مشکلی ندارد؟
آدمین جان چون میدونم شما روی دیتابیس تسلط زیاد دارید خوشحال میشم جواب بدید
یا بقیه دوستان اگر میدونند کمک کنند.مرسی
بنده با مجموع تصویری آموزشی نحوه ارتباط با دیتابیس سرور و ارسال کردن و دریافت مقادیر یاد گرفتم.اما به نظر خودم روشی که در این پکیج آموزشی است خیلی راه وقت گیر است.احساس میکنم روش سریعتری باشه.
فرض کنید من یک دیتابیس دارم که دو فیلد به نام title و body داره.من میخوام برای بروز رسانی بیاد تمامی سطرهایی که مثلا از یه عددی هست رو بگیر و به سمت گوشی بفرسته.برای اینکار
درسمت php من کدهایی نوشتم که قسمتی از آن :
کد پیاچپی:
$sqlQ="select * from T1 where ID>='$ id' ";
$result=mysql_Query($sqlQ);
while($row=mysql_fetch_assoc($result)){
print $row[0].'|';
print $row[1].'|';
}
درواقع من میام نتیجه کوئری که رو در یک حلقه میندازم و فیلدها رو با کارکتر | جدا میکنم و پرینت میکنم.
درسمت اندروید هم
کد پیاچپی:
BufferedReader reader=new BufferedReader(new InputStreamReader(connect.getInputStream()));
StringBuilder sb=new StringBuilder();
String line=null;
while((line=reader.readLine()) !=null){
int f=0;
int c=0;
for(int i=0;i<line.length();i++){
if(line.charAt(i)=='|'){
String temp=line.substring(f, i);
if(c==0){
tid=temp;
}
if(c==1){
tuser=temp;
}
if(c==2){
tmatn=temp.replace("^", "\n");
}
f=i+1;
c+=1;
}
}
index.count2++;
db.insert(tid, tuser, tmatn);
نمیخوام وارد جزئیات بشید .فقط بحث اینه که کد بالا میاد یک BufferReader تعریف میکنه. بعد میاد یه حلقه میزنه میگه تا زمانی که به انتهای نرسید خط به خط میگه و داخل متغیر line میریزه.
بعد روی این خط میاد یک حلقه دیگه میزنه و کارکتر به کارکتر میخونه تا برسه به کارکتر | و فیلدها رو جدا میکنه.و داخل دیتابیس insert میکنه.
برنامه به درستی کار میکنه.ولی مشکل اینه اگر ما مثلا 30 مطلب و هرکدوم از آنها شامل چند 10 خط باشه .خب عملا تکرار حلقه ها خیلی زیاد میشه.
میخواستم بدونم اینکار منطقیه؟ آیا روش کوتاه تری هست؟
این روش مشکلی ندارد؟
آدمین جان چون میدونم شما روی دیتابیس تسلط زیاد دارید خوشحال میشم جواب بدید
یا بقیه دوستان اگر میدونند کمک کنند.مرسی