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

لیمیت دادن برای مولتی پنل با دیتابیس آنلاین


coco

سوال

سلام دوستان!

خوبین؟

عزیزان یه مشکلی داشتم اونم لیمیت دادن به دیتابیس آنلاین بود...

یعنی من میخوام ۱۰ تا رکورد اول دیتابیس آنلاین رو بگیرم و وقتی اسکرولم به ته رسید بیام و ۱۰ تای بعدی رو بگیرم.

ممنون میشم کمک کنید...

گشتم اما چیزی پیدا نکردم!

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

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

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

درود دوستان.من میخام اطلاعات رو از 10 تا 10 تا از سرور بگیرم و اونو توی دیتابیس ذخیره کنم و 10 رو کاربر دید بااسکرول کردن ده تا دیگه رو دریافت و ذخیره بشه و کاربر استفاده کنه.مشکلم اینکه که اصلا اطلاعاتی رو نشون نمیده.ولی توی قسمت updating... میمونه.کد php و بیسیکم رو میزارم لطفا راهنماییم کنین.سپاس

<?php
header('Content-Type: text/html; charset=utf-8');
$servername = "localhost";
$username = "un1";
$password = "1234";
$dbname = "db_n";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
mysqli_query($conn,"SET character_set_results = 'utf8'");// Check connection

    mysqli_query($con,"SET NAMES utf8");
    mysqli_query($con,"SET CHARACTER SET utf8");

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$limit = 10;
$offset = $_POST["offset"];
$sql = "SELECT * FROM tbl_name LIMIT ".$limit." OFFSET ".$offset."";

$result = $conn->query($sql); 

if ($result->num_rows = 0) {
while($row = $result->fetch_assoc()) {
        echo $row['id']."#".$row['fname']."#".$row['lname']."<br>";
    }

    
} else {
echo"nothing";
}
$conn->close();
?>

کدای بیسیک

Sub Process_Globals

End Sub

Sub Globals

Dim ht As HttpJob
Dim rowCount As Int
Dim ht2 As HttpJob
Dim cur As Cursor
Dim sql1 As SQL

Dim ht4 As Float
Dim ht5 As Float
Dim StrUtil As StringUtils
Dim PanelHeight As Int

Private ScrollView1 As ScrollView
Private lblmatn As Label
Private lbltitle As Label
Dim Stopint As Int=5%y
Dim offset As Int = 0
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("news1layout")
	
	
	If File.Exists(File.DirInternal,"news.db") = False Then
		File.Copy(File.DirAssets,"news.db",File.DirInternal,"news.db")
	End If
	If sql1.IsInitialized = False Then
		sql1.Initialize(File.DirInternal,"news.db",True)
	End If

    showitems
	
	ht.Initialize("job1",Me)
	ht2.Initialize("job2",Me)
	updatebtn


End Sub

Sub showitems
ScrollView1.Panel.RemoveAllViews
 Stopint=3%y
		cur = sql1.ExecQuery("SELECT * FROM tbl_news id ORDER BY id DESC")
	For i = 0 To cur.rowCount - 1
		cur.Position = i

	Dim p1 As Panel
	p1.Initialize("p1")
	p1.LoadLayout("newspanel")
	ScrollView1.Panel.AddView(p1,0,Stopint-5%Y,100%x,100%Y)
    Stopint=Stopint+30%Y
	
	
	lbltitle.Text=cur.GetString("lname")
    lblmatn.Text=cur.GetString("fname")
	lbltitle.Color =Colors.Green
	lblmatn.Color =Colors.Green
	lbltitle.textColor =Colors.Black
	lblmatn.textColor =Colors.Black
	lbltitle.Gravity=Gravity.RIGHT
	lblmatn.Gravity=Gravity.RIGHT
	lblmatn.Text.StartsWith("fff")
Next
ScrollView1.Panel.Height=Stopint+7%Y



End Sub

Sub ScrollView1_ScrollChanged(Position As Int)
	If (Position+ScrollView1.Height) >= PanelHeight Then

offset = offset + 10
ht.poststring("http://file.php/getcontent.php","offset=" & offset)
		 ToastMessageShow ("تعداد دیگری از رکوردها لود میشود :)",False)
		DoEvents 
	End If
	
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub updatebtn

ht.postString("http://file.php/getcontent.php","offset="& offset)
	ProgressDialogShow("updating...")
End Sub




Sub jobdone (job As HttpJob)
	
	
	
	If job.Success = True Then
		
		
		If job.JobName = "job1" Then
			
					cur = sql1.ExecQuery("SELECT * FROM tbl_news")
					rowCount = cur.rowCount
					
					If job.GetString > rowCount Then
						
						cur = sql1.ExecQuery("SELECT * FROM tbl_news")
						rowCount = cur.rowCount
						
						ht2.PostString("http://file.php/getcontent.php","offset="& rowCount &"")
						
					Else
						ToastMessageShow("db is up to date!!!",False)
						ProgressDialogHide
					End If
					
		Else If job.JobName = "job2" Then
					If job.GetString = "nothing" Then
						ToastMessageShow("error",False)
					Else 
						Dim str1() As String = Regex.Split("<br>",job.GetString)
						For i = 0 To str1.Length - 1
							Dim str2() As String = Regex.Split("#",str1(i))
							Try
								sql1.ExecNonQuery("INSERT INTO tbl_news (id,fname,lname) VALUES (null,'"&str2(1)&"','"&str2(2)&"')")
						
								showitems
							Catch
								Log(LastException)
							End Try
						Next
					ProgressDialogHide
					End If
		End If
	End If
End Sub

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

سلام

من تا حالا با لیمیت دیتابیس کار نکردم

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

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

سلام 

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

ولی یادم میاد آقای قبادی این کاری که شما لازم دارید رو درست کردن، تا جایی که یادم میاد یکم اذیت میکرد ولی میشه. 

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

سلام 

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

ولی یادم میاد آقای قبادی این کاری که شما لازم دارید رو درست کردن، تا جایی که یادم میاد یکم اذیت میکرد ولی میشه. 

سلام

علیرضا جان اون روش مد نظرم بود اما دیدم خیلی خوب از آب در نمیاد چون برنامه اونجوری نیست که بشه بریزم تو دیتابیس آفلاین

 

میخوام اگه بشه همون آنلاین رو لیمیت کنم!

یه روش هم تو انجمن سرچ کردم دیدم که آقا حامد (nemesis) گذاشته بودن که توش میدادیم که چند تا چند رو بگیره اما نمیدونم که چجوری باید توی فایلای php ـیم اعمالش کنم...

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

توی تاپیک زیر یک نمونه کامل کد گذاشتم که خودم هم باهاش کار میکنم... با Json هم هستش و قوی تر از روش های دیگه هستش

 

موفق باشید

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

سوالتون ربطی به تاپیک نداره ولی بفرمایید :

http://answercenter.ir/index.php?app=nexus&module=payments&section=store&do=item&id=9

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

سلام شایان

خوبی؟

ببین

2 تا متغیر php باید بذاری(یا یدونه)

کوئری به شکل زیر درمیاد(با php کار ندارم)

$offset = 0;
$limit = 10;
$offset = $_POST["offset"];
"SELECT * FROM tbl LIMIT ".$limit." OFFSET ".$offset.""

حالا توی اکتیوتی یه متغیر تعریف کن به اسم offset

dim offset as int = 0

بیا پستش کن و اطلاعات رو بگیر و بریز توی ولتی پنلت(خودت میدونی دیگه)(بهتره یه ساب درست کنی که اطلاعات رو بریزه تو مولتی پنل و فقط یه متن (job.getstring) رو بهش بدی)

ht.postString("domain.ir/file.php","offset="& offset)

این رو میذاری بار اول دیتا میگیری

وقتی که مولتی پنل به تهش رسید هم

offset = offset + 10
ht.poststring("domain.ir/fole.php","offset=" & offset)

جاب دانت هم چون میاد میریه تو مولتی پنل، برای هر بار پست کارش یکیه و نیاز نیست تغییرش بدی :)

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

شهاب جان اینجوری نوشتم ولی هیچی لود نمیکنه :

$offset = 0;
$limit = 10;
$offset = $_POST["offset"];

$shayantbl = mysql_query("SELECT * FROM shayantbl LIMIT ".$limit." OFFSET ".$offset." AND WHERE taeed=1 ORDER BY ID DESC");
لینک ارسال
به اشتراک گذاری در سایت های دیگر

"SELECT * FROM shayantbl WHERE taeed=1 ORDER BY ID LIMIT ".$limit." OFFSET ".$offset."DESC"

اینطوری تست کن کوئری رو

 

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

شهاب جان اون درست شد!

من حالا میام و 10 تای اول رو میگیرم!

اما به 10 تای دوم که میرسه و برای ساخت مولتی پنل ارور میده که تعداد ایندکس ها کمه... (همون index out of bounds)

کد های مرتبط :

Sub MULTIPANELADDER
	Dim a() As String
			a = Regex.Split("<br>",JGS)
			
			If offset = 0 Then
				ScrollView1.Panel.RemoveAllViews
				s = ScrollView1.Height - ScrollView1.Height
				ScrollView1.ScrollPosition = s
				txtformp.Clear
				likeslist.Clear
				idlist.Clear
			End If
			'Try
					For i=0 To a.Length-1


					Dim id As String
					Dim name As String
					Dim text As String
					Dim mozoo As String
					Dim likes As String
					Dim jodasazi() As String = Regex.Split("#",a(i))

					name = jodasazi(1)
					text = jodasazi(2)
					mozoo = jodasazi(3)
					likes = jodasazi(4)
					id = jodasazi(0)
					
					Dim p As Panel
					p.Initialize("p")
					ScrollView1.Panel.AddView(p,0,s,100%x,100%y)
					s = s +70%Y
					p.LoadLayout("multipanel")
					
					
					idlist.Add(jodasazi(0))
					
					btnlike.Tag = i
					copy.Tag = i
					share.Tag = i
					
					
					
					Panel1.Tag = i
					p.Tag = i
					Dim mozooFA As String
					If mozoo = "moharam" Then
						mozooFA = "محرم"
					Else If mozoo = "arefane" Then
						mozooFA = "عارفانه"
					else If mozoo = "asheghane" Then
						mozooFA = "عاشقانه"
					else If mozoo = "chistan" Then
						mozooFA = "چیستان"
					Else If mozoo = "latife" Then
						mozooFA = "لطیفه"
					else If mozoo = "matnsangin" Then
						mozooFA = "متن سنگین"
					Else If mozoo = "mazhabi" Then
						mozooFA = "مذهبی"
					Else If mozoo = "sokhan" Then
						mozooFA = "سخن بزرگان"
					Else If mozoo = "tabrikaayaad" Then
						mozooFA = "تبریک اعیاد"
					Else if mozoo = "tabrikmonasebat" Then
						mozooFA = "تبریک مناسبت"
					Else if mozoo = "tabriktavalod" Then
						mozooFA = "تبریک تولد"
					Else if mozoo = "tanz" Then
						mozooFA = "طنز"
					Else if mozoo = "tasliat" Then
						mozooFA = "تسلیت"
					End If
					
					nameofsender.Text = "ارسال شده توسط: "&name &"-موضوع: "&mozooFA
					txt.Text = text
					btnlike.Text = likes &" پسند"
					Dim lon As String = jodasazi(5)
					
					If lon.Contains(serial&"*") Then
						btnlike.Background = sdul
					Else
						btnlike.Background = sdl
					End If
					
					copy.TextSize = GetDeviceLayoutValues.ApproximateScreenSize *3
					share.TextSize = GetDeviceLayoutValues.ApproximateScreenSize *3
					txt.TextSize = GetDeviceLayoutValues.ApproximateScreenSize *3
					nameofsender.TextSize = GetDeviceLayoutValues.ApproximateScreenSize *3
					btnlike.TextSize = GetDeviceLayoutValues.ApproximateScreenSize *3
					
					
					
					
					
					
					
					
					txtformp.Add(txt.Text)
					likeslist.Add(likes)
					
					ScrollView1.Panel.Height =	s

				Next
				ScrollView1.Panel.Height = ScrollView1.Panel.Height + 7.5%y
				ProgressDialogHide
				ToastMessageShow("با موفقیت دریافت شد!",False)
'			Catch
'				ScrollView1.Panel.RemoveAllViews
'				s = ScrollView1.Height - ScrollView1.Height
'				ScrollView1.ScrollPosition = s
'				ScrollView1.Panel.Height = s
'				
'				ProgressDialogHide
'				ToastMessageShow("متاسفانه در این بخش پیامی ثبت نشده است! شما میتوانید پیام های خود را از طریق بخش ارسال برای ما بفرستید..." ,True)
'			End Try
End Sub


Sub ScrollView1_ScrollChanged(Position As Int)
	If Position + ScrollView1.Height > ScrollView1.Panel.Height Then
		offset = offset +10
		httpjob2.PostString("http://cafe-khande.ir/android/payamsara/show.php","offset="&offset)
		ProgressDialogShow("در حال دریافت اطلاعات ...")
	End If
End Sub


If Job.JobName = "dl" Then
			
			JGS = Job.GetString
			MULTIPANELADDER
End if

ممنون !!

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

ببین 

کد هات مشکلی نداره به نظرم

یه try Catch بذار تا ارور نگیری

متوجه نمیشم ارورت برای چیه

چون کدات به نظرم درسته

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

ببین 

کد هات مشکلی نداره به نظرم

یه try Catch بذار تا ارور نگیری

متوجه نمیشم ارورت برای چیه

چون کدات به نظرم درسته

try , catch رو اگه دقت کنی کامنت کردم!

وگرنه که کلا ارور نمیداد

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

بایگانی شده

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

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

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