Monday, April 13, 2015

Chiến lược marketing tổng thể cho website bán hàng

Website bán hàng mà tôi muốn nói ở đây là website bán hàng từ loại nhỏ đến tầm trung. Tôi chưa có kinh nghiệm với loại lớn nên không dám lạm bàn.


Còn với chữ marketing, hàm ý ở đây là chiến lược giúp gia tăng doanh số bán hàng, không có ý nghĩa khác.

Dưới đây tôi sẽ trình bày vốn kiến thức sau hơn 2 năm bắt đầu là marketer từ không chuyên đến bán chuyên (tự nhận thôi ạ!)

A. Website

Mặc dù không ai nói rằng phải có website bạn mới bán hàng trực tuyến được, nhưng đa số đều biết có web bạn sẽ có khả năng bán hàng hiệu quả hơn. Tại sao?
  • Website là mảnh đất của bạn, tòa lâu đài của bạn, nơi chúng ta tự do làm những gì chúng ta muốn, bạn tha hồ thể hiện ý tưởng trên đó, nó là nơi bạn chào đón những khách hàng tương lai, bạn mời họ vào, nghỉ ngơi, tham quan rồi ra về trong vui vẻ. 
  • Rất nhiều các kỹ thuật quảng cáo hiệu quả cần đến website, bạn sẽ biết ngay ở phần B, kênh quảng cáo.
Có website không khó, nhưng có website bán hàng hiệu quả lại không dễ. Chưa nói đến nội dung (cái này được đề cập ở phần riêng), những chức năng của web rất cần được quan tâm:
  • Bạn có sử dụng giỏ hàng không?
  • Bạn để khách hàng đặt mua thông qua số điện thoại hay thông qua form?
  • Nếu qua form thì thông tin thu thập của bạn cần có các trường nào?
  • Về hình thức thì: background ra sao, màu chủ đạo là gì, hình ảnh trong bài viết sẽ được bố cục thế nào, số điện thoại được để ở đâu, menu nên như thế nào, ảnh đại diện ra sao...
Thương mại điện tử về cơ bản là phải dựa vào thanh toán điện tử, tuy nhiên nước ta, thanh toán điện tử bị cản trở bởi lòng tin hơn là về kỹ thuật, do vậy, các cửa hàng nhỏ thường áp dụng cách gọi điện. Trên Facebook họ có thể chỉ cần thông qua comment hoặc inbox, rất sơ khai, nhưng không còn cách nào khác.

B. Kênh quảng cáo

Vốn ít là đặc điểm của các cơ sở kinh doanh loại nhỏ hoặc loại trung nhưng mới thành lập. Do ít như vậy nên cái gì cũng nhỏ hơn bình thường. Tiền quảng cáo nhỏ muốn sống sót được thì phải sử dụng hiệu quả. Mà muốn hiệu quả cái dễ làm nhất về mặt đầu tư đó là tập trung vào những kênh lớn, những kênh có độ tin cậy cao, đã được chứng minh.

Ở Việt Nam thì hai kênh lớn đó chính là Google và Facebook.

Nói chung hai kênh này được cái dễ dùng, hỗ trợ tốt, cách gì chưa rõ lên mạng gõ là ra ngay. Bạn chỉ cần một thẻ VISA là oki.

Mới đầu sẽ thấy quảng cáo sao khó thế vì mình chưa biết gì cả.

Sau lại thấy dễ thế có up mấy cái ảnh rồi viết giá vào, cài CPC tự động thế là đã bán được hàng rồi. Đời còn gì dễ hơn thế.

Rồi vài tuần sau, ôi thôi, tốn cả triệu tiền quảng cáo mà ngày có vài khách chỉ đủ hòa vốn!

Để quảng cáo tốt bạn sẽ cần:
  • Nắm được các kỹ thuật quảng cáo cơ bản, cập nhật những kỹ thuật mới nhất
  • Có nội dung quảng cáo tốt
  • Có khả năng phân tích các phản hồi từ quảng cáo
Giờ chúng ta sẽ đi vào từng cái. 

Thế nào là nắm được các kỹ thuật cơ bản? Với tôi đó là các kỹ thuật như:
  • Quảng cáo từ khóa trên Google Search
  • Quảng cáo hiển thị trên mạng hiển thị của Google
  • Quảng cáo bài post, tăng like, truy cập web trên Facebook
Các kỹ năng nhỏ hơn đòi hỏi đi kèm sẽ bao gồm:
  • Phân tích từ khóa: tìm những từ khóa mà người mua sản phẩm của bạn tìm kiếm, xác định mức độ cạnh tranh của từng từ khóa, nhằm vào các từ khóa dài hơn để giảm thiểu giá thầu.
  • Hiểu được cơ chế của mạng hiển thị, cách thức hiển thị, HTML5 và Flash. Hiểu sức mạnh của hình ảnh so với từ ngữ. 
  • Hiểu cơ chế đấu giá, cách viết quảng cáo, dừng chữ hoa, thường, thử nghiệm để trải nghiệm thực tế.
Những kỹ thuật cao hơn mà bạn chắc chắn muốn tìm hiểu:
  • Tiếp thị lại
  • Tiếp thị lại động
  • Quảng cáo nhiều sản phẩm
  • Quảng cáo video
Trong 4 cái trên, ít nhất bạn phải hiểu được tiếp thị lại. Đây là kỹ thuật cơ bản nhất để có được khách hàng thực sự.

Mặc dù có một số khách hàng "háu ăn", thấy quảng cáo là họ có thể mua luôn được nhưng đa số mà đúng hơn là 95% - 98% khách hàng vào trang web rồi ra đi mà không mua sản phẩm, có nhiều lý do lắm. Họ chưa có nhu cầu thực sự, họ click vào website của bạn chỉ đơn giản là tìm hiểu sản phẩm thội. Hoặc họ muốn mua đấy nhưng đang là cuối tháng rồi, họ chưa có tiền, đợi đến đầu tháng sau vậy. Hoặc, ừa tao có tiền đấy, tao cũng muốn mua, nhưng mày có vẻ không ngon lắm, tao phải đợi thêm xem thế nào đã, biết đâu đấy tao lại tìm được chỗ mua nào ngon hơn, tiền mà, phải quý chớ.

Thôi thì chẳng biết lý do gì. Nhưng có điều này thì chúng ta biết chắc, họ có quan tâm đến sản phẩm. Chúng ta nếu tiếp tục cung cấp quảng cáo đều đặn cho họ, sẽ đến thời điểm khi họ có nhu cầu, khi họ đang có tiền và rồi họ sẽ mua của bạn. Tiếp thị lại hiểu theo cách đơn giản là quảng cáo lặp lại, nó hiệu quả vì nó bắn quảng cáo chính xác đến khách hàng tiềm năng cao nhất.

Nội dung quảng cáo có thể hiểu đơn giản là một phần trong Nội dung, cái được đề cập ở phần C. Nội dung quảng cáo là cái mào đầu, đó là câu chữ, hình ảnh để hấp dẫn khách hàng, mà tôi có thể gọi đó là thính. Người câu cá không thả ngay mồi xuống hồ nước

Phân tích phản hồi của quảng cáo là gì?

Đó là kỹ thuật giúp bạn đánh giá các chiến dịch của bạn có đang hoạt động hiệu quả không? hiệu quả thì hiệu quả như thế nào? tức là phải định lượng được, số má hẳn hoi chứ không phải chỉ biết mơ hồ chung chung.

Thí dụ, chiến dịch này với 100K một ngày thì đem lại bao nhiêu tương tác, bao nhiêu like, comment, share, bao nhiêu truy cập website và quan trọng nhất là bao nhiêu đơn hàng!

Khi các chiến dịch quảng cáo nhiều hơn, web có nhiều sản phẩm, việc phân tích lỗ lãi sẽ trở nên khó khăn. ROI không thể đơn giản cộng trừ một hai lần là ra, khi ấy có thể bạn sẽ cần một chương trình quản lý bán hàng online nơi bạn biết được hiệu quả đồng vốn rõ ràng cũng như nhiều thông tin quan trọng khác.

Kỹ thuật cần thiết phải mở rộng: Google Analystic - công cụ thống kê web rất hiệu quả của Google

C. Nội dung

Nội dung bao gồm rất nhiều thứ, trong đó có text, ảnh, video, nhạc...tất cả những gì thông tin mà bạn cung cấp cho người dùng đều có thể coi là nội dung.

Các cửa hàng thiên về mặt thẩm mỹ như quần áo, mỹ phẩm, tóc,..thường chỉ quan tâm đến ảnh (chụp ảnh sản phẩm) nội dung text lại sơ sài, chỉ nói về tính năng.

Lại có những cửa hàng nội dung text thì tốt nhưng ảnh chụp bằng điện thoại hay nói chung là hình ảnh xấu. Giờ đẹp quá người ta không thích, nhưng xấu thì chưa bao giờ được ai thích cả, cho nên nhất quyết là không được XẤU.

Nếu có ý tưởng triển khai được nội dung video thì quá tốt, nhưng không có thì hai mặt văn bản và hình ảnh phải chú ý.

Về văn bản: phải có được nội dung tốt xuất phát từ sự hiểu rõ về sản phẩm mình bán và nhu cầu khách hàng mua sản phẩm là vì cái gì, họ muốn đẹp da? họ muốn giảm cân, họ muốn bộ đồ tôn dáng, họ muốn trông cao lên, họ muốn sang hơn?...Vâng chỉ có hai điều đó thôi ạ, hiểu mình (hiểu sản phẩm mình bán) và hiều người (hiểu cái muốn của khách).

Về hình ảnh: hình ảnh đẹp muốn có thì cần thiên về mặt kỹ thuật nhiều hơn, phải có máy ảnh tốt, thậm chí là studio chuyên về chụp ảnh để có được cả ánh sáng nền nữa. Nếu có điều kiện bạn có thể đầu tư, còn không thì đi thuê cũng được. Cần nhớ có những cái không thể không thuê. Chẳng hạn bán quần áo, cần mẫu đẹp, trong khi mình vốn tự có không đạt thì phải thuê. Còn nếu mình đạt, tự chụp mình mặc đồ thì rất tốt.

D. Sản phẩm

Sản phẩm dù là mua hay tự làm đều phải làm sao khi đến tay được người dùng nó phải có tính chất mà tôi gọi là khác biệt. Ý của từ khác biệt ở đây không phải là cái gì đó quái dị, quá nổi trội, như thế nhiều khi thành kệch cỡm, khác biệt ở đây chỉ cần là: nó làm cho bạn có cái gì đó để không bị lẫn với những người khác cùng bán sản phẩm như bạn.

Hướng tới chất lượng tốt cũng tạo ra khác biệt, bởi như vậy bạn đã phân biệt bản thân với những nhà cung ứng có chất lượng trung bình. Tuy nhiên cũng có nhiều nhà cung ứng cung cấp chất lượng cao cho nên cách dễ nhất để tạo ra khác biệt là thông qua cảm quan.

Bạn cần có hệ thống nghe tên rất oách "nhận diện thương hiệu". Hiểu đơn giản đó là logo, bao bì, tem nhãn, cách bạn đóng gói, buộc nơ, hay thậm chí cả cách vận chuyển đến tay khách hàng.

Wednesday, April 8, 2015

Hướng dẫn Redirect 301 bằng .htaccess cho website bán hàng

Nguyên nhân cần đổi hướng URL có rất nhiều, từ đơn giản như bạn muốn sửa URL bài viết cụ thể nào đó, hoặc sửa ngày tháng của bài viết, hay sửa thư mục chứa một nhóm bài viết đều có khả năng ảnh hưởng đến URL...Đôi khi nghiêm trọng hơn là bạn muốn đổi sang tên miền hoàn toàn mới, như vậy là toàn bộ bài viết trên website sẽ có URL khác.

Redirect 301

Câu hỏi đầu tiên cho những ai chưa rõ: thế đổi hướng Redirect 301 có tác dụng gì?

Nó có hai tác dụng chính:
  • Đảm bảo rằng những người truy cập vào đường link cũ sẽ vẫn đến được nơi họ cần. Những đường link cũ này nằm ở đâu? Nó có thể nằm trên mạng xã hội, các diễn đàn, email mọi người gửi cho nhau, hoặc trên cỗ máy tìm kiếm của Google khi nó chưa index những thay đổi của bạn.
  • Đảm bảo giữ thứ hạng SEO trên Google của bạn. Bằng cách điền thông tin vào vào file .htaccess nằm ở thư mục gốc của website để thông báo chuyển hướng, bạn không chỉ giúp người dùng mà còn thông báo với Google rằng, những đường link đó đã chuyển sang địa chỉ mới. Và Google sẽ chuyển thứ hạng cho những đường link mới này. Điều này vô cùng quan trọng, nếu trước đây trang web của bạn từng có thứ hạng cao.
Vậy làm như thế nào?

Hãy đăng nhập vào tài khoản hosting của bạn để tải file .htaccess về. Lưu ý trước khi chỉnh sửa hãy tạo bản sao lưu của file này, vì nếu cái này bị lỗi site của bạn sẽ không truy cập được, khi đó bạn còn có file gốc để khôi phục lại hiện trạng bạn đầu.

Truy cập vào website: http://www.rapidtables.com/web/tools/redirect-generator.htm  (hoặc lên mạng tra từ khóa "redirect 301 htaccess generator" để tìm tool mà bạn thích)

Đây là công cụ tạo code Redirect 301 tự động, giúp bạn tránh bị lỗi. Bạn chọn như trong hình (Apache . htaccess redirect), điền tên URL cũ rồi mới vào. Cái này là dành cho các bạn chuyển hướng các URL cụ thể:

Apache . htaccess redirect

Nhấn Generate Code roài bạn copy đoạn code nó cho vào file . htaccess nhé.

Công việc phức tạp sẽ dành cho những ai phải chuyển hướng URL không theo quy luật, khi đó mỗi URL chuyển hướng bạn sẽ phải làm một dòng redirect 301, điều này sẽ vô cùng nặng nhọc nếu website của bạn có hàng trăm trang.

Ngược lại, những người chuyển sang tên miền hoàn toàn mới, nhưng cấu trúc URL đằng sau vẫn giữ nguyên thì code thêm vào khá đơn giản, vì kiểu chuyển hướng này có quy luật, bạn chỉ cần thêm đâu 4 - 5 dòng là được (cái này bạn tự tìm trên mạng nhé). Kiểu chuyển từ có www sang không có www hoặc ngược lại cũng tương tự, là có quy luật. Sau khi sửa bạn up lên thư mục gốc của tên miền cũ là được.

Quay lại với những người chuyển không theo quy luật. Ví dụ cụ thể tôi sẽ lấy câu chuyện của chính mình. Tôi cấu trúc website theo dạng:

Tên miền/năm tháng của bài viết/tên bài viết

Nhưng những người làm website bán hàng sau này sẽ hiểu, cấu trúc này sẽ rất khó để tiếp thị lại theo sản phẩm, họ sẽ buộc phải dùng tiếp thị lại động, vốn phức tạp hơn khi thêm vào từng trang và kiểm tra lỗi gắt gao vốn không thích hợp với những người làm kinh doanh online nhỏ.

Cấu trúc nào tốt hơn? Cái bên dưới í

Tên miền/thư mục bài viết/tên bài viết

Tại sao?

Vì người ta sẽ dựa vào thư mục bài viết, chính cái thư mục sẽ được dùng để làm tên sản phẩm hoặc nhóm sản phẩm gần nhau. Từ đó họ sẽ phân loại được cụ thể tập hợp được những người dùng.

Ok xong, vậy bây giờ làm thế nào?

Bạn phải nhớ điều này, đổi URL như trường hợp này giống như bạn sắp xếp lại đồ đạc của toàn bộ căn phòng trong một khách sạn sang trọng đang có hàng ngàn người ở. Hãy giảm thiểu các rắc rối cho họ. Nếu làm không khéo bạn sẽ không có chỗ để họ ăn, họ ngủ, hoặc sẽ vào nhầm phòng, không tìm thấy phòng của mình. Thiệt hại của bạn là rõ ràng. Hãy giảm thiểu điều đó.

Đây là các bước mà tôi cảm thấy sẽ có ích:
  1. Thực hiện chuyển đổi vào giờ mà bạn nhận được ít truy cập nhất, thường sẽ vào đêm khuya sau 12h.
  2. Dừng tất cả các quảng cáo liên quan trong khi bạn thực hiện chuyển đổi URL (Google Ads, Facebook Ads...). 
  3. Chuẩn bị sẵn file .htaccess đã bao gồm các lệnh Redirect 301 của bạn. Rồi up lên thư mục gốc của site. 
  4. Sửa lại toàn bộ quảng cáo của bạn để nó sang URL mới, mặc dù sau khi bạn up file .htaccess người dùng truy cập quảng cáo của bạn sẽ vẫn đến được nơi cần đến, tuy nhiên việc quảng cáo chuyển hướng là không hay, bạn vẫn phải sửa lúc nào đó nếu không sửa ngay lập tức được.
  5. Bật lại quảng cáo. Sửa lại các liên kết nội của website (phải làm), xóa các link cũ trên fanpage nếu thấy cần thiết, hoặc cứ để đó cũng được vì bạn đã Redirect rồi.
Trong các bước trên, khổ nhất là bước 3 và 4. Thực tình nếu bạn làm bước 3 hoàn hảo bạn có thể chuyển luôn sang bước 5 và đợi đến khi nào đỡ mệt mỏi rồi thực hiện bước 4. Tuy nhiên nếu được hãy làm theo các bước trên.

Nhìn lại web của tôi làm cho khách, có hàng trăm bài viết, và ngót nghét 60 - 70 quảng cáo các thể loại! Tôi khốn khỏ roài!

Rồi, giờ ta bàn về bước 3. Nếu bạn phải làm cho website có quá nhiều bài viết thì trước hết bạn nên tập trung vào những bài viết chính (về sau có thời gian sẽ làm nốt cho những cái còn lại):
  • Những bài mà bạn đang quảng cáo nhất định phải có Redirect 301, bạn phải có luôn để còn bật quảng cáo (nếu không bạn hoặc khách của bạn sẽ mất doanh thu)
  • Những bài có SEO tốt cũng phải có Redirect 301
Vậy đó quan trọng nhất là bạn phải có được file .htaccess chuẩn, bạn nên làm trước, vì bạn đã biết được URL gốc và URL bạn định chuyển sang. File .htaccess càng làm tốt bao nhiêu bạn càng đỡ bị thiệt hại doanh thu bấy nhiêu.

Tôi dự tính, công việc này sẽ ngốn khoảng 10 đến 20 tiếng làm việc! Đúng là ngu mà nếu ngay từ đầu biết được cấu trúc thì đâu vất thế này. Đành tự an ủi rằng ta có thêm tí kinh nghiệm, mà nói thẳng ra, đéo ai mà biết trước được hết, nhể.

Bổ sung đoạn quên

Cứ tưởng viết xong rồi, nhưng vẫn còn các bác à, đó là phần giải thích tầm quan trọng của việc cấu trúc thư mục cho bài viết. Khi chúng ta cấu trúc thư mục để tiếp thị lại (theo kiểu thường chứ tiếp thị lại động khổ lắm, up code từng trang, rồi nguồn cấp dữ liệu...) thì điều cần nhớ đó là phải phân loại bài viết thực cụ thể.

Cái này muốn bán điện thoại A thì phải để nó vào thư mục điện thoại A. Cái này phải 3 tháng sau người ta mới mua thì phải để nó vào thư mục đánh dấu nó lại để biết thời điểm thích hợp mà quảng cáo.

Phải nhắn với đứa quản trị nội dung, web tầm quan trọng của thư mục, bảo nó không thay đổi lung tung,...cái đó còn tùy vào website bạn dùng nữa mà nhắn nhủ nó thế nào.

Tuesday, March 3, 2015

Hàm Ngày tháng và Thời gian trong PHP

Hàm date() trong PHP được sử dụng để định dạng ngày và thời gian.

Hàm Date()

Hàm date() được dùng để định dạng một nhãn thời gian giúp cho việc đọc dữ liệu ngày và thời gian trở nên đơn giản hơn. Cú pháp:

date(format,timestamp)

Tham số  Mô tả
Định dạng (format) Yêu cầu. Chỉ định định dạng của nhãn thời gian
Nhãn thời gian (timestamp) Tùy chọn. Chỉ định một nhãn thời gian cụ thể. Theo mặc định là ngày và thời gian hiện tại

Một nhãn thời gian là một chuỗi các ký tự, biểu thị ngày tháng và / hoặc thời gian mà tại đó một sự kiện nào đó xảy ra.

Cách đơn giản để lấy một ngày

Các tham số định dạng của hàm date() xác định cách làm thế nào để định dạng ngày (hoặc thời gian).

Dưới đây là một số yếu tố thường được sử dụng cho ngày : 
  • d - Đại diện cho ngày của tháng (01 tới 31) 
  • m - Đại diện cho một tháng (01 tới 12) 
  • Y - Đại diện cho một năm (trong bốn chữ số) 
  • l (dạng viết thường của L) - Đại diện cho các ngày trong tuần
Các yếu tố khác như " /", " . " hoặc " - " cũng có thể được chèn vào giữa các yếu tố để thêm định dạng bổ sung.

Ví dụ dưới đây định dạng ngày hôm nay trong ba cách khác nhau:

<?php
echo "Today is " . date("Y/m/d") . "<br>";
echo "Today is " . date("Y.m.d") . "<br>";
echo "Today is " . date("Y-m-d") . "<br>";
echo "Today is " . date("l");
?>

Mẹo PHP - Tự động lấy năm bản quyền dùng cho website

Bạn sử dụng hàm date() để tự động cập nhật bản quyền năm trên website của bạn (thường nằm ở chân trang):

&copy; 2010-<?php echo date("Y")?>

Cách đơn giản để lấy thời gian

Dưới đây là một số yếu tố thường được sử dụng cho thời gian:
  • h - định dạng 12h (với số 0 đứng đằng trước) từ 01 đến 12
  • i - định dạng phút (với số 0 đứng đằng trước) từ 00 đến 59
  • s - định dạng giây (với số 0 đứng đằng trước) từ 00 đến 59
  • a - dạng viết thường của am hoặc pm
Ví dụ dưới đây cung cấp thời gian hiện tại trong định dạng cụ thể:

<?php
echo "The time is " . date("h:i:sa");
?>

Chú ý: hàm date() trong PHP sẽ lấy thời gian/ngày tháng của server!

Lấy múi giờ của bạn

Nếu thời gian bạn nhận được từ mã không phải là thời gian chính xác, nguyên nhân có thể nằm ở lý do máy chủ của bạn là ở nước khác hoặc được thiết lập cho múi giờ khác.

Vì vậy, nếu bạn cần thiết lập thời gian theo một địa điểm cụ thể, bạn có thể thiết đặt một múi giờ nhất định.

Ví dụ dưới đây đặt múi giờ "America / New_York", sau đó cung cấp kết quả đầu ra thời gian hiện tại trong các định dạng cụ thể :

<?php
date_default_timezone_set("America/New_York");
echo "The time is " . date("h:i:sa");
?>

Tạo ngày với hàm mktime() trong PHP

Các tham số tùy chọn thời gian trong hàm date() xác định một dấu thời gian. Nếu bạn không chỉ định một dấu thời gian, ngày và thời gian hiện tại sẽ được sử dụng (như trong ví dụ trên).

Các hàm mktime() trả về nhãn thời gian cho một ngày. Các nhãn Unix chứa số giây giữa Unix Epoch (ngày 01 Tháng 1 1970 00:00:00 GMT) và thời gian quy định.

Cú pháp:

mktime(hour,minute,second,month,day,year)

Ví dụ dưới đây tạo một ngày và thời gian từ thông số trong hàm mktime():

<?php
$d=mktime(11, 14, 54, 8, 12, 2014);
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>

Tạo ngày tháng từ chuỗi với hàm strtotime() trong PHP

Hàm PHP strtotime() được sử dụng để chuyển dạng ngày tháng dễ đọc cho con người sang dạng thời gian Unix

Cú pháp:

strtotime(time,now)

Ví dụ dưới đây tạo ngày và thời gian từ hàm strtotime():

<?php
$d=strtotime("10:30pm April 15 2014");
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>

PHP khá thông minh về việc chuyển đổi một chuỗi sang một ngày, vì vậy bạn có thể đưa vào các giá trị khác nhau:

<?php
$d=strtotime("tomorrow");
echo date("Y-m-d h:i:sa", $d) . "<br>";

$d=strtotime("next Saturday");
echo date("Y-m-d h:i:sa", $d) . "<br>";

$d=strtotime("+3 Months");
echo date("Y-m-d h:i:sa", $d) . "<br>";
?>


Tuy nhiên, hàm strtotime() không hoàn hảo, do vậy hãy nhớ kiểm tra chuỗi mà bạn đưa vào.

Nhiều ví dụ khác về hàm ngày tháng

Ví dụ dưới đây đưa ra các ngày vào ngày thứ 7 trong vòng 6 tuần:

<?php
$startdate = strtotime("Saturday");
$enddate = strtotime("+6 weeks",$startdate);

while ($startdate < $enddate) {
echo date("M d", $startdate),"<br>";
$startdate = strtotime("+1 week", $startdate);
}
?>


Ví dụ bên dưới cung cấp số ngày còn lại cho đến ngày mùng 4 tháng 7:

<?php
$d1=strtotime("July 04");
$d2=ceil(($d1-time())/60/60/24);
echo "There are " . $d2 ." days until 4th of July.";
?>

Saturday, February 28, 2015

Cú pháp của SQL

Bảng cơ sở dữ liệu

Một cơ sở dữ liệu thường bao gồm một hoặc nhiều bảng. Mỗi bảng được định danh bằng một tên (ví dụ như Khách hàng hoặc Đơn hàng). Bảng bao gồm các bản ghi (hàng) với dữ liệu.
Trong các bài viết về SQL, chúng tôi sẽ sử dụng bảng dữ liệu quen thuộc được nhiều người biết đến là Northwind (có sẵn trong MS Access và MS SQL Server).

Dưới đây là một phần thông tin được lấy ra từ bảng Customer:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1
Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4
Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

Bảng trên bao gồm 5 bản ghi (mỗi bản ghi dành cho một khách hàng) và 7 cột dữ liệu (CustomerID, CustomerName, ContactName, Address, City, PostalCode, và Country).

Câu lệnh SQL

Hầu hết các hành động mà bạn cần phải thực hiện trên cơ sở dữ liệu được thực hiện với các câu lệnh SQL. Câu lệnh SQL sau sẽ lựa chọn tất cả các bản ghi của bảng Customer:

Ví dụ:

SELECT * FROM Customers;

Trong bài hướng dẫn này, chúng tôi sẽ hướng dẫn bạn về sự khác nhau giữa các câu lệnh SQL.

Hãy nhớ rằng ...

SQL là không phải là ngôn ngữ nhạy cảm với cách viết HOA hay viết thường: điều này có nghĩa là select cũng giống như SELECT

Trong hướng dẫn này, chúng tôi sẽ viết tất cả các từ khóa trong SQL ở dạng chữ HOA.

Dấu chấm phẩy sau câu lệnh SQL?

Một số hệ thống cơ sở dữ liệu đòi hỏi phải có dấu chấm phẩy ở cuối mỗi câu lệnh SQL.

Dấu chấm phẩy là cách tiêu chuẩn để tách mỗi câu lệnh SQL trong các hệ thống cơ sở dữ liệu cho phép nhiều câu lệnh SQL được thực hiện trong cùng một cuộc gọi đến máy chủ.

Trong hướng dẫn này, chúng tôi sẽ sử dụng dấu chấm phẩy ở cuối mỗi câu lệnh SQL.

Một số các lệnh SQL quan trọng nhất

  • SELECT - lấy dữ liệu từ cơ sở dữ liệu
  • UPDATE - cập nhật dữ liệu trong cơ sở dữ liệu
  • DELETE - xoá dữ liệu từ cơ sở dữ liệu
  • INSERT INTO - chèn dữ liệu mới vào một cơ sở dữ liệu
  • CREATE DATABASE - tạo ra một cơ sở dữ liệu mới
  • ALTER DATABASE - sửa đổi một cơ sở dữ liệu
  • CREATE TABLE - tạo ra một bảng mới
  • ALTER TABLE - sửa đổi một bảng
  • DROP TABLE - xoá một bảng
  • CREATE INDEX - tạo chỉ mục (khoá tìm kiếm)
  • DROP INDEX - xoá một chỉ mục (khóa tìm kiếm)

Friday, February 27, 2015

Giới thiệu về SQL

SQL là một ngôn ngữ chuẩn dùng cho việc truy cập và thao tác cơ sở dữ liệu.

SQL là gì?

  • SQL là viết tắt của Structured Query Language - Ngôn ngữ truy vấn có cấu trúc
  • SQL cho phép bạn truy cập và thao tác với cơ sở dữ liệu
  • SQL đạt chuẩn ANSI (American National Standards Institute - Viện tiêu chuẩn quốc gia Hoa Kỳ)

SQL có thể làm được gì?

  • SQL có thể thực hiện truy vấn đối với cơ sở dữ liệu
  • SQL có thể lấy dữ liệu từ cơ sở dữ liệu
  • SQL có thể chèn các bản ghi vào cơ sở dữ liệu
  • SQL có thể cập nhật các bản ghi trong cơ sở dữ liệu
  • SQL có thể xóa các bản ghi trong cơ sở dữ liệu
  • SQL có thể tạo ra cơ sở dữ liệu mới
  • SQL có thể tạo bảng trong cơ sở dữ liệu
  • SQL có thể tạo các thủ tục được lưu trữ trong cơ sở dữ liệu
  • SQL có thể hiển thị thông tin được lấy từ cơ sở dữ liệu
  • SQL có thể thiết lập quyền truy cập vào bảng, thủ tục, và hiển thị thông tin

SQL là một chuẩn - NHƯNG ....

Mặc dù SQL là một chuẩn ANSI (American National Standards Institute), nó vẫn có những phiên bản khác nhau.

Nhưng dù sao, để phù hợp với các tiêu chuẩn ANSI, tất cả đều hỗ trợ ít nhất là các lệnh quan trọng (chẳng hạn như SELECT, UPDATE, DELETE, INSERT, WHERE) theo cách tương tự nhau.

Lưu ý: Hầu hết các chương trình cơ sở dữ liệu SQL cũng có phần mở rộng độc quyền riêng của họ bên cạnh các tiêu chuẩn SQL!

Sử dụng SQL trong trang web của bạn

Để xây dựng một trang web lấy dữ liệu từ cơ sở dữ liệu, bạn sẽ cần:
  • Một chương trình quản lý cơ sở dữ liệu quan hệ RDBMS (ví dụ: MS Access, SQL Server, MySQL)
  • Sử dụng thành thạo ngôn ngữ kịch bản phía máy chủ, như PHP hoặc ASP
  • Sử dụng thành thạo SQL để có được các dữ liệu bạn muốn
  • Sử dụng thành thạo HTML / CSS

RDBMS

RDBMS là viết tắt của Hệ thống quản lý cơ sở dữ liệu quan hệ.

RDBMS là cơ sở cho SQL, và cho tất cả các hệ thống cơ sở dữ liệu hiện đại như MS SQL Server, IBM DB2, Oracle, MySQL, và Microsoft Access.

Các dữ liệu trong RDBMS được lưu trữ trong cơ sở dữ liệu đối tượng được gọi là bảng.

Một bảng là một tập hợp các dữ liệu liên quan, bảng bao gồm các cột và các hàng.

Wednesday, February 18, 2015

jQuery - Phương thức sự kiện

jQuery cho phép đáp ứng các sự kiện trong trang HTML.

Sự kiện là gì?

Tất cả những hành động khác nhau trên trang web mà có thể đáp ứng, được gọi là sự kiện.Một sự kiện đại diện cho thời điểm chính xác khi một cái gì đó xảy ra .

Ví dụ:
  • di chuyển chuột qua một thành phần
  • lựa chọn một radio button
  • click vào một thành phần
Thuật ngữ "fires" thường được sử dụng với các sự kiện (event). Ví du: "sự kiện nhấn phím "fires" thời điểm bạn nhấn một phím".

Dưới đây là một số sự kiện DOM phổ biến:

ChuộtBàn phímForm Tài liệu/Cửa sổ
click (nháy đơn)nhấn phímgửitải
nháy képphím xuốngthay đổithay đổi kích cỡ
di chuyển vàophím lênfocusscroll
di chuyển rablurunload

Cú pháp cho phương thức sự kiện trong jQuery

Trong jQuery, hầu hết sự kiện DOM có một phương thức tương đương jQuery. Để gán một sự kiện click vào tất cả các đoạn văn trên một trang, bạn có thể làm điều này:

$("p").click();

Bước tiếp theo là xác định những gì sẽ xảy ra khi sự kiện diễn ra. Bạn phải viết một hàm cho sự kiện:

$("p").click(function(){
// action goes here!!
});

Những phương thức sự kiện phổ biến trong jQuery

$(document).ready()

Phương thức $(document).ready() cho phép chúng ta thực hiện hàm khi tài liệu được tải xong hoàn toàn. Sự kiện này sẽ được giải thích ở bài cú pháp trong jQuery.

click()

Phương thức click gắn một hàm xử lý sự kiện cho phần tử HTML.

Hàm này thực thi khi người dùng click vào phần tử HTML.

Ví dụ dưới đây nói rằng: Khi một click xảy ra trên thẻ <p> nào đó; ẩn thẻ <p> ấy:

Ví dụ:

$("p").click(function(){
$(this).hide();
});


dblclick()

Phương thức dbclick() gắn một hàm xử lý sự kiện cho phần tử HTML.

Hàm này thực thi khi người click đúp vào một thành phần HTML:

Ví dụ:

$("p").dblclick(function(){
$(this).hide();
});


mouseenter()

Phương thức mouseenter() gắn một hàm xử lý sự kiện cho một phần tử HTML.

Hàm này sẽ thực thi khi con trỏ chuột được đưa vào khu vực của phần tử HTML được chọn:

Ví dụ:

$("#p1").mouseenter(function(){
alert("You entered p1!");
});


mouseleave()

Phương thức mouseleave() gắn một hàm xử lý sự kiện cho một phần tử HTML.

Hàm được thực thi khi con trỏ chuột được đưa ra khỏi phần tử HTML được chọn.

Ví dụ:

$("#p1").mouseleave(function(){
alert("Bye! You now leave p1!");
});


mousedown()

Phương thức mousedown() gắn một hàm xử lý sự kiện cho một phần tử HTML.

Hàm được thực thi khi con trỏ trái chuột được nhấn trong khi chuột di chuyển qua phẩn từ HTML đó. (cá nhân mình thấy nó rất giống hàm click)

Ví dụ:

$("#p1").mousedown(function(){
alert("Mouse down over p1!");
});

mouseup()

Phương thức mouseup() gắn một hàm xử lý sự kiện vào phần tử HTML.

Hàm được thực thi khi, chuột trái được nhả trong khi chuột di chuyển qua phần tử HTML:

Ví dụ:

$("#p1").mouseup(function(){
alert("Mouse up over p1!");
});


hover()

Phương thức hover()có hai chức năng và là sự kết hợp của hai hàm mouseenter() và mouseleave().

Hàm đầu tiên được thực thi khi chuột di chuyển vào thành phần HTML, và hàm thứ hai được thực thi khi chuột di chuyển ra ngoài thành phần HTML:

Ví dụ:

$("#p1").hover(function(){
alert("You entered p1!");
},
function(){
alert("Bye! You now leave p1!");
});


focus()

Phương thức focus() gắn một hàm xử lý sự kiện vào các trường trong form HTML.

Hàm này được thực thi khi trường trong form được "focus":

Ví dụ:

$("input").focus(function(){
$(this).css("background-color", "#cccccc");
});


blur()

Phương thức blur() gắn một hàm xử lý sự kiện vào các trường trong form HTML.

Hàm này được thực thi khi trường trong form mất focus.

Ví dụ:

$("input").blur(function(){
$(this).css("background-color", "#ffffff");
});


focus() và blur() xử lý hai sự kiện trái ngược nhau.

Hiệu ứng jQuery - Ẩn và Hiện

jQuery hide() và show()

Với jQuery, bạn có thể ẩn và hiện các thành phần HTML với phương thức tương ứng là hide() và show().

Ví dụ:

$("#hide").click(function(){
$("p").hide();
});

$("#show").click(function(){
$("p").show();
});



Nếu bạn click vào nút Ẩn, nội dung này sẽ ẩn đi, ấn nút Hiện để show ra


Cú pháp:

$(selector).hide(speed,callback);

$(selector).show(speed,callback);


Tham số tùy chọn tốc độ cho phép bạn chọn tốc độ ẩn/hiện cụ thể và có thể sử dụng các giá trị như: "slow", "fast", hoặc mili giây.

Các tham số tùy chọn callback (gọi lại) là một chức năng được thực hiện sau khi hide( ) hoặc show( ) hoàn thành hoàn toàn ( bạn sẽ tìm hiểu thêm về các chức năng gọi lại trong bài sau).

Ví dụ dưới đây minh họa cách sử dụng thông số tùy chọn tốc độ trong hide():

$("button").click(function(){
$("p").hide(1000);
});


Đây là một đoạn văn bản.
Đây là một đoạn văn bản khác.

jQuery toggle()

Với jQuery, bạn có thể chuyển đổi giữa hide() và show() với phương thức toggle().

Hiển thị thành phần ẩn và ẩn thành phần hiển thị:

Ví dụ:

$("button").click(function(){
$("p").toggle();
});


Cú pháp:

$(selector).toggle(speed,callback);

Tham số tùy chọn tốc độ cho phép bạn chọn tốc độ ẩn/hiện cụ thể và có thể sử dụng các giá trị như: "slow", "fast", hoặc mili giây.

Tham số callback là hàm sẽ được thực hiện sau khi toggle() hoàn thành.
Đây là một đoạn văn bản.Đây là một đoạn văn bản khác.