آموزش ساخت سبد خرید در PHP - قسمت اول

31 شهریور 1397
php-cart

در این قسمت به ساخت سبد خرید در PHP می پردازیم. برای این کار ابتدا باید به سراغ دکمه "هم اکنون می خرید" برویم. برای درک بهتر به تصویر زیر نگاه کنید. در تصویر با استفاده از فلش قرمز رنگ "هم اکنون می خرید" برجسته تر شده است.

آموزش ساخت سبد خرید در PHP

دقت کنید کار ما در این قسمت آموزشی این است که وقتی کاربر (مشتری) بر روی دکمه "هم اکنون می خرید" فشار داد، محصول مورد نظرش به سبد خریدش اضافه شود و یک پیام موفقیت این عملیات نیز به کاربر نمایش داده شود. پس باید مراحل زیر را باید به ترتیب انجام دهید.

افزودن محصولات به سبد خرید در PHP

قبل از همه چیز ما باید ابتدا یک جدول داده ای تحت عنوان cart ایجاد کنیم که وقتی کاربر (مشتری) بر روی دکمه "هم اکنون می خرید" فشار داد، هم مشخصات خود کاربر و هم مشخصات محصول مورد نظرش، در این جدول به عنوان یک رکورد ذخیره شود.

پس ما 3 ستون اساسی باید برای جدول cart ایجاد کنیم که در ادامه آورده ام.

p_id ip_add qty
شماره id محصول است و از نوع int به اندازه 10 آدرس ip کاربر است که با varchar به اندازه 255 می باشد تعداد خرید از محصول از نوع int و به اندازه 10 می باشد.

در مورد فیلد qty در جلسه آموزشی بعدی به طور کامل توضیح می دهم.

دقت کنید که تنها راهی که می توان کاربر را شناخت از طریق ip است که با آن وارد سایت ما می شود. برای اینکه محصول را نیز بتوانیم شناسایی کنیم باید از id محصول کمک بگیریم. در مورد به دست آوردن id محصول، در قسمت های قبل به طور کامل توضیح داده ام. اما در مورد نحوی به دست آوردن ip کاربر، در ادامه این قست آموزشی به شما به طور کامل آموزش می دهم.

ایجاد جدول cart در پایگاه داده برای ساخت سبد خرید در PHP

خب برویم سراغ ایجاد جدول cart. برای انجام اینکار ابتدا باید یک جدول جدید به نام cart را به پایگاه داده ecommerce اضافه نماییم.

برای اینکار بعد از اینکه wamp را روشن کردید به آدرس http://localhost/phpmyadmin بروید و پایگاه داده ی eccomerce را باز کنید و در قسمت سمت راست در ناحیه Create table درون کادر Name کلمه cart را بنویسید و در قسمت Number of columns عدد 3 که نشان دهنده ی تعداد فیلد های شماست را وارد کنید. سپس بر روی دکمه Go فشار دهید.

افزودن چدول cart‌ به پایگاه داده فروشگاه اینترنتی با php

بعد از فشار دادن دکمه Go به صفحه ای شبیه به تصویر زیر هدایت می شوید. به مقادیری که من در هر کدام از کادرها داده ام، دقت کنید. شما هم به همین شکل مقدار دهی را انجام دهید و دقت کنید که p_id را به عنوان کلید اصلی (PRIMARY) در نظر بگیرید.

بعد از تنظیم کردن مقادیر بر روی دکمه save فشار دهید.

کار ساخت جدول داده ایی cart به پایان رسید. اکنون باید به سراغ کد نویسی های مورد نیاز برویم.

ساخت توابع مورد نیاز

بعد از ایجاد جدول بالا باید به سراغ فایل functions.php برویم و آن را با استفاده از Notepad++ باز کنیم. به انتهای فایل functions.php بروید و قبل از ?> توابع مورد نیاز خودمان را اضافه می کنیم.

ابتدا تابعی که بتواند ip کاربر را بگیرید و دوم تابعی که وقتی کاربر مشخص بر روی دکمه "هم اکنون می خرید" فشار داد ، مشخصات ip کاربر و id محصول را در جدول داده ای cart قرار دهد.

علاوه بر این باید یک کپی از محصولات انتخابی کاربر روی کوکی ذخیره کنیم که درباره کوکی در فصل های آینده صحبت می کنیم.

تابع getIp()

برای به دست آوردن ip کاربران از تابع زیر استفاده کردم. فایل functions.php را باز کنید و کدهای زیر را در آن قرار دهید.

	//getting IP User
	function getIp()
	{
//whether ip is from remote address		
		$ip=$_SERVER['REMOTE_ADDR'];

//whether ip is from share internet		
		if(!empty($_SERVER['HTTP_CLIENT_IP']))
		{
			$ip=$_SERVER['HTTP_CLIENT_IP'];
		}

//whether ip is from proxy		
		elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
		{
			$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];	
		}
		return $ip;
	}

همانطور که در جلسات قبلی خدمت شما عرض کردم $_SERVER یک آرایه فوق سراسری در php می باشد که مقادیر خاصی را می پذیرد. برای شما نمونه هایی از مقادیری که این آرایه می پذیرد را از سایت w3schools در جدول زیر آورده ام:

نام فایل (filename) در حال اجرا را (نسبت به ریشه سایت ) بر می گرداند. $_SERVER['PHP_SELF']
برای شما ip سرور (ip هاست شما) را باز می گرداند. $_SERVER['SERVER_ADDR']
ip کاربران را باز میگرداند. $_SERVER['REMOTE_ADDR']
با استفاده از این مقدار می توانید بفهمید که کاربری که وارد سایت شما شده است از چه سایتی آمده است. $_SERVER['HTTP_REFERER']
مسیر مطلق فایل در حال اجرا را بر می گرداند $_SERVER['SCRIPT_FILENAME']
 ip کاربرانی را باز می گرداند که از پراکسی سرور ها استفاده کرده اند. $_SERVER['HTTP_X_FORWARDED_FOR']
 ip کاربری را باز می گرداند زمانی که از یک اینترنت اشتراکی استفاده می کند. $_SERVER['HTTP_X_FORWARDED_FOR']

با استفاده از جدول بالا به راحتی تابع getIp() را درک خواهید کرد. بعد از نوشتن تابع getIp() می توانیم در هر کجا که دوست دارید این تابع را echo کنید تا ip کاربر سایت را مشاهده نمایید. مثلا من در هدر سایت اینکار را کردم.

گرفتن ip کاربر با PHP

البته بعد از آزمایشی که انجام دادید echo آن را پاک کنید.

تابع cart() برای ایجاد سبد خرید در PHP

بعد از تابع getIp() ، نوبت به نوشتن تابع Cart() می رسد. کار این تابع این است که id محصول و ip کاربری (منظورم مشتری سایت است) که آن را خریداری کرده را در جدول داده ای cart قرار می دهد. در واقع این تابع یک سبد خرید در PHP برای کاربران ایجاد می کند.

اگر کاربر برای اولین بار است که محصول را برای خرید انتخاب می کند، یک رکورد به جدول cart اضافه کند، در غیر اینصورت اگر برای بار دوم (یا بار چندم) است که دکمه “هم اکنون بخرید” یک محصول را زده باشد ، نباید رکورد جدیدی اضافه شود . این کار از تکرار رکورد در جدول cart جلوگیری می کند.

	//creating the shopping cart
	//import attribute product and IP address user with press buy button in cart table
	function cart()
	{
		global $con;
		
		if(isset($_GET['add_cart']))
		{
			$pro_id=$_GET['add_cart'];
			
			//creating or using cookie 
			if(isset($_COOKIE["ipUserEcommerce"]))
			{
				$ip	= $_COOKIE["ipUserEcommerce"];
			}else{
				$ip=getIp();
				setcookie('ipUserEcommerce',$ip,time()+1206900);
			}
			
			$check_pro="select * from cart where p_id='$pro_id' AND ip_add='$ip' ";
			$run_check=@mysqli_query($con,$check_pro);
			if(@mysqli_num_rows($run_check)>0)
			{
				echo "";
			}
			else
			{
				$insert_pro="insert into cart (p_id,ip_add,qty)values('$pro_id','$ip',1)";
				$run_insert_pro=@mysqli_query($con,$insert_pro);
			}
		}
	}

اگر شما قسمت های گذشته آموزش ساخت فروشگاه اینترنتی با php را مطالعه کرده باشید به راحتی کد های بالا را متوجه می شوید. اما بخشی از این کدها مربوط به ذخیره سازی محصولات در کوکی مرورگر کاربر است که در زیر آورده ایم. این قطعه کد باعث می شود که با استفاده از cookie ها بتوانیم اطلاعاتی را در مرورگر مشتری ذخیره کنیم تا اگر زمانی ip مشتری به هر دلیلی دچار تغییر شد، اطلاعات (محصولاتی که مشتری در سبد خرید خودش قرار می دهد) از بین نرود.

دقت کنید که این اطلاعات تا زمان دو هفته ( در واقع دوهفته به ثانیه، عدد 1209600 می شود ) در cookie های مرورگر مشتری ذخیره می گردد.

//creating or using cookie 
			if(isset($_COOKIE["ipUserEcommerce"]))
			{
				$ip	= $_COOKIE["ipUserEcommerce"];
			}else{
				$ip=getIp();
				setcookie('ipUserEcommerce',$ip,time()+1206900);
			}

برای درک این قسمت باید قسمت "معرفی آرایه های فوق سراسری Session و Cookie در PHP " را مطالعه نمایید.

البته برای اینکه تابع cart() بتواند به درستی کار کند باید در فایل functions.php به دنبال کد زیر باشید. ما در تابع getPro() خط زیر را داریم.

<div class='buynow'><a href='#'>هم اکنون می خرید</a></div>

و آن را به صورت زیر تغییر دهید.

<div class='buynow'><a href='index.php?add_cart=$pro_id'>هم اکنون می خرید</a></div>

و در تابع getCatPro() خط زیر را داریم

<div class='buynow'><a href='#'>هم اکنون می خرید</a></div>

و آن را به صورت زیر تغییر می دهیم.

<div class='buynow'><a href='details.php?add_cart=$pro_id'>هم اکنون می خرید</a></div>

و در تابع getBrandPro() هم باید خط زیر را پیدا کنید

<div class='buynow'><a href='#'>هم اکنون می خرید</a></div>

سپس آن را با کد زیر جایگزین کنید.

<div class='buynow'><a href='details.php?add_cart=$pro_id'>هم اکنون می خرید</a></div>

خب کار ما با فایل functions.php به پایان رسید. حالا باید فایل details.php را باز و خط زیر را در آن پیدا کنیم.

<div class='buynow'><a href='#'>هم اکنون می خرید</a></div>

و آن را پاک کنید و خط زیر را به جای آن قرار دهید.

<div class='buynow'><a href='index.php?add_cart=$pro_id'>هم اکنون می خرید</a></div>

در نهایت فایل functions.php باید کد های زیر را داشته باشد.

<?php

$con=mysqli_connect("localhost","root","","ecommerce");
	if(mysqli_connect_errno())
	{
		echo "ارتباط با پایگاه داده برقرار نیست . شماره خطا :".mysqli_connect_errno();
	}

	//getting categories
	function getCat()
	{
		global $con;
		$get_cat="select * from categories";
		//for persion languge
		$run_cat=@mysqli_query($con,"SET NAMES utf8");
		$run_cat=@mysqli_query($con,"SET CHARACTER SET utf8");
		$run_cat=@mysqli_query($con,$get_cat);
		while($row_cat=@mysqli_fetch_array($run_cat))
		{
			$cat_id=$row_cat['cat_id'];
			$cat_title=$row_cat['cat_title'];
			echo "<li><a href='index.php?cat_id=$cat_id'>$cat_title</a></li>";
		}
		
	}

	//getting brands
	function getBrand()
	{
		global $con;
		$get_brand="select * from brands";
		$run_brand =@mysqli_query($con,"SET NAMES utf8");
		$run_brand =@mysqli_query($con,"SET CHARACTER SET utf8");
		$run_brand=@mysqli_query($con,$get_brand);
		while($row_brand=@mysqli_fetch_array($run_brand))
		{
			$brand_id=$row_brand['brand_id'];
			$brand_title=$row_brand['brand_title'];
			echo "<li><a href='index.php?brand_id=$brand_id'>$brand_title</a></li>";
		}
	}

	//display products
	function getPro()
	{
	
		global $con;
		
		//display products when not set cat_id and brand_id
		if((!isset($_GET['cat_id']))&&(!isset($_GET['brand_id']))){
			$get_pro="select * from products order by RAND() LIMIT 0,6";
			$run_pro=@mysqli_query($con,"SET NAMES utf8");
			$run_pro=@mysqli_query($con,"SET CHARACTER SET utf8");
			$run_pro=mysqli_query($con,$get_pro);
			echo"<h2>جدیدترین محصولات</h2>";
			while($row_pro=mysqli_fetch_array($run_pro))
			{
				
				$pro_id=$row_pro['product_id'];
				$pro_cat=$row_pro['product_cat'];
				$pro_brand=$row_pro['product_brand'];
				$pro_title=$row_pro['product_title'];
				$pro_price=$row_pro['product_price'];
				$pro_desc=$row_pro['product_desc'];
				$pro_image=$row_pro['product_image'];
				
				echo"
				<div class='product_box'>
					<h3>$pro_title</h3>
					<img width='200' height='150' src='Admin_area/$pro_image' alt='image' />
					<div class='price'>قیمت:<span>$pro_price تومان</span></div>                           
					<div class='buynow'><a href='index.php?add_cart=$pro_id'>هم اکنون می خرید</a></div>
					<a href='details.php?product_id=$pro_id'>جزئیات</a>
				</div>";
			}
		}
	}


	//display products when set cat_id 
	function getCatPro()
	{	
		global $con;
		if(isset($_GET['cat_id'])){
			
			$pro_cat_id=$_GET['cat_id'];
			//query getting products of cat
			$get_pro="select * from products where 	product_cat='$pro_cat_id' ";
			
			//query getting name of category
			$get_cat_name="select cat_title from categories where cat_id='$pro_cat_id' ";
			
			$run_pro=@mysqli_query($con,"SET NAMES utf8");
			$run_pro=@mysqli_query($con,"SET CHARACTER SET utf8");
			$run_pro=mysqli_query($con,$get_pro);
			$run_cat_name=mysqli_query($con,$get_cat_name);
			
			//display name of category
			while($row_cat_name=mysqli_fetch_array($run_cat_name))
			{
				$pro_cat_name=$row_cat_name['cat_title'];
				echo"<h2>$pro_cat_name</h2>";
			}			
			
			//display message when empty of category
			$cunt_pro_cat=mysqli_num_rows($run_pro);
			if($cunt_pro_cat==0)
			{
				echo"<br/><br/><b><h3>متاسفانه محصول خاصی در این دسته وجود ندارد</h3></b>";			
			}
						
			//display products of category
			while($row_pro=mysqli_fetch_array($run_pro))
			{
				
				$pro_id=$row_pro['product_id'];
				$pro_cat=$row_pro['product_cat'];
				$pro_brand=$row_pro['product_brand'];
				$pro_title=$row_pro['product_title'];
				$pro_price=$row_pro['product_price'];
				$pro_desc=$row_pro['product_desc'];
				$pro_image=$row_pro['product_image'];
				
				echo"
				<div class='product_box'>
					<h3>$pro_title</h3>
					<img width='200' height='150' src='Admin_area/$pro_image' alt='image' />
					<div class='price'>قیمت:<span>$pro_price تومان</span></div>                           
					<div class='buynow'><a href='index.php?add_cart=$pro_id'>هم اکنون می خرید</a></div>
					<a href='details.php?product_id=$pro_id'>جزئیات</a>
				</div>";
			}
		}
		
	}

	//display products when set brand_id
	function getBrandPro()
	{	
		global $con;
		if(isset($_GET['brand_id'])){
			
			$pro_brand_id=$_GET['brand_id'];
			//query getting products of brand
			$get_pro="select * from products where 	product_brand='$pro_brand_id' ";
			
			//query getting name of brand
			$get_brand_name="select brand_title from brands where brand_id='$pro_brand_id' ";
			
			$run_pro=@mysqli_query($con,"SET NAMES utf8");
			$run_pro=@mysqli_query($con,"SET CHARACTER SET utf8");
			$run_pro=mysqli_query($con,$get_pro);
			$run_brand_name=mysqli_query($con,$get_brand_name);
			
			//display name of brand
			while($row_brand_name=mysqli_fetch_array($run_brand_name))
			{
				$pro_brand_name=$row_brand_name['brand_title'];
				echo"<h2>$pro_brand_name</h2>";
			}
			
			//display message when empty of brand
			$cunt_pro_brand=mysqli_num_rows($run_pro);
			if($cunt_pro_brand==0)
			{
				echo"<br/><br/><b><h3>متاسفانه محصول خاصی در این برند وجود ندارد .</h3></b>";			
			}
							
			//display products of brand
			while($row_pro=mysqli_fetch_array($run_pro))
			{
				
				$pro_id=$row_pro['product_id'];
				$pro_cat=$row_pro['product_cat'];
				$pro_brand=$row_pro['product_brand'];
				$pro_title=$row_pro['product_title'];
				$pro_price=$row_pro['product_price'];
				$pro_desc=$row_pro['product_desc'];
				$pro_image=$row_pro['product_image'];
				
				echo"
				<div class='product_box'>
					<h3>$pro_title</h3>
					<img width='200' height='150' src='Admin_area/$pro_image' alt='image' />
					<div class='price'>قیمت:<span>$pro_price تومان</span></div>                           
					<div class='buynow'><a href='index.php?add_cart=$pro_id'>هم اکنون می خرید</a></div>
					<a href='details.php?product_id=$pro_id'>جزئیات</a>
				</div>";
			}
		}
	}
	

	//getting IP User
	function getIp()
	{
//whether ip is from remote address		
		$ip=$_SERVER['REMOTE_ADDR'];

//whether ip is from share internet		
		if(!empty($_SERVER['HTTP_CLIENT_IP']))
		{
			$ip=$_SERVER['HTTP_CLIENT_IP'];
		}

//whether ip is from proxy		
		elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
		{
			$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];	
		}
		return $ip;
	}

		//creating the shopping cart
	//import attribute product and IP address user with press buy button in cart table
	function cart()
	{
		global $con;
		
		if(isset($_GET['add_cart']))
		{
			$pro_id=$_GET['add_cart'];
			
			//creating or using cookie 
			if(isset($_COOKIE["ipUserEcommerce"]))
			{
				$ip	= $_COOKIE["ipUserEcommerce"];
			}else{
				$ip=getIp();
				setcookie('ipUserEcommerce',$ip,time()+1206900);
			}
			
			$check_pro="select * from cart where p_id='$pro_id' AND ip_add='$ip' ";
			$run_check=@mysqli_query($con,$check_pro);
			if(@mysqli_num_rows($run_check)>0)
			{
				echo "";
			}
			else
			{
				$insert_pro="insert into cart (p_id,ip_add,qty)values('$pro_id','$ip',1)";
				$run_insert_pro=@mysqli_query($con,$insert_pro);
			}
		}
	}
	
	
?>

خب تا اینجا عالی پیش رفتیم، آخرین کاری که باید انجام دهید این است که فایل header.php را باز کرده و خط زیر را در آن پیدا کنید.

        <div id="templatemo_shopping_cart">
       	    Shopping Cart <span>(<a href="#">3 items</a>)</span>
</div>

آن را پاک کنید و خط زیر را به جای آن قرار دهید.

        <div id="templatemo_shopping_cart">
			 <?php  
				if(isset($_GET['add_cart'])){
					cart();
					echo " محصول مورد نظر شما به سبد خرید اضافه شد.";
				}
			 ?>
        </div>

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

پیام نمایش داده شده به هنگام خرید یک محصول

خب به انتهای این قسمت از آموزش ساخت سبد خرید در PHP رسیدیم. انشاالله که با کد زنی و تحقیق بیشتر ، عمق اطلاعات خودتان را بالاتر ببرید. اگر در هر کجا برای شما مشکلی پیش آمد و یا سوالی داشتید در قسمت نظر دهی عنوان کنید تا جواب مناسب را به شما بدهم. در قسمت آینده به سراغ کادر سبد خرید خواهیم رفت. قسمت بعدی را از دست ندهید. موفق باشید.

تمام فصل‌های سری ترتیبی که روکسو برای مطالعه‌ی دروس سری فروشگاه اینترنتی با PHP توصیه می‌کند:
نویسنده شوید

دیدگاه‌های شما (7 دیدگاه)

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

Malihe
25 بهمن 1399
سلام. می خواستم اگه میشه یکم در مورد مفهوم این قسمت کد این جلسه توضیح بدین: if(@mysqli_num_rows($run_check)>0) { echo ""; }شما دارین میگین اگه ارتباط با پایگاه برقرار شد وهمه چیز okشد چیزی رو نمایش نده؟ چرا؟مگه نباید به جایecho "";می گذاشتیم $insert_pro="insert into cart (p_id,ip_add,qty)values('$pro_id','$ip',1)"; $run_insert_pro=@mysqli_query($con,$insert_pro); }

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

محمد
04 شهریور 1399
سلام الان این سبد خرید براساس ایپی هست یعنی کاربر نمیتونه از ی سیستم دیگه سبد خریدش رو ببینه؟

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

جهانگیر پچکم
05 شهریور 1399
سلام به شما دوست عزیزم دقت کنید وقتی کاربر از سیستم خارج میشه باید دوباره با استفاده از ایمیل و رمز عبور وارد پروفایلش بشه، اونجاس که تمامی محصولات از دوباره برای اون بالا می یاد. این موارد، یعنی ثبت نام در سایت و ایجاد پروفایل در قسمت های آینده توضیح داده شده. انشاالله با مرور و یادگیری آنها، مشکل شما حل میشه. انشاالله موفق باشید، جهانگیر پچکم

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

علی
12 اردیبهشت 1399
با سلام خدمت اقای جهانگیر پچکم ip ادرس تو سیستم بنده به صورت 1:: نشون داده میشه واینطوری ذخیره میشه.ایراد کار از کجاست؟ ممنون میشم زود جواب بدین

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

جهانگیر پچکم
14 اردیبهشت 1399
با سلام به شما دوست گلم هیچ ایرادی وجود نداره عزیزم، این IP به نام‌های localhost و loopback address شناخته شده است. و وقتی که قالب در حالت localhost باشه، باید به این شکل باشه، اما کافی هست که شما یک host واقعی خریداری کنید و قالب را روی آن اجرا کنید، اون وقت این ip دیگه به این شکل نمی مونه و تغییر می کنه.

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

محمد
07 دی 1398
سلام برای وبلاگ بیان هم میشه سبد خرید ایجاد کرد؟

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

جهانگیر پچکم
08 دی 1398
سلام به شما دقت کنید که این گونه وبلاگ ها هر چه قدر هم بتونن امکانات زیادی برای شما فراهم کنن، باز هم خیلی خیلی از آزادی عمل شما رو می گیرن. دقت کنید این گونه وبلاگها شبیه وردپرس هستن، وردپرس درسته که امکانات زیادی داره ولی ممکنه شما یه امکانی مدنظرتون باشه که وردپرس اونو طراحی نکرده و در نهایت خودتون باید اون رو خلق کنید. بنابراین به نظر شخص من، یاد گرفتن از پایه و اساس خیلی بهتر هست.

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

مینا
13 شهریور 1398
سلام من یه پنل دارم برای کاربر که باید بیاد سفارشاتش رو ببینه یک کد نوشتم که گفتم که همه ی سفارشاتی رو انتخاب کنه که مربوطه به این کاربره اما فقط آخرین سفارش کاربر رو میاره میشه کمکم کنید ممنون میشم.کد هم به شکل زیره نام کاربری : مجموع مبلغ سفارش : محصولات خریداری شده در این سفارش <?php foreach ($getIds as $getId){ $getProduct= mysqli_query($db, "SELECT * FROM products WHERE id=$getId union all SELECT * FROM pardazande WHERE id=$getId"); $fetch= mysqli_fetch_array($getProduct); echo "نام محصول : ", $fetch ['product_name']."         "; echo "قیمت : ", $fetch['product_price'].""."";?>

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

جهانگیر پچکم
24 شهریور 1398
سلام به شما مینا خانم ببینید من چون نمی تونم پایگاه داده شما رو ببینم نظرم این هست که شما دستور SELECT * FROM products WHERE id=$getId union all SELECT * FROM pardazande WHERE id=$getId رو یکبار در محیط phpmyadmin و در قسمت sql تست کنید و ببینید آیا آنچه که مد نظر شما هست رو بیرون میده، به احتمال زیاد این دستور شما مشکل رو ایجاد کرده باشه. با یکم دقت و جابجایی می تونید مشکل خودتون رو حل کنید ضمنا می تونید به روکسو کیو به آدرس زیر مراجعه کنید و سوال خودتون رو اونجا هم مطرح کنید. https://www.roxo.ir/q

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

جهانگیر پچکم
16 خرداد 1398
سلام به شما دوست عزیزم ابتدا به نظر من باید مطلب https://www.roxo.ir/functions-in-php/ را به درستی مطالعه بفرمایید. بعد از آن به راحتی می توانید با اضافه کردن دستور زیر در ابتدای فایلی که می خواهید فلان تابع را به آن وارد کنید، آن را استفاده نمایید . مثلا من در فولدر a و در فایل function.php یک تابع به نام ali تعریف کرده ام، حالا در فولدر b و در فایل jahangir.php می خواهم تابع ali را فراخوانی کنم. کافی است دستور زیر را در ابتدای فایل jahangir.php قرار دهم. include $_SERVER['DOCUMENT_ROOT']."/a/function.php"; بعد از این دستور شما به راحتی می توانید تابع ali را فراخوانی کنید.

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

mohammad
14 خرداد 1398
سلام یه سوالی دارم چطوری باید تابعی که تعریف شده را در فایل دیگر فراخوانی کنم

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.