PDA

View Full Version : سوال: ذخیره اطلاعات موجود در سشن در دیتابیس



famarini
جمعه 14 بهمن 1390, 05:59 صبح
با سلام به همه دوستان

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




$order_id = get_latest_order();

foreach ($_SESSION as $key => $value)
{
$product_id = substr($key, 5, (strlen($key)-5));
$quantity = $value;

$query = mysql_query("INSERT INTO `ordered_carts`
(`order_id`,`product_id`,`quantity`)
VALUES
('$order_id','$product_id','$quantity')");

echo 'code : '.$product_id . ' as ' . $quantity .'<br />';
}

MMSHFE
جمعه 14 بهمن 1390, 09:51 صبح
میشه بگین چه اطلاعاتی توی Session برای سبد خرید اضافه کردین؟ اگه یک آرایه ایجاد کردین، باید همون عنصر از آرایه رو با foreach پیمایش کنید نه کل SESSION_$ رو.
موفق باشید.

famarini
جمعه 14 بهمن 1390, 14:38 عصر
سلام

ممنون از جواب اما من فقط کد محصول و تعداد سفارش اون محصول رو توی سشن می ریزم با این دستور بالا یکی یکی می خونم و می خوام توی دیتابیس ریخته بشه اما فقط اولین کد و تعداد ذخیره می شه و دومی ذخیره نمی شه. من با echo بعد از Insert می خونمش می بینم اوکی هست اما دستور insert فقط یکبار اجرا می شه.

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

MMSHFE
جمعه 14 بهمن 1390, 15:50 عصر
میدونم. همون کدی که کالا رو توی سشن میگذاره رو اگه میشه بنویسید تا ببینم چطور توی سشن میگذارین و طبق کد خودتون راهنمایی کنم.

akbarg64
جمعه 14 بهمن 1390, 19:23 عصر
ميشه به منم كمك كنيد با اين نمونه اگه توضيح بدين ممنون ميشم.هم من ميفهمم هم بقيه دوستان يه نمونه بسيار ساده هم هست.من خودم فكر ميكنم با اين كد بشه اما نميشه چون بعضي جاهاش مشكل داره

$orderId = اينجا بايد آيدي ريكوردي كه در orders ثبت شده بدست بياريم.چه جوري؟؟();

if ($orderId) {

for ($i = 0; $i < $انجا هم تعدادش; $i++) {
$sql = "INSERT INTO order_detail(orderid, productid, quantity)
VALUES ($orderId, {$productid[$i]['productsid']}, {$productid[$i]['quantity']})";

}
ممنون ميشم

famarini
شنبه 15 بهمن 1390, 11:23 صبح
با سلام مشکل من سر بی احتیاطی توی طراحی دیتابیس بود و حل شد.

اینم بخشی که نیاز داشتی.




function get_latest_order()
{
$q = "SELECT `order_id` FROM `orders` ORDER By `order_id` DESC LIMIT 1";
$r = mysql_query($q);
$row = mysql_fetch_assoc($r) or die(mysql_error());
return $row['order_id'];
}

$orderId = get_latest_order();

if ($orderId) {
if (count($productid) > 0)
{
for ($i = 0; $i < $انجا هم تعدادش; $i++)
{
$sql = "INSERT INTO order_detail(orderid, productid, quantity)
VALUES ($orderId, {$productid[$i]['productsid']}, {$productid[$i]['quantity']})";

}
}



اگه بازم مشکلی داشتی بگو. موفق و پیروز باشی