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

ارسال دیتا به سمت هاست


MR.B4A

سوال

سلام.

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

حالا اینارو میخوام بفرستم توی دیتابیس آنلاین، اما نمیدونم چرا به اندازه ده بار فقط آخرین آیتم لیستم رو ارسال میکنه!!

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

اما وقتی ارسال میکنه، ظاهرا فقط آخرین آیتم رو به تعداد ده بار ارسال میکنه

ممنون میشم کسی راهنمایی کنه که چه کار کنم که رکورد ها تک تک وارد دیتابیس آنلاین شن

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

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

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

۵ ساعت قبل، batman۱۲۳ گفته است:

استاد من واقعا نمیدونم مشکل از کجاست.

ارسال دیتا به سمت سرور صورت نمیگیره!!

این کدای php

اینم ارسال دیتا از سمت سرور با آرایه:

اینم ارسال دیتا از سمت سرور با لیست

اینم جدول دیتابیسم

 

دیوانه کرده منو یعنی

ممنون میشم راهنمایی بفرمایید ( فارغ از بهینه بودن یا نبودن متد )

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

توی حلقه اصلا نباید شما دیتا ارسال کنید. با حلقه باید لیست یا آرایه رو بسازید. مسئله بعدی اینه که شما همینجوری نمیتونید یه لیست بفرستید سمت سرور. باید تبدیل به جیسون بشه بعد بفرستید.

رو مفاهیم پایه خیلی خیلی کار کنید.

 

Dim JsonList As List
	JsonList.Initialize
	For i=0 To cur.RowCount-1
		cur.Position=i	
		JsonList.add(cur.GetString("names"))
	Next
	Dim JSONGenerator As JSONGenerator
	JSONGenerator.Initialize2(JsonList)
	Dim JSONstring As String= JSONGenerator.ToString
	ht.PostString("http://192.168.1.5/insert_db.php",JSONstring)

 

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

در ۱۴۰۳/۲/۲۶ در ۰۱:۱۸، batman۱۲۳ گفته است:

سلام.

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

حالا اینارو میخوام بفرستم توی دیتابیس آنلاین، اما نمیدونم چرا به اندازه ده بار فقط آخرین آیتم لیستم رو ارسال میکنه!!

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

اما وقتی ارسال میکنه، ظاهرا فقط آخرین آیتم رو به تعداد ده بار ارسال میکنه

ممنون میشم کسی راهنمایی کنه که چه کار کنم که رکورد ها تک تک وارد دیتابیس آنلاین شن

کدتون رو لطفا بزارین ، انگار مشکل از حلقه و پوزیشن cursor باشه

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

در ۱۴۰۳/۲/۲۷ در ۱۳:۲۵، امین شاهدی گفته است:

کدتون رو لطفا بزارین ، انگار مشکل از حلقه و پوزیشن cursor باشه

سلام.

من فکر کنم ایراد از فایل php م باشه که رابط بین بیسیک و هاست هست. این کدای php م

<?php 
 
$servername = "localhost"; 
    $username = "root"; 
    $password = ""; 
    $dbname = "dbofflinetoonline"; 
     
    $name=$_POST['name']; 
 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    mysqli_set_charset ($conn , "utf8"); 
    if ($conn->connect_error) { 
        die("Connection failed: " . $conn->connect_error); 
    } 
 
    $sql = "INSERT INTO tbl_name (name) VALUES ('$name')"; 
 
    if ($conn->query($sql) === TRUE) { 
        echo "send successful"; 
    } else { 
        echo "send Error!!"; 
    } 
 
    $conn->close();    
 
?>

فکرکنم باید یه حلقه فوری چیزی باشه که باید همه آیتم هارو داخل جدول اینسرت کنه. من php کار نیستم راستش

این دستوریه که باهاش ارسال میکنم. ( b4a )

ّFor i= 0 to cur.RowCount-1
	cur.position=i
	ht.PostString("http://192.168.1.3/insert_db.php","name="&cur.GetString("names"))
Next

منتهای مراتب اینو توی حلقه فور میندازم به تعداد رکوردهای دیتابیس

اما آخرین رکورد دیتابیسو به تعداد 10 بار توی دیتابیس آنلاین ثبت میکنه!!

ممنون میشم راهنماییم کنید

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

۳ ساعت قبل، batman۱۲۳ گفته است:

سلام.

من فکر کنم ایراد از فایل php م باشه که رابط بین بیسیک و هاست هست. این کدای php م

<?php 
 
$servername = "localhost"; 
    $username = "root"; 
    $password = ""; 
    $dbname = "dbofflinetoonline"; 
     
    $name=$_POST['name']; 
 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    mysqli_set_charset ($conn , "utf8"); 
    if ($conn->connect_error) { 
        die("Connection failed: " . $conn->connect_error); 
    } 
 
    $sql = "INSERT INTO tbl_name (name) VALUES ('$name')"; 
 
    if ($conn->query($sql) === TRUE) { 
        echo "send successful"; 
    } else { 
        echo "send Error!!"; 
    } 
 
    $conn->close();    
 
?>

فکرکنم باید یه حلقه فوری چیزی باشه که باید همه آیتم هارو داخل جدول اینسرت کنه. من php کار نیستم راستش

این دستوریه که باهاش ارسال میکنم. ( b4a )

ّFor i= 0 to cur.RowCount-1
	cur.position=i
	ht.PostString("http://192.168.1.3/insert_db.php","name="&cur.GetString("names"))
Next

منتهای مراتب اینو توی حلقه فور میندازم به تعداد رکوردهای دیتابیس

اما آخرین رکورد دیتابیسو به تعداد 10 بار توی دیتابیس آنلاین ثبت میکنه!!

ممنون میشم راهنماییم کنید

سلام. تو حلقه قبل از ارسال مقدار لاگ بگیرید ببیینید چی داره ارسال میشه

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

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

۴ ساعت قبل، محمدرضا شاهپیری گفته است:

سلام. تو حلقه قبل از ارسال مقدار لاگ بگیرید ببیینید چی داره ارسال میشه

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

سلام استاد

قبل از ارسال، آیتم های دیتابیس رو میتونم ببینم

البته من منظورتونو نفهمیدم از چی باید لاگ بگیرم

 

خب حالا من اگه دیتارو داخل لیست بریزم، توی فایل php باید چثی بنویسم که لیستو بفرسته سمت سرور؟!

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

۷ ساعت قبل، batman۱۲۳ گفته است:

سلام استاد

قبل از ارسال، آیتم های دیتابیس رو میتونم ببینم

البته من منظورتونو نفهمیدم از چی باید لاگ بگیرم

 

خب حالا من اگه دیتارو داخل لیست بریزم، توی فایل php باید چثی بنویسم که لیستو بفرسته سمت سرور؟!

به شکل زیر لاگ بگیرید

ّFor i= 0 to cur.RowCount-1
	cur.position=i
    dim name as String=cur.GetString("names")
    Log(name)
	ht.PostString("http://192.168.1.3/insert_db.php","name="&name)
Next

 

۷ ساعت قبل، batman۱۲۳ گفته است:

خب حالا من اگه دیتارو داخل لیست بریزم، توی فایل php باید چثی بنویسم که لیستو بفرسته سمت سرور؟!

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

$json = json_decode(file_get_contents('php://input'), true);

برای ارتباط با سرور هم میتونید از کتابخونه های زیر راستفاده کنید

 

 

 

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

۱۶ ساعت قبل، محمدرضا شاهپیری گفته است:

به شکل زیر لاگ بگیرید

ّFor i= 0 to cur.RowCount-1
	cur.position=i
    dim name as String=cur.GetString("names")
    Log(name)
	ht.PostString("http://192.168.1.3/insert_db.php","name="&name)
Next

 

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

$json = json_decode(file_get_contents('php://input'), true);

برای ارتباط با سرور هم میتونید از کتابخونه های زیر راستفاده کنید

 

 

 

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

استاد، من این خط رو کجای فایل php م بذارم؟!

$json = json_decode(file_get_contents('php://input'), true);

این کدای php منه:

<?php 
 
$servername = "localhost"; 
    $username = "root"; 
    $password = ""; 
    $dbname = "dbofflinetoonline"; 
     
    $name=$_POST['name']; 
 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    mysqli_set_charset ($conn , "utf8"); 
    if ($conn->connect_error) { 
        die("Connection failed: " . $conn->connect_error); 
    } 
 
    $sql = "INSERT INTO tbl_name (name) VALUES ('$name')"; 
 
    if ($conn->query($sql) === TRUE) { 
        echo "send successful"; 
    } else { 
        echo "send Error!!"; 
    } 
 
    $conn->close();    
 
?>

 

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

7 ساعت قبل، batman123 گفته است:

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

استاد، من این خط رو کجای فایل php م بذارم؟!

 کدتون به شکل زیر میشه تقریبا

<?php  
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "dbofflinetoonline"; 
$names=json_decode(file_get_contents('php://input'), TRUE);

$conn = new mysqli($servername, $username, $password, $dbname); 
mysqli_set_charset ($conn , "utf8"); 
if ($conn->connect_error) { 
	die("Connection failed: " . $conn->connect_error); 
} 

foreach($names as $name) {
$sql = "INSERT INTO tbl_name (name) VALUES ('$name')"; 	
if ($conn->query($sql) === TRUE) { 
	echo "send successful"; 
} else { 
	echo "send Error!!"; 
 } 
}
$conn->close(); 

 

دیتا هم به شکل زیر باید بره سمت سرور البته مسائل امنیتی رو هم رعایت کنید حتما

["name1","name2","name3","name4"]

 

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

4 ساعت قبل، محمدرضا شاهپیری گفته است:
["name1","name2","name3","name4"]

استاد اینو از طریق لیست میشه ارسال کرد

درسته

private lst as list

توی این متغیر بریزم.

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

2 ساعت قبل، batman123 گفته است:

استاد اینو از طریق لیست میشه ارسال کرد

درسته

private lst as list

توی این متغیر بریزم.

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

مسئله دیگه ای هم که هست بحث پرفورمنسه. الان حلقه از سمت کلایت اومده سمت سرور. بهتر شده ولی بازم میشه بهینه ترش کرد. توی mysql یه مفهومی هست به نام batch insert که میاد و دیتا رو به صورت batch ذخیره میکنه. در موردش تحقیق کنید

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

11 ساعت قبل، محمدرضا شاهپیری گفته است:

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

مسئله دیگه ای هم که هست بحث پرفورمنسه. الان حلقه از سمت کلایت اومده سمت سرور. بهتر شده ولی بازم میشه بهینه ترش کرد. توی mysql یه مفهومی هست به نام batch insert که میاد و دیتا رو به صورت batch ذخیره میکنه. در موردش تحقیق کنید

ببخشید استاد، از طریق لیست جواب نداد

چه طوری میتونم آیتم ها خط زیرو ببرم داخل آرایه؟!

cur.GetString("names")

داخل name اسمه که میخوام داخل آرایه بریزم

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

Dim names(cur.RowCount) As String
For i= 0 To cur.RowCount-1
		cur.position=i
		Dim name As String=cur.GetString("names")
		names(i)=name
Next

 

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

۱۸ ساعت قبل، محمدرضا شاهپیری گفته است:
Dim names(cur.RowCount) As String
For i= 0 To cur.RowCount-1
		cur.position=i
		Dim name As String=cur.GetString("names")
		names(i)=name
Next

 

استاد من واقعا نمیدونم مشکل از کجاست.

ارسال دیتا به سمت سرور صورت نمیگیره!!

این کدای php

$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "dbofflinetoonline"; 
$names=json_decode(file_get_contents('php://input'), TRUE);

$conn = new mysqli($servername, $username, $password, $dbname); 
mysqli_set_charset ($conn , "utf8"); 
if ($conn->connect_error) { 
	die("Connection failed: " . $conn->connect_error); 
} 

foreach($names as $name) {
$sql = "INSERT INTO tbl_name (name) VALUES ('$name')"; 	
if ($conn->query($sql) === TRUE) { 
	echo "send successful"; 
} else { 
	echo "send Error!!"; 
 } 
}
$conn->close();

اینم ارسال دیتا از سمت سرور با آرایه:

Private s (cur.RowCount) As String
	
	For i=0 To cur.RowCount-1
		cur.Position=i
		
		lbl.Text=cur.GetString("names")
		
		s(i)=lbl.Text

		ht.PostString("http://192.168.1.5/insert_db.php","name="s(i))

اینم ارسال دیتا از سمت سرور با لیست

	For i=0 To cur.RowCount-1
		cur.Position=i

		lbl.Text=cur.GetString("names")

		l.AddAll(Array As String(cur.GetString("names")))
		
		ht.PostString("http://192.168.1.5/insert_db.php","name="&l)

Next

اینم جدول دیتابیسم

do.php?imgf=org-9ecb941964d01.png

دیوانه کرده منو یعنی

ممنون میشم راهنمایی بفرمایید ( فارغ از بهینه بودن یا نبودن متد )

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

بایگانی شده

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

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

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