رفتن به مطلب
  • 0

یک مشکل بزرگ و جدی در لود کردن اطلاعات از دیتابیس آنلاین


msd313

سوال

با سلام و خدا قوت
من وقتی میهوام اطلاعاتی رو از php بگیریم اگر فقط یک پاسخ داشته باشه مثلاً (بله - خیر یا آدرس یک عکس و ...) متاسفانه توی لاگ نشون میده ولی خود بیسیک اون اطلاعات رو دریافت نمیکنه مثلاً اون عکس رو لود نمیکنه!!!!!!!!!!!
حالا من یه ترفندی میزدم میومدم دو تا از اون اطلاعات رو به بیسیک echo میکردم مثلاً: توی php میگفتم     echo yes.#.yes خب اینطوری دوتا "yes" و # رو برمیگردوند.

بعدش توی بیسیک split میکردم و میریختم توی آرایه ای مثل ary و میگفتم نمایش بده ary(1) رو و نشون میداددرصورتی که arry(0) رو نشون نمیداد!!!!!!!!!!!!!!
 

اگه کسی راه حلی داره لطفاً راهنمایی کنه؟؟؟؟؟؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

20 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

بهتره خروجی توی لاگ با کدنویسی رو بفرستید.

---------

یا بیاید همین مقدار هم بریزید تو جیسون.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 28 دقیقه قبل، M-CAP7AIN گفته است :

بهتره خروجی توی لاگ با کدنویسی رو بفرستید. 

چطوری ؟؟؟ منظورت رو متوجه نشدم!!!
مثلاً من از perstian fast ntework استفاده میکنم.

resalt رو وقتی لاگ میکنم متنش رو میبینم ولی وقتی به lable یا هر ویوی دیگه میدم نشون نمیده

در 31 دقیقه قبل، M-CAP7AIN گفته است :

یا بیاید همین مقدار هم بریزید تو جیسون.

اینم با همین کتابخونه persianfastnetwork بیزحمت راهنمایی کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

1. کدنویسی با لاگ خروجی رو بفرستید اینجا ، اول ببینم کدنویسی چجوریه که اعمال نمیشه.

با کتابخونه persianfastnetwork  کارنکردم ولی کتابخونه خودم ، مثل همینه مشکلی تو دریافت ، ارسال اطلاعات با کتابخونه نباید باشه

 

2.

$Objson = new stdClass();
$Objson->id = "1";
$Objson->session = "ABCDEFG";
$Objson->userlevel = "M-CAP7AIN";

echo json_encode($Objson);

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

البته یادمه با کتابخونه خود بیسیک هم این مشکل رو داشتم!
این بخش دریافت اطلاعات از php هستش توی اینجا من دو تا url یکسان دریافت میکنم (به خاطر اینکه یک url جواب نداد به همون علت که بالا گفتم)

If Tag= "slider" Then
		Log(Result)       
		Dim s() As String
		s=Regex.Split("#",Result)
		Dim aria As AriaGlide
		aria.Load(s(1)).AsBitmap.IntoImageView(imgslide)
End If

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اینم بفرستید

Log(Result)  

 

بخش لاگ مثلا به این صورته؟

https://www.google.com.#.https://www.google.com

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 7 دقیقه قبل، M-CAP7AIN گفته است :

https://www.google.com.#.https://www.google.com

بله دقیقاً
حالا وقتی اینو میذارم توی ایمیج ویو اولیه رو قبول نمیکنه یعنی s(0) رو مجبورم بنویسم s(1) خیلی عجیبه برام!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

	Dim Result As String = "https://answercenter.ir.#.https://www.google.com"
	
	Dim ss() As String = Regex.Split(".#.",Result)
	Log(ss(0))
	Log(ss(1))
	Msgbox(ss(0) & CRLF & ss(1) , "")

 

مشکلی نداره ، احتمالا اون رشته ورودی یه کارکتر اضافی داره

یبار آدرس رو دستی جایگزین کنید تو مثال بالا ، ببینید بازم مشکل داره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در در 1397/11/10, 15:00:30، M-CAP7AIN گفته است :

یبار آدرس رو دستی جایگزین کنید تو مثال بالا ، ببینید بازم مشکل داره

دستی وارد کنی که میشه افلاین و مشکلی نداره
 

نمیدونم شاید هم مشکل از php باشه
نمونه کد php:

if($check==2){
    if($con){
        $rest=mysqli_query($con,"SELECT * FROM slider");
        $row = mysqli_fetch_array($rest);
        echo $row['urlpic']."#".$row['urlpic'];
    }
mysqli_close($con);
}

جدول slider من فعلاً فقط یک ردیف داره و توی ستون urlpic فقط یک آدرس عکس داره.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خروجی این خط محتواش رو کپی ، داخل فایل متنی ریخته ، تو اپ دستی خونده بشه ، بازم مشکل داره؟

این خط تغییر کنه به :

echo ($row['urlpic'] . '.#.' . $row['urlpic']);

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 16 ساعت قبل، M-CAP7AIN گفته است :

خروجی این خط محتواش رو کپی ، داخل فایل متنی ریخته ، تو اپ دستی خونده بشه ، بازم مشکل داره؟

مسئله من این نیست من اینو دوبار نوشتم چون اولی رو نمیتونم ازش استفاده کنم ولی از دومی میتونم چون مقدارشون یکیه
توی بیسیک گفتم هر دو رو وقتی لاگ میکنی نشون میده ولی اولی غیر قابل استفاده است.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما کد php با log رو اینجا بزار ببینیم کجا مشکل داره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کد php رو بالا گذاشتم دوست عزیز
log هم که کدش رو خودتون بلدید
فکر کنید توی jobedone مینویسم log(job.getstring) وقتی اینو مینویسم قاعداً url دوبار چاپ میشه و من فقط از دومیه میتونم استفاده کنم از اولیه نمیتونم واگر هم توی php یکبار url رو echo کنم فقط در jobdone یکبار چاپ میشه ولی نمیشه ازش استفاده کرد.
اینجاست که میگن فکر کنم بیسیکم جن داره!!!!!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در هم اکنون، mohammad3250 گفته است :

من اینو نمیفهمم چرا دوبار استفاده کردی ؟ در ضمن از json استفاده کن خیلی بهتره. و یه سوال دیگه بعد از split هر دو رشته مقدار داره ؟

یعنی شما تا حالا به این مشکل بر نخوردید؟!
در بالا گفته بودم وقتی یکبار استفاده میکنم نمی تونم از اون رشته ای که بهم برمیگردونه استفاده کنم یعنی توی لاگ میبینم متن و رشته برگشته ولی وقتی داخل ویو می ذارم دیده نمیشه انگار نه انگار
اگه برطرف نشه حتماً از جیسون استفاده میکنم.
بعد از split و قبلش هم هر دو مقدار داره جالبه بعد از split هم فقط از دومی میتونم استفاده کنم از اولی نمیتونم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

قبلا چرا ولی همچین مشکلی نداشتم ولی جیسون خیلی بهتره الان کد php میدم بهت

لینک ارسال
به اشتراک گذاری در سایت های دیگر

$out = array();
$record = array();

if($check==2){
    if($con){
        $rest=mysqli_query($con,"SELECT * FROM slider");
        $row = mysqli_fetch_array($rest);
		$record['urlpic']=$row['urlpic'];
		$out[] = $record; 
		echo json_encode($out);
    }
mysqli_close($con);
}
Try
			Dim JSON As JSONParser
			JSON.Initialize(http.GetString)
			Dim li As List = JSON.NextArray
			For i = 0 To li.Size -1
			Dim maps As Map = li.Get(i)
			کد هات اینجا بزن
			Next
		ProgressDialogHide
	End If
		Catch
			Log(LastException)
		End Try

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون جیسون رو بلدم تست کردم اینطوری جواب میده
ولی من فقط یک url میخوام بگیرم و استفاده از جیسون رو در php و b4a بدلیل طولانی نمودن کد مقرون به صرفه نمیدونستم ولی بازم ممنون از جوابتmohammad3250

لینک ارسال
به اشتراک گذاری در سایت های دیگر

راستی کد php جیسون رو هم میشه مختصرتر نوشت:
 

$out = array();
$record = array();

if($check==2){
    if($con){
        $rest=mysqli_query($con,"SELECT * FROM slider");
        $row = mysqli_fetch_array($rest);
		$record['urlpic']=$row['urlpic'];
		$out[] = $record; 
		echo json_encode($out);
    }
mysqli_close($con);
}
--------------------مختصر کردن----------------------

if($check==2){
    if($con){
        $rest=mysqli_query($con,"SELECT * FROM slider");
        $row[] = mysqli_fetch_array($rest);
		echo json_encode($row);
    }
mysqli_close($con);
}

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام برای اطمینان از کدهای php اونا تو مرورگر تو لوکال هاست تست کن اگه خروجی درست بود یعنی ایراد از قسمت b4a هست.

احتمالا دو کاراکتر اول که تو لوگ کردن چاپ میشه از لود اطلاعات جلوگیری میکنه که باید حذفش کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 6 ساعت قبل، msd313 گفته است :

راستی کد php جیسون رو هم میشه مختصرتر نوشت:
 


$out = array();
$record = array();

if($check==2){
    if($con){
        $rest=mysqli_query($con,"SELECT * FROM slider");
        $row = mysqli_fetch_array($rest);
		$record['urlpic']=$row['urlpic'];
		$out[] = $record; 
		echo json_encode($out);
    }
mysqli_close($con);
}
--------------------مختصر کردن----------------------

if($check==2){
    if($con){
        $rest=mysqli_query($con,"SELECT * FROM slider");
        $row[] = mysqli_fetch_array($rest);
		echo json_encode($row);
    }
mysqli_close($con);
}

 

من کد رو برای اسلایدر حرفه ای نوشتم نه یه عکس
در کل این بهتره چون متغییر ها کم تر هستش و منابع کمتری مصرف میکنه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...