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

AnswerCenter

مرکز پاسخگویی به سوالات برنامه نویسی

  • مرجع پاسخگویی
  • تولید آموزش
  • سفارش پروژه

درخواست سفارش پروژه

اطلاعیه

کاربر گرامی

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

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


بایگانی شده

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

  • 0
msd313

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

سوال

msd313    62

کاربر رو به رشد

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

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

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

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

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


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

پست های پیشنهاد شده

مجید آرتا    5,753

مدیر کل سایت

سلام

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

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

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

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

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


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

کاربر رو به رشد

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

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


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

کاربر رو به رشد

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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
مجید آرتا    5,753

مدیر کل سایت

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

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

اضافه کردنشم توی دیتابیس 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.

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

 

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

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

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


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

کاربر رو به رشد

در در 1397/10/25, 22:49:36، مجید آرتا گفته است :

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

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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
M-CAP7AIN    516

کاربر فعال

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

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


		echo $quantity;
    }

 

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


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

کاربر رو به رشد

در 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 کنم؟

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
M-CAP7AIN    516

کاربر فعال

در ۱ ساعت قبل، 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); 

    }

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

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


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

کاربر رو به رشد

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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
M-CAP7AIN    516

کاربر فعال

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

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

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

 

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

print_r($obj);

 

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


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

کاربر رو به رشد

در 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 />

 

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


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

کاربر رو به رشد

البته کد 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:        }

 

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


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

کاربر رو به رشد

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

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

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

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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
M-CAP7AIN    516

کاربر فعال

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

[0] => stdClass Object

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

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


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

کاربر رو به رشد

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

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


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

کاربر رو به رشد

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

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

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

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

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


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

کاربر رو به رشد

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

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

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

 

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


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

کاربر رو به رشد

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

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

 

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


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

×
×
  • جدید...