اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

 برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


  • 0
msd313

ثبت اطلاعات سبد خرید دیتابیس آفلاین در آنلاین

سوال

با سلام خدمت همه دانشمندان عزیز

راستش من یه فروشگاه دارم درست میکنم
کاربر میاد چند تا محصول به سبد خرید اضافه میکنه
من اومد برای سبد خرید از دیتابیس آفلاین استفاده کردم که هر محصول رو اگه خواست ذخیره میکنه و محصول جدید رو انتخاب میکنه
حالا میخوام این محصولات رو که فرض میکنیم 3 محصول باشه رو بفرستم به دیتابیس آفلاین
کد B4A این عملیات چی میشه؟
و همچنین کد php این کار ؟

چون برای یک محصول راحته و بلدم ولی وقتی چند محصول میشه یعنی جدول 3 بار باید پر بشه واینو نمیدونم

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

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


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

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

  • 0

سلام

کد خاصی نمیخواد.

کار با دیتابیس رو که یاد دارید دیگه ؟

توی یک جدول این اطلاعات رو اضافه کنید.

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

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


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

من الآن به عنوان کاربر 3 تا محصول رو توی دیتا بیس آفلاین برنامه ثبت کردم
حالا میخوام با کلیک بر روی نهایی کردن خرید این 3 محصول رو بفرستم به php و اون توی دیتابیس ثبت کنه
اون کدی که داخل دکمه نهایی کردن خرید باید بنویسم رو نمیدونم و همچنین کد php که سه تا محصول رو همزمان توی دیتابیس ثبت کنه رو هم نمیدونم

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


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

دوست عزیز شما باید از دستور wait for برای ارسال استفاده کنی در b4a و در تیبل انلاین ذخیره و serialize کنی و تو یه جدول دیگه بر اساس ایدی ذخیره کنی

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


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

خب اون سه تا محصول رو بریز توی یک متغیر لیست

بفرست سمت وب سرویس.

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

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

کد php  شم که توی وب موجوده.

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

توی وب سرویس هم جیسون رو بخونید و با حلقه اطلاعات رو بریزید توی دیتابیس

زیاد مبحث سخت و پیچیده ای نداره.حلقه توی php  رو یاد بگیرید و insert  کردن اطلاعات توی دیتابیس

یکی هم خوندن اطلاعات جیسون از سمت اندروید که میتونید به صورت get  یا post  این کارو انجام بدین.

 

کد ارسال جیسون به سرور ( مثال ):

Private data As Map
Dim OrderList As List
OrderList.Initialize
Dim cr As Cursor
For i = 0 To cr.RowCount - 1
	cr.Position = i
	data.Initialize
	data.Put("product",cr.GetString("ProductName"))
	data.Put("quantity", cr.GetInt("Quantity"))
	data.Put("amount",cr.GetString("Amount"))
	OrderList.Add(data)
Next

Private Generator As JSONGenerator
	Generator.Initialize2(OrderList)
	If IsPost Then
		http.PostString("http://site.com/webservice.php","MyJSON=" & Generator.ToString)
	Else
		http.Download2("http://site.com/webservice.php",Array As String("MyJSON",Generator.ToString))
	End If

 

کد php شم خودتون تست کنید من مستقیما از W3Schools  کپی کردم و تستی انجام ندادم:

<?php
header("Content-Type: application/json; charset=UTF-8");
$obj = json_decode($_GET["MyJSON"], false); 


#write code for get data from json


?>

اگه بخوایید گت باشع که $_GET  اگر پست خواستید $_POST.

در ادامه حلقتونو مینویسید و اطلاعات جیسون رو توی دیتابیستون درج میکنید.

 

در ضمن شما باید دیتابیستون رو طوری طراحی کنید که چندین مخصول رو بتونید برای یک سفارش در نظر بگیرید و بالعکس.

یک سرچ ساده درمورد نرمال سازی پایگاه داده بزنید اولین مثالی که زده میشه همین موضوع فروشگاه و محصول هستش و راحت میتونید پایگاه دادتونو تا یک سطح مناسب نرمالسازی کنین.

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
در در 1397/10/25, 22:49:36، مجید آرتا گفته است :

در ادامه حلقتونو مینویسید و اطلاعات جیسون رو توی دیتابیستون درج میکنید.

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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
    $obj = json_decode($_GET["MyJSON"], false); 

    foreach ($obj as $mydata) {
        $product 	= $mydata['product'];
        $quantity 	= $mydata['quantity'];
        $amount 	= $mydata['amount'];


		echo $quantity;
    }

 

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
در 13 ساعت قبل، M-CAP7AIN گفته است :

    $obj = json_decode($_GET["MyJSON"], false); 

    foreach ($obj as $mydata) {
        $product 	= $mydata['product'];
        $quantity 	= $mydata['quantity'];
        $amount 	= $mydata['amount'];


		echo $quantity;
    }

 

خیلی ممنون دوست عزیز من میخوام بدونم اینجا چطوری باید اینا رو توی دیتابیس insert کنم؟

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
در ۱ ساعت قبل، msd313 گفته است :

خیلی ممنون دوست عزیز من میخوام بدونم اینجا چطوری باید اینا رو توی دیتابیس insert کنم؟

    $obj = json_decode($_GET["MyJSON"], false); 

    foreach ($obj as $mydata) {
        $product 	= $mydata['product'];
        $quantity 	= $mydata['quantity'];
        $amount 	= $mydata['amount'];


	sql = "INSERT INTO `tablename` (product, quantity, amount) VALUES (".$product.", ".$quantity." , ".$amount." )";
	mysqli_query($conn, $sql); 

    }

نمونه ساده کوئری.

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


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

خیلی ممنون دوست خوبم
متاسفانه php از خطی که foreach هست ایراد میگیره و خطای زیر رو میده:
Invalid argument supplied for foreach()

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
در 1 دقیقه قبل، msd313 گفته است :

خیلی ممنون دوست خوبم
متاسفانه php از خطی که foreach هست ایراد میگیره و خطای زیر رو میده:
Invalid argument supplied for foreach() 

جیسون دریافتی رو چاپ کنید ، احتمالا دیکد جیسون درست نیست.

 

بعد دیکد جیسون پرینت کنید ارایه obj رو

print_r($obj);

 

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
در 2 ساعت قبل، M-CAP7AIN گفته است :

print_r($obj);

این کد رو اضافه کردم زیر دیکد جیسون
و توی برنامه خودم لاگ گرفتم و اینها رو بر گردوند:
 

shop : Array
(
    [0] => stdClass Object
        (
            [nam] => محصول 1
            [gheymat] => 86000
            [tedad] => 2
        )
    [1] => stdClass Object
        (
            [nam] => محصول 2
            [gheymat] => 27000
            [tedad] => 3
        )
)
<br />
<b>Fatal error</b>:  Cannot use object of type stdClass as array in <b>/home/xxx/public_html/xxx.php</b> on line <b>29</b><br />

 

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


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

البته کد php هم بصورت زیر هستش:
 

25:        $obj = json_decode($_POST["mybasket"], false);
26:        print_r($obj);
27:        foreach ($obj as $mydata)
28:        {
29:            $nam 	= $mydata['nam'];
30:            $tedad 	= $mydata['tedad'];
31:            $gheymat = $mydata['gheymat'];
32:            mysqli_query($con,"INSERT INTO shop(nam,tedad,gheymat) VALUES('.$nam.','.$tedad.','.$gheymat.')");
33:        }

 

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


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

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

در 58 دقیقه قبل، msd313 گفته است :

$obj = json_decode($_POST["mybasket"], false);

فقط باید به جای false در کد بالا true می نوشتم.
تشکر ویژه از مجید آرتاوM-CAP7AIN

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


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

یه نکته هم اشاره کنم ، اینجا آرایه جیسون دیکد شده به صورت آبجکت هست (با یه روش دیگه میشه آبجکت رو گرفت)

[0] => stdClass Object

با True شدن مقدار دیکد ، (آبجکت به آرایه تبدیل میشه)

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
در 4 ساعت قبل، msd313 گفته است :

کد رو بذار ببینیم ایراد از کجاست

$obj=json_decode($_POST['json'],true);
print_r($obj);
var_dump($obj);

الان از $_POST وقتی اکو میشه مقادیر رسال شده ولی رو print_r مقدار تهی میده و وقتی var میگیرم null میده

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
در 12 ساعت قبل، M-CAP7AIN گفته است :

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

نه درسته وقتی echo میکنم مقدار دریافتی همون کپی میکنم تو کار میکنه ؟

 

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


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

من این مشکل رو داشتم اینطور حل شد:
 

$obj = json_decode($_POST["json"], true);
foreach($obj as $myobj)
var_dump($myobj);

 

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


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

مطالب شما نیاز است به تایید مدیران برسد

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

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از ۷۵ اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.