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


CREATE TABLE `order` (CREATE TABLE `order` 
(`id` int(11) NOT NULL, `price` int(11) NOT NULL, `datee` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `order` (`id`, `price` , `datee`) 
VALUES(3,200 ,'2017-10-10'),(4,200,'2017-10-15'),
(5,100,'2017-10-10'),
(6,600,'2017-10-10');

 


 


SELECT a.* FROM `order` a

INNER JOIN
(
SELECT MAX( price) AS maxx FROM `order`
where datee = CURDATE()
) b ON (b.maxx = a.price and a.datee = CURDATE())

دربرنامه فوق ابتدا در سsubquery رکوردهای امروز را درنظر میگیرد و بعد بیشترین رکورد را انتخاب میکند. سپس عدد انتخاب شده حاصل بیشترین عدد امروز است . فرض کنید در کنار جدول order ستون userid  را هم داریم و میخواهیم بدانیم عدد بدست آمده در امروز برای کیست .  (b.maxx = a.price and a.datee = CURDATE()) با این قسمت همه رکورد های امروز در جدول بخش from را در نظر میگیرم که عدد price  آن برابر بیشترین عدد بدست امده باشد آنگاه میتوان با تساوری قراردادن آن بیشترین را بدست آورد

 

 

https://sqlfiddle.com/#!9/8a97e/12

استفاده از نقشه leaflet به جای google map


<link rel="stylesheet" href="https://unpkg.com/leaflet@1.2.0/dist/leaflet.css"   integrity="sha512-M2wvCLH6DSRazYeZRIm1JnYyh22purTM+FDB5CsyxtQJYeKq83arPe5wgbNmcFXGqiSH2XR8dT/fJISVA1r/zQ=="   crossorigin=""/>   <style>
#mapid { height: 180px; }
</style>
<div id="mapid"></div> <!-- Make sure you put this AFTER Leaflet's CSS --> <script src="https://unpkg.com/leaflet@1.2.0/dist/leaflet.js"   integrity="sha512-lInM/apFSqyy1o6s89K4iQUKg6ppXEgsVxT35HbzUupEVRh2Eu9Wdl4tHj7dZO0s1uvplcYGmt3498TtHq+log=="   crossorigin=""></script>   <script>
var map = L.map('mapid').setView([35.772115,51.382500], 15 );
L.tileLayer('https://{s}.tile.osm.org/{z}/{x}/{y}.png', { }).addTo(map);
L.marker([35.772115,51.382500]).addTo(map)
</script>

وارد کردن CSV فارسی در PHP

کافی است که دیتا را به صورت کاملا عادی در Excel وارد کنید ، و ذخیره نمایید.

بعد از ابزار Google Stylesheet استفاده کنید ، باید در اکانت گوگل خود لاگین کنید و با رفتن به منو File و open فایل excel  خود را upload کنید منتظر بمانید تا باز شود بعد مطابق تصویر زیر عمل کنید

روی download as – Comma-separated values  کلیک کنید.

حالا میتوانید محتوایات فارسی CSV را با PHP به آرایه تبدیل کنید.

$handle = fopen($csvFile, ‘r’);

$handle = fopen($csvFile, ‘r’);

while (!feof($handle) ) { $line_of_text[] = fgetcsv($handle, 1024); }
fclose($handle);

return $line_of_text;

تجربه های بزرگ

سلام ، امروز بعد از 5 ماه دارم نفس راحت میکشم ، این 5 ماه من با کسی که کار میکردم به عنوان یک دوست بود اما الان شده یک دشمن خونی برای من .

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

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

ایجاد Foregin key بین دو جدول در mysql

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

فرض کنید جدول با نام table1 داریم و یک ستون با نام key_cloumn دارد. میخوایم به جدول table2 و ستون id  لینک ایجاد کنیم به صورتی که با حذف id در table 2 رکورد های مرتبط با tabel1 هم حدف شود

[sql]

ALTER TABLE `table1`ADD KEY `key_cloumn` (`key_cloumn`);

ALTER TABLE `table1`  ADD CONSTRAINT `name_foreign_key` FOREIGN KEY (`table1_key_cloumn`) REFERENCES `table2` (`id`) ON DELETE CASCADE;

[sql]

در برنامه فوق ابتدا ستون key_cloumn

بحران تیم برنامه نویس در شرکت های غیرمرتبط

متاسفانه در ایران اغلب شرکت های حتی تولید پوشاک هم یک تیم IT دارند که امور مرتبط با سازمان خودشونو انجام بدن ، به قولی میخوان خودشون آقای خودشون باشند ، این فرضیه واقعا غلطه و در هیچ جای دنیا اینجوری که در ایران فکر میشه فکر نمیکنن.
تیم طراح نرم افزار باید در یک اکوسیستم هوشمندانه فعالیت کند ، تیم نرم افزاری لازم است که یک برنامه نویس ارشد داشته باشد که بر امورات اصلی پروژه مسلط باشد. باید تیم در جوی قرار بگیرند که دائما در حال رفع چالش ها و یا رقابت باشند.
به نظر من باورش اصلا منطقی نیست که هر شرکت از هر نوعشو که بگیری برای خودش تیم داره .
من فکر میکنم به دلیل اینه که فکر میکنن اگر اینجوری نباشن قطعا ضربه میخورن و این خیلی اشتباهه بهتره که ما برنامه نویس های که در شرکت های تخصصی فعالیت داریم به این نکته دقت کنیم که به قدری فعالیت ما حرفه ای و تخصصی باشد که در مسئولیت پذیری و انجام کارها این حس اعتماد را بین جامعه و کشور عزیزمان ایران ایجاد کنیم که با خیال آسوده شرکتها پروژه هاشونو با من و امثال من بسپارن …

شاد باشید

حذف کردن موارد تکراری در mysql

فرضا دو جدول داریم میخواهیم جدول اول و دوم با هم مقایسه شوند و موارد تکراری در جدول اول حذف شود

 

	  
delete t1 FROM user_old t1
  LEFT JOIN  webineh_user t2 ON   t2.codemeli = t1.Column1
 where  t2.codemeli is NOT null
 

ساختار LEFT JOIN در MYSQL

Join یکی از دستوارت مهم در mysql است با استفاده از این دستور میتوان موارد مغاییر و نامغاییر دو جدول را بررسی کرد .

	--table1 data
	1
	2
	3
	4
  
	--table2 data
	5
	3
	2
	6
  

با توجه به جداول فوق دستور زیر

select  * FROM table1 t1
  LEFT JOIN table2 t2 	 ON   t1.id = t2.id
   

نتیجه برابر خواهد شد

 table1 | table2
 ----------------
 1		|	2
 2		|	3
 3 		|	
 4 		|	
  

هنگامی که شما select from را یک جدول تعیین میکنید معیار انتخاب آن میشود یعنی در ستور فوق مواردی که در table1 هستند انتخاب میشوند به اضافه موارد موجود در table2 ای که در table1 وجود دارد/

 

جمع زدن یک ستون با مقدار خاص در mysql

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

			SUM(IF(t7.code = 'pay', t4.amount, 0)) AS 'pay',
			SUM(IF(t7.code = 'rec', t4.amount, 0)) AS 'rec' 
			
			SUM(CASE WHEN t7.code = 'pay' THEN t4.amount ELSE -t4.amount END) AS amount33

ایجاد کلید بین دو جدول موجود در mysql

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

  ALTER TABLE user ADD CONSTRAINT bank_id_relation FOREIGN KEY (bank_id) REFERENCES accounting_banks (id)
  ON DELETE SET NULL ON UPDATE CASCADE; 
 

استفاده از دستور Union در Mysql

گاهی اوقات ساختار دیتابیس باید بصورتی باشد که یک سری اطلاعات در 2 یا چند جدول ذخیره شده و حالا میخواهیم گزارشی از یک عبارت بگیرم .

به نظر من یکی از کاربردهای این دستور در جستجو در جدول های آرشیو است .

SELECT  name,price FROM tb1 a


where a.name = "vahid"

UNION  
SELECT  name,price FROM tb2 b
 
 
where b.name = "vahid"

دستور فوق شما عبارت vahid را در 2 جدول نمایش می دهد و حاصل آن را در هر 2 جدول نمایش می دهد .

نکاتی در مورد union :

1- باید موارد Select شده در هر دو Select یکسان باشد مثلا من در مثال فوق 2 فیلد name,price را انتخاب کرده ام

2- فیلد های انتخاب شده باید از یک نوع باشد

3-شما نمی توانید جستجو را بر اساس یک فیلد که در یکی از جدول ها وجود ندارد بدست آورید باید آن فیلد که در where قرار میگیرد در هر 2 جدول به صورت منطقی وجود داشته باشد

4- شما به جای union میتوانید از union all نیز استفاده کنید اما استفاده از union all موارد تکراری را که برابر فیلد Where میباشد را حذف میکند.

 

مثلا اگر در جدول  اول مقدار name = vahid , price =2000  باشد و در جدول دوم name = vahid , price =1000 باشد تنها مقدار جدول اول که معادلSelect  اول میباشد را نمایش میدهد.

 

فرض کنید میخواهید نتایج هر 2 جدول را در هم ادغام کنید مثال فوق که اجرا میشود نتیجه زیر را نمایش میدهد

vahid  —- 1000

vahid —- 2000

 

اگر شما بخواهید هر جمع حاصل هر 2 جدول را نمایش بدهد باید آنها را در یک Sub query قرار دهید

SELECT  

sum(t.ss) from

(

SELECT name,sum(price) as ss FROM tb1 a

where a.name = "vahid"
 
UNION  
SELECT  name,sum(price) as ss FROM tb2 b
 
 
where b.name = "vahid"
) t

 

توضیح برنامه فوق این است که دو Select موجود در Subquery جمع نتایج خود را بدست آوردند و سپس در متفیر ss قرار دادند در داخل Subquery ما همان برنامه قبل را نوشتیم اما حالا میخواهیم جمع نتایج هر 2 جدول را جمع بزنیم . مقدار t حامل همان نتایج قبل است و آن را به عنوان یک جدول فرض می بیند وقتی که ما در Select اصلی که در ابتدای برنامه قرار دارد sum(t.ss) را وارد میکنیم جمع 2 نتیجه را یکی میکند و حاصل مقدار زیر است

vahid  —- 3000