PDA

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



manager_66
شنبه 01 بهمن 1390, 02:00 صبح
سلام . من میخوام محصولاتی که وارد سبد خریدم شده رو به جدول انتقال بدم ولی یکخورده گیج شدم که باید چطور اینکارو بکنم / مثلا این محصولات درون سبد خریدمه : 81188

بعد چطور باید نام کالاها و تعدادشون رو برای هر کاربر در جدول ذخیره کنم ؟ این هم جدولی که میخوام این اطلاعات درونش ذخیره بشه : 81189

MMSHFE
شنبه 01 بهمن 1390, 08:38 صبح
سبد خرید رو کجا ذخیره میکنید؟ توی Session ؟

manager_66
شنبه 01 بهمن 1390, 10:15 صبح
آره . تو Session ذخیره میشه . این کدشه قرارگیری کالاها در session:


if(isset($_GET['do']) && $_GET['do']=="addcart")
{
$id = intval($_GET['id']);
if(isset($_SESSION['cart'][$id]))
{
$_SESSION['cart'][$id]['qty']++;
}else
{
$res=@mysql_query("SELECT * FROM `products` WHERE `id`='{$id}'");
if(mysql_num_rows($res)!=0)
{
$row=mysql_fetch_assoc($res);
if($row['price']>0)
{
$_SESSION['cart'][$row['id']]=array(
'qty' => 1 ,
'price' => $row['price']
);
}
}
}


این هم کد نمایش جدول :

<table class="ordertable">
<tr>
<th> نام </th>
<th> تعداد </th>
<th> قيمت </th>
<th> کل </th>
</tr>
<?php
$sql="SELECT * FROM `products` WHERE `id` IN(";
foreach($_SESSION['cart'] as $id => $value)
{
$sql.=$id.",";
}
$sql=substr($sql,0,-1).") ORDER BY `name` ASC";
$query=mysql_query($sql);
if($query)
{
$totalprice=0;
$tr=1;
while($row_r=mysql_fetch_assoc($query))
{
$subprice=$_SESSION['cart'][$row_r['id']]['qty']*$row_r['price'];
$totalprice+=$subprice;
if($tr%2==0)
echo '<tr style="background:#f8f8fc;">';
else
echo '<tr>';
?>
<td width="45%" style="text-align:right"><?php echo $row_r['name']; ?></td>
<td width="10%"><input type="text" maxlength="4" name="qty[<?php echo $row_r['id']; ?>]" class="ordervalue" value="<?php echo $_SESSION['cart'][$row_r['id']]['qty']; ?>"/></td>
<td width="25%"><?php echo $row_r['price']; ?></td>
<td width="25%"><?php echo $_SESSION['cart'][$row_r['id']]['qty']*$row_r['price']; ?></td>
</tr>
<?php
$tr++;
} // end of while fetch
} // end of if query
?>

</table>

payamsp
شنبه 01 بهمن 1390, 12:20 عصر
شما تو این حالت برای ثبت سفارشات باید دو تا جدول در نظر بگیرید
یک جدول برای نگه داشتن مشخصات مشتری و یک جدول هم برای محصولات مشتری
که با استفاده از یک کلید خارجی توی جدول محصولات مشتری می تونید متوجه بشید که کدوم مشتری چه محصولاتی رو خریده .

تو این روشی که شما نوشتید افزونگی داده بوجود خواهد اومد (به دلیل تکرار مشخصات مشتری) .

مثالی از فیلدهای جداول :
orders >> id, name,date,address,mobile,phone,otherFields
orders_products>> id,order_id,product_id,product_count,product_price

manager_66
شنبه 01 بهمن 1390, 12:52 عصر
من واسه پروژه این ترمم باید تا یک هفته دیگه تمومش کنم واسه همین افزونگی و ... مهم نیست چون قرار نیست سایت آپلود بشه . میشه فعلا یک راه خوب نمایش بدین که چطور تو یک جدول یا حالا دو تا جدول منظور راحتی کاره بتونم ذخیرش کنم . چون از اونطرف ادمین باید سفارشات رسیده هر مشتری رو چک کنه ببینه چی اومده . ممنون :قلب:

از اونطرف دیگه کالاهای خریده شده چطور باید وارد جدول بشن . یعنی به ازای هر کالا یک فیلد در جدول ذخیره بشه و تعداش هم نوشته بشه . مثلا در مثال بالا که 5 تا جنس در سبد خریده باید 5 بار عمل درج صورت بگیره ؟

djsaeedkhan
شنبه 01 بهمن 1390, 16:43 عصر
سلام
این یه پروژه ساده فروشگاه هست(دانشجویی)
فکر کنم اون چیزی که می خوای باشه
سبد خرید هم داره
ببین ازش استفاده کن.
فقط اینجا آموزش تحویل داده میشه و نه پروژه

با تشکر
35 تا دانلود و فقط 2 تا تشکر؟؟

لینک دانلود حذف شد (هرکس لینک می خواهد پیغام بگذارد)

manager_66
شنبه 01 بهمن 1390, 19:57 عصر
سلام
فکر کنم اون چیزی که می خوای باشه
سبد خرید هم داره
فقط اینجا آموزش تحویل داده میشه و نه پروژه

با تشکر8122681227

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

djsaeedkhan
یک شنبه 02 بهمن 1390, 10:21 صبح
سلام
دوست من خوب می تونی از دیتابیسش استفاده کنی
ببین ساختارش چطوره

manager_66
چهارشنبه 05 بهمن 1390, 02:12 صبح
خوب من کالا ها رو در جدول ذخیره کردم . تعداد شون رو هم همینطور . یعنی کالا ها در یک ستون از جدول به نام products و تعداد کالا ها در یک ستون از جدول بنام tedad ذخیره میشن . نحوه ذخیرشون هم به این شکله :مثلا تو ستون products کد کالا درج میشه به این شکل : 541,547,254,201 و تو ستون tedad، تعداد کالاهای مورد تقاضا درج میشه به این شکل : 2,4,5,6 . یعنی از کالای کد 201 6 عدد سفارش شده ،از کالای کد 254 5عدد سفارش شده و ... . حالا تو صفحه ادمینم چطور این مقادیر رو بشکنم و تعداد رو به کد کالاها مرتبط کنم . مثلا میخوام نمایش جزیی تری داده بشه و بگه کالای کد 201 اسمش شامپو هست و 6 عدد سفارش شده و کالای کد 254 اسمش رب هست و 5 عدد سفارش شده و ... . چطور باید این کار رو بکنم . متشکرم :قلب:

MMSHFE
چهارشنبه 05 بهمن 1390, 07:37 صبح
$products = preg_split('#,#', $row['products']);
$tedad = preg_split('#,#', $row['tedad']);
$count = min(count($products), count($tedad));
for($i = 0; $i < $count; $i++) {
$name = mysql_result(mysql_query("SELECT `name` FROM `products` WHERE (`id`='{$products[$i]}') ORDER BY `id` LIMIT 1"), 0, 0);
echo "Product #{$products[$i]} ({$name}) - Tedad: {$tedad[$i]}<br/>\n";
}

manager_66
چهارشنبه 05 بهمن 1390, 12:55 عصر
متشکرم از وقتی که گذاشتین . چند تا سوال واسم پیش اومد :

1- این کد چیکار میکنه و بجای شارپ چه مقادیری قرار میگیره ؟
$products = preg_split('#,#', $row['products']); 2- این خط چکار میکنه ؟


$name = mysql_result(mysql_query("SELECT `name` FROM `products` WHERE (`id`='{$products[$i]}') ORDER BY `id` LIMIT 1"), 0, 0);

MMSHFE
چهارشنبه 05 بهمن 1390, 13:11 عصر
اون کد رشته ['row['products$ (فیلد products از رکوردی که خوندین) رو برحسب کارکتر , تفکیک میکنه و بصورت یک آرایه میریزه داخل products$
کد دوم هم از جدول products فیلد name رکوردی که id اون توی جدول خرید ذخیره شده، استخراج میکنه و توی متغیر name$ ذخیره میکنه.
موفق باشید.