অ্যাপ এম এল রেফারেন্সঃ ডাটাবেস (AppML Reference – Databases)

রিদওয়ান বিন শামীম

 

 

ডাটাবেসের বৈশিষ্ট্য

ডাটাবেসের বৈশিষ্ট্য ডাটাবেসকে ডাটা সোর্সরূপে প্রদর্শন করে। এর কিছু উপবৈশিষ্ট্য আছে,

 

Element (উপাদান)
বর্ণনা
“connection” ডাটাবেসের কানেকশনের নাম
“execute” এসকিউএল বিবৃতির অ্যারি যা ডাটা পুনঃরসজ্জিত করার আগে সম্পাদন করতে হয় (ঐচ্ছিক)
“keyfield” মূল টেবিলের জন্য প্রধান ক্ষেত্র(ঐচ্ছিক)
“maintable” এপ্লিকেশনের জন্য মূল টেবিল(ঐচ্ছিক)
“orderby” নির্ধারিত এসকিউএল আরোপিত ক্লস(ঐচ্ছিক)
“sql” পুনঃরসজ্জিত ডাটার জন্য এসকিউএল বিবৃতি।

 

 

 

ডাটাবেস থেকে ডাটা গ্রহণ

এই মডেল এসকিউএল ডাটাবেসের কাস্টমার টেবিল থেকে কাস্টমার, সিটি, দেশ ইত্যাদি তথ্য গ্রহন করে থাকে।

 

Example


{
 "database": {
     "connection": "mysql",
     "sql"       : "SELECT CustomerName, City, Country FROM Customers",
     "orderby"   : "CustomerName"
 }
 }

 

 

 

ফিল্টার সীমাবদ্ধতা

ব্যবহারকারীদের ফিল্টার ডাটায় প্রবেশযোগ্য করতে মডেলে ফিল্টার তথ্য যোগ করা যায়,


"filteritems" : [
     {"item" : "CustomerName", "label" : "Customer"},
     {"item" : "City"},
     {"item" : "Country"}]

 

 

 

সর্টিং সীমাবদ্ধতা

ব্যবহারকারীদের সর্টিং ডাটায় প্রবেশযোগ্য করতে মডেলে সর্টিং বিষয়ক তথ্য যোগ করা যায়,

 


“sortitems” : [
{“item” : “CustomerName”, “label” : “Customer”},
{“item” : “City”},
{“item” : “Country”}]


 

 

 

আপডেট সীমাবদ্ধতা

ব্যবহারকারীদের আপডেট ডাটায় প্রবেশযোগ্য করতে মডেলে আপডেট তথ্য যোগ করা যায়,

 

উদাহরণঃ


"updateItems" : [
     {"item" : "CustomerName"},
     {"item" : "Address"},
     {"item" : "PostalCode"},
     {"item" : "City"},
     {"item" : "Country"}]

 

 

 

বাই ডিফল্ট অ্যাপ এম এল ফিল্টার, সর্টিং বা আপডেটের সুযোগ দেবে কেবল উল্লেখিত মডেল অনুসারে।

 

 

ডাটাবেস কানেকশন

ডাটাবেস কানেকশনকে appml_config.php এর মধ্যে বিবৃত করা হয়,

appml_config.php


<?php echo("Access Forbidden");exit();?>
 {
 "dateformat" : "yyyy-mm-dd",
 "databases": [
     {
     "connection" : "mysql",
     "host"       : "127.0.0.1:3306",
     "dbname"     : "Northwind",
     "username"   : "myUserId",
     "password"   : "myPassword"
     },
     {
     "connection" : "googleDB",
     "host"       : "192.168.1.1:3306",
     "dbname"     : "Northwind",
     "username"   : "myUserId",
     "password"   : "myPassword"
     },
     {
     "connection" : "amazonDB",
     "host"       : "mydbinstance.amazon.com:3306",
     "dbname"     : "Northwind",
     "username"   : "myUserId",
     "password"   : "myPassword"
     },
     {
     "connection" : "azureDB",
     "host"       : "azure.cloudapp.net",
     "dbname"     : "Northwind",
     "username"   : "myUserId",
     "password"   : "myPassword"
     }
 ]
 }

 

কনফিগারেশন ফাইল অনেকগুলো ডাটাবেস কানেকশন ধারন করতে পারে।

 

 

ডাটাবেস তৈরি করা

যেহেতু অ্যাপ এম এল এপ্লিকেশন চালুর আগেই এসকিউএল বিবৃতি সম্পাদনের সুযোগ দেয় তাই কোনও ডাটাবেস তৈরির জন্যও আমরা এটিকে ব্যবহার করতে পারি,

Model


{
 "database" : {
 "connection" : "myCDs",
 "execute" : [
 "DROP TABLE IF EXISTS CD_Catalog",
 "CREATE TABLE IF NOT EXISTS CD_Catalog (CDID INT NOT NULL AUTO_INCREMENT,PRIMARY KEY (CDID),
  Title NVARCHAR(255),Artist NVARCHAR(255),Country NVARCHAR(255),Price NUMBER)"
 ]
 }}

 

দ্রুত প্রোটোটাইপিঙের জন্য উপযুক্ত।

 

SSC Quiz 08 : কম্পিউটার শিক্ষা : অধ্যায় ০৮ (কম্পিউটার প্রোগ্রামিং)

[slickquiz id=10]

অ্যাপ এম এল রেফারেন্সঃ ডাটা ফাইল (AppML Reference – Data Files)

রিদওয়ান বিন শামীম

 

ডাটাবেসের বৈশিষ্ট্য

ডাটাবেসের বৈশিষ্ট্য ডাটাবেসকে ডাটা সোর্সরূপে প্রদর্শন করে।এর কিছু উপবৈশিষ্ট্য আছে,

উপাদান বিবরণ
“type” ডাটা ফাইলের ধরণ (“csvfile”, “xmlfile”, or “jsonfile”)
“filename” ফাইলের নাম
“record” এক্সএমএল ডাটা নডের নাম (যদি xmlfile হয়)
“items” ডাটা আইটেম

 

টেক্সট ফাইল থেকে ডাটা

এই মডেল কমা দিয়ে আলাদা করা টেক্সট ফাইল থেকে টাইটেল, আর্টিস্ট, মূল্য এসব রেকর্ড খুঁজে নেয়,(আইটেম ১, ২, ৫ এর মত)।

উদাহরণ


{
 "data": {
     "type"    : "csvfile",
     "filename": "cd_catalog.txt",
     "items"   : [
         {"name": "Title", "index": 1},
         {"name": "Artist","index": 2},
         {"name": "Price", "index": 5}
     ]
 }
 }

উদাহরণের ব্যাখ্যা টেক্সট ফাইলের অনুরূপ

 

এক্সএমএল ফাইল থেকে ডাটা

এই মডেল এক্সএমএল ফাইলের সিডি নড থেকে টাইটেল, আর্টিস্ট, মূল্য এসব রেকর্ড খুঁজে নেয়।

উদাহরণ


{
 "data": {
     "type"    : "xmlfile",
     "filename": "cd_catalog.xml",
     "record"  : "CD",
     "items"   : [
         {"name": "Artist", "nodename": "ARTIST"},
         {"name": "Title",  "nodename": "TITLE"},
         {"name": "Country","nodename": "COUNTRY"}
     ]
 }
 }

উদাহরণের ব্যাখ্যা এক্সএমএল ফাইলের অনুরূপ

 

জেএসওএন ফাইল থেকে ডাটা

এই মডেল জেএসওএন ফাইলের সিডি অবজেক্টের আরি থেকে টাইটেল, আর্টিস্ট, মূল্য এসব রেকর্ড খুঁজে নেয়।

উদাহরণ


{
 "data" : {
     "type" : "jsonfile",
     "filename" : "cd_catalog.js",
     "record" : "cd",
     "items" : [
         {"name" : "Title", "nodename" : "title"},
         {"name" : "Artist", "nodename" : "artist"},
         {"name" : "Price", "nodename" : "price"}
     ]
 }
 }

উদাহরণের ব্যাখ্যা জেএসওএন ফাইলের অনুরূপ

 

অ্যাপ এম এল রেফারেন্স (AppML Reference)

রিদওয়ান বিন শামীম

 

অ্যাপ এম এল এইচটিএমএল এট্রিবিউট

উদাহরণ,


<div appml-include-html="inc_header.htm"></div>
 
 <h1>Customers</h1>
 <table appml-data="customers.js" appml-controller="myController">
   <tr>
     <th>Customer</th>
     <th>City</th>
     <th>Country</th>
   </tr>
   <tr appml-repeat="records">
     <td>{{CustomerName}}</td>
     <td>{{City}}</td>
     <td>{{Country}}</td>
   </tr>
 </table>
 
<divappml-include-html="inc_footer.htm"></div>

 

 

 

Attribute Description Explained
appml-controller AppML controller হিসাবে বিবৃত AppML Controllers
appml-data এপ্লিকেশনের জন্য ডাটা সোর্স বিবৃত করে AppML Data
appml-include-html যে এইচটিএমএল ব্যবহৃত হবে তার বিবরণ AppML Includes
appml-repeat যে এইচটিএমএল পুনরাবৃত্ত হবে তার বিবরণ AppML Howto

 

অ্যাপ এম এল ম্যাসেজ

উদাহরণ,


function myController($appml) {
     if ($appml.message == "display") {
         if ($appml.display.name == "CustomerName") {
             $appml.display.value = $appml.display.value.toUpperCase();
         }
     }
 }

 

 

 

Message Description
“ready” অ্যাপ এম এল শুরুর পরে দেখায়, লোড করতে প্রস্তুত
“loaded” অ্যাপ এম এল লোডেড, ডাটা দেখাতে প্রস্তুত
“display” অ্যাপ এম এল কোনও ডাটা আইটেম দেখানোর আগে দেখায়।
“done” অ্যাপ এম এল সম্পন্ন হওয়ার পর দেখায়
“submit” অ্যাপ এম এল ডাটা সাবমিটের আগে দেখায়
“error” অ্যাপ এম এল কোনও ভুলের সম্মুখীন হলে দেখায়

 

অ্যাপ এম এল ম্যাসেজ অধ্যায়ে এগুলো আরও বিস্তারিত ব্যাখ্যা করা হবে।

 

অ্যাপ এম এল মডেল

উদাহরণ ,


{
 "security": "admin",
 "rowsperpage" : 10,
 
 "database": {
     "connection": "mysql",
     "sql"       : "SELECT * FROM Customers",
     "orderby"   : "CustomerName"}},
 
 "filteritems" : [
     {"item" : "CustomerName", "label" : "Customer"},
     {"item" : "City"},
     {"item" : "Country"}], 
 
 "sortitems" : [
     {"item" : "CustomerName", "label" : "Customer"},
     {"item" : "City"},
     {"item" : "Country"}]
 }

 

 

অ্যাপ এম এল মডেলের বৈশিষ্ট্য

 

উপাদান বর্ণনা
“data” মডেলের ফাইল সোর্স বর্ণনা করে।
“database” মডেলের ডাটাবেস সোর্স বর্ণনা করে।
“filteritems” ফিল্টারের সীমাবদ্ধতা নির্দেশ করে
“rowsperpage” প্রতি পেজে সারির সংখ্যা খুঁজে, বিবৃত করে
“security” মডেলের নিরাপত্তা বিবৃত করে
“sortitems” সর্টিং সীমাবদ্ধতা বিবৃত করে।

 

এপ্লিকেশন নিরাপত্তা

এপ্লিকেশনে ঢুকতে এডমিন মেম্বার হিসেবে লগ ইন করতে হবে।

উদাহরণ,


{
 "security": "admin",
 "database": {
     "connection": "mysql",
     "sql"       : "SELECT * FROM Customers",
     "orderby"   : "CustomerName"}
 }
প্রাইভেট মডেলঃ মডেলে নিজের প্রাইভেট ডাটা যোগ করার উপায় আছে, এই উদাহরণে ডাটার ক্ষেত্রে সীমাবদ্ধতা দেখানো হল,
"restrictions" : {
     "fname" : {"maxlength": 40},
     "price" : {"max": 999,"min": 100}
     }

 

 

মডেল ডাটা সার্ভার এপ্লিকেশনেও ব্যবহৃত হয়, অ্যাপ এম এল কন্ট্রোলার দ্বারা।

নিচের উদাহরণে ইনপুট ভ্যালিডেশনের জন্য মডেল ডাটা ব্যবহৃত হয়েছে।


function myController($appml) {
     if ($appml.message == "submit") {
         var price = document.getElementById("price").value;
         if (price < $appml.model.restrictions.price.min) {
             $appml.displayError(15, "Price too low!");
             return;
         }
 }

 

 

 

অ্যাপ এমএল এ অ্যামাজন ডাটাবেজ ব্যবহার করা (AppML using Amazon Database)

হ্যালো বন্ধুরা,

আমাদের সাইটে আসার জন্য ধন্যবাদ…

এখানে আমরা আমাজন ডাটাবেজ সম্পর্কে আলোচনা করব। ডাটাবেজ এ সংযুক্ত হওয়া খুব একটা কঠিন কাজ নয়। একটু জানলই তোমরা সহজেই ডাটাবেজ এর সাথে সংযুক্ত হতে পারবে

আস জেনে নেই…

আমাজন রিলেশনাল ডাটাবেস সার্ভিস কি (RDS)

বিভিন্ন ডাটাবেজ প্রতিষ্ঠানের মধ্যে আমাজন হলো একটি প্রতিষ্ঠান। এই প্রতিষ্ঠান বিভিন্ন ডাটাবেজের সুবিধা দিয়ে থাকে।

কেন আমরা আমাজন ডাটাবেজ ব্যবহার করব?

আমাজন রিলেশনাল ডাটাবেস সার্ভিস (RDS) একটি চলমান ডাটাবেজ এর অনেক চ্যালেঞ্জ মুখোমুখি পরিচালনা করে।

আপনার প্রয়োজন অনুসারে আমাজন রিলেশনাল ডাটাবেস সার্ভিস (RDS) এর সাথে কর্মক্ষমতা এবং স্টোরেজে এর পরিমান পরিবর্তন করতে পারেন।

রিলেশনাল ডাটাবেস সার্ভিস (RDS) স্বয়ংক্রিয় ব্যাকআপ, সংস্কার এবং পুনরুদ্ধারের পরিচালনা করে।

এটি জনপ্রিয় ডাটাবেজ পণ্যগুলো সমর্থন করে। যেমন:

  • MySQL
  • PostgreSQL
  • Oracle
  • Microsoft SQL Server
  • and the new, MySQL-compatible Amazon Aurora DB engine

শুরু করা যাক

আমাজন রিলেশনাল ডাটাবেস সার্ভিস (RDS) শুরু করার আগে, অবশ্যই আমাজান ওয়েব সার্ভারে সাইন আপ করে নিতে হবে এবং ডাটাবেস ব্যবহারকারী এবং নিরাপত্তা গ্রুপ সেট আপ করে নিতে হবে।

আমাজন ওয়েব সার্ভিসেস এ সাইন আপ

যখন আপনি আমাজন ওয়েব সার্ভিসেস (AWS) এ সাইন আপ করবেন, AWS অ্যাকাউন্ট স্বয়ংক্রিয়ভাবে আমাজন রিলেশনাল ডাটাবেস সার্ভিস (RDS) সহ AWS এর সকল সেবার সাথে সাইন আপ করা হয়ে যাবে।

আপনি যদি  AWS এর নতুন গ্রাহক হন তাহলে, বিনামূল্যে প্রদত্ত অ্যামাজন RDS দিয়ে শুরু করতে পারেন।

বিনামূল্যে প্রদত্ত AWS সাইন আপ করার ১২ মাস পর্দন্ত বিনামূল্যে ব্যবহার করার সুযোগ দেবে। আরো জানার জন্য দেখুন বিনামূল্যে AWS ব্যবহার

মুক্ত স্তর আপনি সাইন আপ করার পরে আপনাকে 12 মাসের জন্য বিনামূল্যে জন্য Aws চেষ্টা করতে পারবেন না. আরো তথ্যের জন্য, Aws ফ্রী ব্যবহার টিয়ার দেখতে.

আপনার ফ্রী ব্যবহারের সময় শেষ হওয়ার পরও (বা ফ্রী ট্রায়য়াল অফার এর চেয়ে বেশি স্টোরেজ বা কার্যকারিতা প্রয়োজন হলে) আপনি যদি আপনার ব্যবহার চালিয়ে যেতে চান, তাহলে আপনি শুধুমাত্র যে রিসোর্স ব্যবহার করবেন তার উপর ভিত্তি করে মূল্য প্রদান করবেন।

AWS অ্যাকাউন্ট তৈরি করার জন্য http://aws.amazon.com/, এবং তারপর সাইন আপ এ ক্লিক করুন।

পর্দায় প্রদর্শিত নির্দেশাবলী অনুসরণ করুন। AWS একাউন্ট নম্বর লিখে রাখুন, কেননা এটি পরবর্তীতে প্রয়োজন হবে।

একটি মাইএসকিউএল ডাটাবেস ইনস্ট্যান্স তৈরি

এন এই উদাহরণে আমরা মাইএসকিউএল চলমান একটি বিনামূল্যে ডাটাবেস ইনস্ট্যান্স সেট আপ হবে. (এটা পরীক্ষার জন্য দেয়ার উদ্দেশ্যে করা হচ্ছে, কারণ এটি বিনামূল্যে).

একটি মাইএসকিউএল ডিবি উদাহরণস্বরূপ তৈরি করুন:

  1. আমাজান RDS কনসোল এ যান: https://console.aws.amazon.com/rds/
  2. নেভিগেশন প্যানেল থেকে Instances এ ক্লিক করুন
  3. Launch DB Instance এ ক্লিক করুন
  4. নির্বাচিত ইঞ্জিন পৃষ্ঠায় MySQL আইকন এ ক্লিক করুন এবং তারপর MySQL DB engine এ ক্লিক করে নির্বাচন করুন।
  5. উৎপাদন? (Production?) পৃষ্ঠায় “No, this instance is intended for use outside of production…….” লেখা চেক বক্স এ ক্লিক করুন এবং তারপর Next Step এ ক্লিক করুন
  6. Specify DB Details পৃষ্ঠার নির্দেশাবলী অনুসরণ করুন। (বিনামূলে টেস্ট ডাটাবেজ সেটিং করতে এই নির্দেশাবলী অনুসরণ করুন)
  7. Configure Advanced Settings পৃষ্ঠার নির্দেশাবলী অনুসরণ করুন। (বিনামূলে টেস্ট ডাটাবেজ সেটিং করতে এই নির্দেশাবলী অনুসরণ করুন)
  8. Launch DB Instance এ ক্লিক করুন।
  9. View Your DB Instances এ ক্লিক করুন।
  10. ডিবি ইনস্ট্যান্স এর তালিকায় নতুন ডিবি ইনস্ট্যান্স দেখা যাবে (এটি ব্যবহার করার উপযুক্ত অবস্থা আসার আগ পর্যন্ত “creating” অবস্থা দেখাবে)।
  11. যখন অবস্থা পরিবর্তীত হয়ে “available” হবে তখন আপনি ডাটাবেজ এ সংযুক্ত হতে পারবেন।
  12. বিস্তারিত দেখার জন্য details আইকনে ক্লিক করুন এবং “Endpoint” থেকে পোর্ট সহ URL কপি করুন।

নোটঃ URL এর শেষের দিকে অনেকটা এরকম দেখা যেতে পারে:


databasename.aaabbbcccddd.region.rds.amazonaws.com:3306


 

 

আ্যাপ এম এল -এ ডাটাবেজ সংযোগ স্থাপন

AppML ডাটাবেস সংযোগ কনফিগার
ডাটাবেস সংযোগ কনফিগার করার জন্য, appml_config ফাইল এডিট:


{
 "dateformat" : "yyyy-mm-dd",
 "databases" : [{
 "connection" : "mydatabase",
 "host" : "yourDatabaseURL",
 "dbname" : "yourDatabaseName",
 "username" : "yourUserName",
 "password" : "yourPassword"
 }]
 }

 

নিম্নোক্ত বিষয়গুলো পরিবর্তন করুন

  1. mydatabase – আপনার অ্যাপ্লিকেশন এ ডাটাবেজ কানেকশন কল করা প্রয়োজন হলে এটি পরিবর্তন করুন।
  2. yourDatabaseURL – পূর্ববর্তী ধাপ থেকে Endpoint URL পরিবর্তন করুন।
  3. yourDatabaseName – আপনার Amazon RDS এর নাম অনুসারে আপনার ডাটাবেজ এর নাম পরিবর্তন করুন।
  4. yourUserName – আপনার Amazon RDS অনুসারে ইউজার এর নাম পরিবর্তন করুন।
  5. yourPassword – আপনার Amazon RDS অনুসারে পাসওয়ার্ড পরিবর্তন করুন।

অ্যাপ এমএল এখন Amazon RDS এর সাথে সংযুক্ত হওয়ার মতো কনফিগার করা হয়েছে।

আপনি এখন আপনার ডাটাবেজ কে ডাটা দ্বারা পূরণ করতে পারবেন:

 

  • আপনার যদি পিএইচপি সার্ভার এ প্রবেশাধিকার থাকে তাহলে তা AppML PHP অধ্যায় এ আলোচনা করা হয়েছে।
  • আপনার যদি ASP.NET সার্ভার এ প্রবেশাধিকার থাকে তাহলে তা AppML .NET অধ্যায় এ আলোচনা করা হয়েছে।
  • আপনার যদি কোন সার্ভার এ প্রবেশাধিকার না থাকে তাহলে তা AppML WebMatrix অধ্যায় এ আলোচনা করা হয়েছে।

 

অ্যাপ এম এল -এ গুগল ক্লাউড এসকিউএল ব্যবহার করা (AppML using Google Cloud SQL)

রফিকুল ইসলাম

 

গুগল ক্লাউড এসকিউএল কী

গুগল ক্লাউড এসকউএল হচ্ছে ক্লাউড ভিত্তিক ডাটাবেজ সেবা।

 

গুগল ক্লাউড এসকিউএল কেন?

গুগল ক্লাউড এসকিউএল, মাই এসকিউএল ডাটাবেজকে কোন অতিরিক্ত  বিরম্বনা ছাড়াই ক্লাউড এ স্থাপন করে।

গুগল শক্তিশালী ডাটাবেজ অফার করে এবং এর ব্যয় খুবই নমনীয় (যতটুকু ব্যবহার সেইঅনুপাতে বিল প্রদান করতে হয়)

গুগল স্বয়ংক্রিয় ব্যাকআপ, সংস্কার, এবং পুনরুদ্ধার পরিচালনা করে।

 

শুরু করা যাক

গুগল ক্লাউড এসকিউএল এর ব্যবহার শুরু করার আগে আপনার একটি গুগল একাউন্ট থাকতে হবে এবং গুগল ডেভেলপার কনসোল (Google Developers Console) এ সাইন আপ করতে হবে।

আপনার যদি গুগল একাউন্ট না থাকে তাহলে এখান থেকে গুগল একাউন্ট খুলুন।

 

গুগল ডেভেলপার কনসোল (Google Developers Console) এ সাইন আপ করা

যখন আপনি গুগল ডেভেলপার কনসোল এ সাইন আপ করবেন তখন, আপনার গুগল একাউন্ট সয়ংক্রিয়ভাবে গুগল ক্লাউড ও এসকিউএল এর সকল সেবার সাথে সাইন আপ করা হয়ে যাবে।

যদি আপনি ক্লাউড এর নতুন ব্যবহারকারী হন, তাহলে শুরু করার জন্য নির্দিষ্ট সময় বিনা মূল্যে ব্যবহার করতে পারেন। (ক্লাউড এসকিউএল প্রথম ৬০ দিনের জন্য বিনামূল্যে ব্যবহার করা যায়)। আরো জানতে বিনামূল্যে ক্লাউড দেখুন।

আপনার ফ্রী ব্যবহারের সময় শেষ হওয়ার পরও (বা ফ্রী ট্রায়য়াল অফার এর চেয়ে বেশি স্টোরেজ বা কার্যকারিতা প্রয়োজন হলে) আপনি যদি আপনার ব্যবহার চালিয়ে যেতে চান, তাহলে আপনি শুধুমাত্র যে রিসোর্স ব্যবহার করবেন তার উপর ভিত্তি করে মুল্য প্রদান করবেন।

গুগল ডেভেলপার কনসোন একাউন্ট খুলতে গুগল ডেভেলপার কনসোন একাউন্ট এ ক্লিক করুন এবং নির্দেশাবলী অনুসরণ করুন।

 

উদাহরণস্বরূপ মাইএসকিউএল  ডাটাবেজ তৈরি করন

এই উদাহরণে চলন্ত মাইএসকিউএল এ আমরা ডাটাবেস ইনস্ট্যান্স সেট আপ করবো।

মাইএসকিউএল ডিবি ইনস্ট্যান্স তৈরি

  • আপনি যখন আপনার একাউন্ট তৈরি করবেন তখন সয়ংক্রিয়ভাবে গুগল আপনার জন্য “My First Project” নামে একটি প্রোজেক্ট তৈরি করবে। আমরা এই উদাহরণে উক্ত প্রোজেক্টটি ব্যবহার করবো
  • মেনু থেকে “Storage” এ ক্লিক করুন এবং তারপর “Cloud SQL” এ ক্লিক করুন
  • “Create an instance” এ ক্লিক করুন
  • “Create Cloud SQL instance” পেজ এ আপনার ডিবি এসকিউএল ইনস্ট্যান্স এর জন্য নাম, অঞ্চল এবং কর্মক্ষমতা স্তর ইত্যাদি নির্বাচন করুন। এই উদাহরন এর জন্য আপনি এডভান্স অপশন ছেড়ে যেতে পারেন।
  • “Create” এ ক্লিক করুন।
  • ডিবি ইনস্ট্যান্স এর তালিকায় নতুন ডিবি ইনস্ট্যান্স দেখা যাবে (যখন এর অবস্থা “Runnable” থাকবে তখন এটি ব্যবহারের জন্য উপযুক্ত অবস্থায় থাকবে)।
  • ইনস্ট্যান্স এর নামের উপর ক্লিক করুন এবং নেভিগেশন প্যানেল এর “Access Control” এ ক্লিক করুন।
  • সাব নেভিগেশন প্যানেল এর “IP address”  এ ক্লিক করুন এবং “Request IPv4 address” বাটন এ ক্লিক করুন।
  • এই আইপি এড্রেসটি সংরক্ষণ করে রাখুন। এই আইপি এড্রেসটি ডাটাবেজ এ সংযুক্ত হওয়ার সময় প্রয়োজন হবে।
  • সাব নেভিগেশন প্যানেল এর “Users”  এ ক্লিক করুন এবং “New user” বাটন এ ক্লিক করুন।
  • আপনার ডাটাবেজ এর জন্য একটি ইউজার নেম ও পাসওয়ার্ড নির্দিষ্ট করে দিন।
  • সাব নেভিগেশন প্যানেল এর “Authorization”  এ ক্লিক করুন এবং তারপর Allowed Networks এর অধিন “+ Add item” বাটন এ ক্লিক করুন।
  • এখানে আপনি নির্দিষ্ট করে দিতে পারবেন কারা আপনার ডাটাবেজ এ প্রবেশ করতে পারবে, এটা হতে পারে
    • আপনার নিজস্ব আইপি বা আপনার সার্ভার এর আইপি। এভাবে আপনি আপনার ডাটাবেজ এ প্রবেশ করতে পারবেন।
    • বা 0.0.0.0/0, যা বাহিরের যেকোন আইপি এড্রেস আপনার ডাটাবেজ এ প্রবেশ করতে পারবে (এটি নিরাপত্তা ঝুকি সৃষ্টি করতে পারে এবং আপনাকে এর জন্য অতিরিক্ত মুল্য প্রদান করতে হতে পারে)
  • “Save” এ ক্লিক করুন।
  • নেভিগেশন প্যানেল থেকে “Databases” এ ক্লিক করুন এবং “New database” বাটন এ ক্লিক করুন।
  • আপনার ডাটাবেজ এর জন্য একটি নাম নির্দিষ্ট করুন। (আপনার প্রয়োজন অনুসারে অন্যান্য অপশনগুলে ছেড়ে যেতে পারেন)।

এখন আপনার একটি গুগল ক্লাউড এসকিউএল ডাটাবেজ আছে, সাথে আছে একটি আইপি আপনার ডাটাবেজ এ সংযুক্ত হওয়ার জন্য।

 

আ্যাপ এম এল -এ ডাটাবেজ সংযোগ স্থাপন

ডাটাবেজ সংযোগ স্থাপন করতে appml_config ফাইল কি সম্পাদনা করুন

PHP example: appml_config.php


<?php echo("Access Forbidden");exit();?>
{
"dateformat" : "yyyy-mm-dd",
"databases" : [{
"connection" : "mydatabase",
"host" : "yourDatabaseURL",
"dbname" : "yourDatabaseName",
"username" : "yourUserName",
"password" : "yourPassword"
}]
}

 

নিম্নোক্ত বিষয়গুলো পরিবর্তন করুন

  1. mydatabase – আপনার অ্যাপ্লিকেশন এ ডাটাবেজ কানেকশন কল করা প্রয়োজন হলে এটি পরিবর্তন করুন।
  2. yourDatabaseURL – পূর্ববর্তী ধাপ থেকে আইপি পরিবর্তন করুন এবং 3306 পোর্ট যোগ করুন। (উদাহরণ স্বরুপ:  192.168.1.1:3306)
  3. yourDatabaseName – আপনার গুগল ক্লাউড এসকিউএল এর নাম অনুসারে আপনার ডাটাবেজ এর নাম পরিবর্তন করুন।
  4. yourUserName – আপনার গুগল ক্লাউড এসকিউএল অনুসারে ইউজার এর নাম পরিবর্তন করুন।
  5. yourPassword – আপনার গুগল ক্লাউড এসকিউএল অনুসারে পাসওয়ার্ড পরিবর্তন করুন।

অ্যাপ এমএল এখন গুগল ক্লাউড এসকিউএল এর সাথে সংযুক্ত হওয়ার মতো কনফিগার করা হয়েছে।

আপনি এখন আপনার ডাটাবেজ কে ডাটা দ্বারা পূরণ করতে পারবেন।

 

  • আপনার যদি পিএইচপি সার্ভার এ প্রবেশাধিকার থাকে তাহলে তা AppML PHP অধ্যায় এ আলোচনা করা হয়েছে।
  • আপনার যদি ASP.NET সার্ভার এ প্রবেশাধিকার থাকে তাহলে তা AppML .NET অধ্যায় এ আলোচনা করা হয়েছে।
  • আপনার যদি কোন সার্ভার এ প্রবেশাধিকার না থাকে তাহলে তা AppML WebMatrix অধ্যায় এ আলোচনা করা হয়েছে।

 

 

 

SSC Quiz 07 : কম্পিউটার শিক্ষা : অধ্যায় ০৭ (ডাটাবেজ)

[slickquiz id=9]

অ্যাপ এম এল ওয়েবম্যাট্রিক্স (AppML WebMatrix)

রিদওয়ান বিন শামীম

 

কারো যদি ওয়েব সার্ভার না থাকে তবে অ্যাপ এম এল ওয়েবম্যাট্রিক্স ব্যবহার করে তৈরি করে নেয়া যায়।

 

ওয়েবম্যাট্রিক্স

ওয়েবম্যাট্রিক্স হল এক প্রকার ফ্রী ওয়েব ডেভেলাপমেন্ট টুল যেটি সহজে ওয়েবসাইট তৈরি করতে দেয়। এর উপাদানগুলো হল,

  • ওয়েবের উদাহরণ ও টেম্পলেট,
  • বিভিন্ন ওয়েব ল্যাঙ্গুয়েজের জন্য সাপোর্ট(যেমন পিএইচপি, এএসপি ডট নেট, নড জেএস ইত্যাদি),
  • একটি ওয়েব সার্ভার,
  • ডাটাবেস সার্ভার(মাইএসকিউএল, এসকিউএল সার্ভার কমপ্যাক)

ওয়েবম্যাট্রিক্স দিয়ে একদম ফাঁকা ওয়েব সাইট দিয়ে শুরু করে বা বিভিন্ন টেম্পলেট ব্যবহার করে সাইট তৈরি করা যায়।

ওয়েবম্যাট্রিক্সে কিছু বিল্ট ইন টুল আছে ডাটাবেস, নিরাপত্তা, সার্চ ইঞ্জিন অপটিমাইজেশন ও ওয়েব পাবলিশিং সংক্রান্ত। ওয়েবম্যাট্রিক্স ইন্সটল করার জন্য লিঙ্ক, http://www.microsoft.com/web/webmatrix

 

শূন্য পিএইচপি সাইট

ওয়েবম্যাট্রিক্স থেকে Template Gallery, সেখান থেকে PHP, তার ভেতর থেকে Empty Site সিলেক্ট করতে হয়। সেখান থেকে সাইট নেম চেঞ্জ করে DemoAppml বা অন্য কিছু দিতে হয়। এরপর Next বাটন চাপতে হয়।

new web

 

এইচটিএমএল টেস্ট পেজ তৈরি

ওয়েবম্যাট্রিক্সে New থেকে New File সেটি থেকে HTML টাইপ হিসেবে নির্ধারণ করতে হয়। ফাইল নেমকে customers.htm বা অন্য কোনও নামে চেঞ্জ করে দিতে হয়, এরপর OK বাটনে চাপতে হয়।

pic_matrix

নতুন ফাইলে এইচটিএমএল যেভাবে পরিবর্তিত হবে তা নিচের উদাহরণে দেখানো হল,

customers.htm


<!DOCTYPE html>
 <html lang="en">
 <title>Customers</title>
 <link rel="stylesheet" href=
 "http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
 <script src="http://www.w3schools.com/appml/2.0.3/appml.js"></script> 
 <body>
 
 <div class="container" appml-data="customers">
 <h1>Customers</h1>
 <table class="table table-striped table-bordered">
 <tr>
   <th>Customer</th>
   <th>City</th>
   <th>Country</th>
 </tr>
 <tr appml-repeat="records">
   <td>{{CustomerName}}</td>
   <td>{{City}}    </td>
   <td>{{Country}} </td>
 </tr>
 </table>
 </div>
 
 <script>
 var customers = {
 "records":[
 {"CustomerName":"Alfreds Futterkiste","City":"Berlin","Country":"Germany"},
 {"CustomerName":"Ana Trujillo Emparedados y helados","City":"México D.F.","Country":"Mexico"},
 {"CustomerName":"Antonio Moreno Taquería","City":"México D.F.","Country":"Mexico"},
 {"CustomerName":"Around the Horn","City":"London","Country":"UK"},
 {"CustomerName":"B's Beverages","City":"London","Country":"UK"},
 {"CustomerName":"Berglunds snabbköp","City":"Luleå","Country":"Sweden"},
 {"CustomerName":"Blauer See Delikatessen","City":"Mannheim","Country":"Germany"},
 {"CustomerName":"Blondel père et fils","City":"Strasbourg","Country":"France"},
 {"CustomerName":"Bólido Comidas preparadas","City":"Madrid","Country":"Spain"},
 {"CustomerName":"Bon app'","City":"Marseille","Country":"France"},
 {"CustomerName":"Bottom-Dollar Marketse","City":"Tsawassen","Country":"Canada"},
 {"CustomerName":"Cactus Comidas para llevar","City":"Buenos Aires","Country":"Argentina"},
 {"CustomerName":"Centro comercial Moctezuma","City":"México D.F.","Country":"Mexico"},
 {"CustomerName":"Chop-suey Chinese","City":"Bern","Country":"Switzerland"},
 {"CustomerName":"Comércio Mineiro","City":"São Paulo","Country":"Brazil"}
 ]};
 </script>
 
 </body>
</html>

 

 

টেস্টপেজ রান করানোর জন্য ওয়েবম্যাট্রিক্সে Right-click করে Launch in browser সিলেক্ট করতে হবে।

 

ডাটাবেস তৈরি করা

ওয়েবম্যাট্রিক্সে Databasesথেকে New Databaseসেখান থেকে MySQL Database নির্দিষ্ট করে দিতে হবে, ডাটাবেস নেম চেঞ্জ করে OK করে দিতে হবে।

 Web Mattix

ওয়েবম্যাট্রিক্সে Files সিলেক্ট করে web.config ফাইল ওপেন করতে হবে।

 

 

অ্যাপ এম এল কনফিগার করা

ফাইলনেম চেঞ্জ করে appml_config.php করতে হয়,

appml_config.php


<?php echo("Access Forbidden");exit();?>
 {
 "dateformat" : "yyyy-mm-dd",
 "databases" : [{
     "connection" : "mydatabase",
     "host" : "localhost",
     "dbname" : "DemoDB",
     "username" : "DemoDBUkbn5",
     "password" : "l6|U6=V(*T+P" 
 }]
 }

 

 

 

কনফিগারেশন ফাইলের ব্যাখ্যা

 

বৈশিষ্ট্য বর্ণনা
dateformat মডেলে ব্যবহৃত ডেট ফরম্যাট
connection মডেলে ব্যবহৃত কানেকশন নেম
host সার্ভারের আইপি বা হোষ্ট নেম
dbname ডাটাবেসে থাকা নাম
username ইউআইডিতে থাকা নাম
password আইডির পাসওয়ার্ড

 

 

অ্যাপ এম এল কপি করা

http://www.w3schools.com/appml/2.0.3/appml.php.txt. থেকে ডাউনলোড করে ওয়েবসাইটে কপি করে appml.php নামে রিনেম করতে হয়।

pic copy

ডাটাবেস টেবিল তৈরি করা

Create_Customers.js


{
“database” : {
“connection” : “mydatabase”,
“execute” : [
“DROP TABLE IF EXISTS Customers”,
“CREATE TABLE IF NOT EXISTS Customers (CustomerID INT NOT NULL AUTO_INCREMENT,PRIMARY KEY (CustomerID),CustomerName NVARCHAR(255),ContactName NVARCHAR(255),Address NVARCHAR(255),City NVARCHAR(255),PostalCode NVARCHAR(255),Country NVARCHAR(255))”,
“INSERT INTO Customers(CustomerName,ContactName,Address,City,PostalCode,Country)VALUES (\”Alfreds Futterkiste\”,\”Maria Anders\”,\”Obere Str. 57\”,\”Berlin\”,\”12209\”,\”Germany\”)”,
“INSERT INTO Customers(CustomerName,ContactName,Address,City,PostalCode,Country)VALUES (\”Around the Horn\”,\”Thomas Hardy\”,\”120 Hanover Sq.\”,\”London\”,\”WA1 1DP\”,\”UK\”)”,
“INSERT INTO Customers(CustomerName,ContactName,Address,City,PostalCode,Country)VALUES (\”Blauer See Delikatessen\”,\”Hanna Moos\”,\”Forsterstr. 57\”,\”Mannheim\”,\”68306\”,\”Germany\”)”
]
}}


 

 

Create_Customers model রান করাতে এইচটিএমএল পেজ তৈরি করতে হয়,

Create_Customers.htm


<!DOCTYPE html>
 <html lang="en-US">
 <script src="http://www.w3schools.com/appml/2.0.3/appml.js"></script>
 <body>
<div appml-data="appml.php?model=Create_Customers"></div>
</body>
 </html>

 

 

এইচটিএমএল পেজ রান করাতে ওয়েবম্যাট্রিক্সে Right-click করে Launch in browser সিলেক্ট করতে হবে।

 

এপ্লিকেশন তৈরি করা

কাস্টমার এপ্লিকেশন মডেল তৈরি করে customers.js নামে সংরক্ষণ করতে হয়।

Customers.js


{
 "rowsperpage" : 10,
 "database" : {
 "connection" : "mydatabase",
 "sql" : "SELECT * FROM Customers",
 "orderby" : "CustomerName"
 }
 }

 

 

কাস্টমার এপ্লিকেশন রান করাতে এইচটিএমএল পেজ তৈরি করতে হয়,

customers.htm


<!DOCTYPE html>
 <html lang="en">
 <title>Customers</title>
 <link rel="stylesheet" href= "http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
 <script src="http://www.w3schools.com/appml/2.0.3/appml.js"></script>
 <body>
<div class="container" appml-data="appml.php?model=customers">
 <h1>Customers</h1>
 <table class="table table-striped table-bordered">
 <tr>
 <th>Customer</th>
 <th>City</th>
 <th>Country</th>
 </tr>
 <tr appml-repeat="records">
 <td>{{CustomerName}}</td>
 <td>{{City}}</td>
 <td>{{Country}}</td>
 </tr>
 </table>
 </div>
</body>
 </html>

 

 

এইচটিএমএল পেজ রান করাতে ওয়েবম্যাট্রিক্সে Right-click করে Launch in browser সিলেক্ট করতে হবে।

 

অ্যাপ এম এল ডট নেট (AppML .NET)

রিদওয়ান বিন শামীম

 

ডট নেট সার্ভারে প্রবেশযোগ্যতা থাকলে নিচের প্রক্রিয়ায় অ্যাপ এম এল সার্ভার এপ্লিকেশন তৈরি করা যাবে, প্রবেশযোগ্যতা না থাকলে ওয়েবম্যাট্রিক্সের জন্য প্রযোজ্য প্রক্রিয়া অনুসরণ করতে হবে।

 

টেস্ট পেজ তৈরি করা

প্রথমে টেস্ট পেজ তৈরি করে সেটিকে পিএইচপি সার্ভারে customers.htm নাম দিয়ে(বা অন্য কোনও নামও চলবে) সংরক্ষণ করতে হবে।

customers.htm


<!DOCTYPE html>
 <html lang="en">
 <title>Customers</title>
 <link rel="stylesheet" href=
 "http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
 <script src="http://www.w3schools.com/appml/2.0.3/appml.js"></script>
 <body>
 
 <div class="container" appml-data="customers">
 <h1>Customers</h1>
 <table class="table table-striped table-bordered">
 <tr>
      <th>Customer</th>
      <th>City</th>
      <th>Country</th>
 </tr>
 <tr appml-repeat="records">
      <td>{{CustomerName}}</td>
      <td>{{City}}    </td>
      <td>{{Country}} </td>
 </tr>
 </table>
 </div>
 
 <script>
 var customers = {
 "records":[
 {"CustomerName":"Alfreds Futterkiste","City":"Berlin","Country":"Germany"},
 {"CustomerName":"Ana Trujillo Emparedados y helados","City":"México D.F.","Country":"Mexico"},
 {"CustomerName":"Antonio Moreno Taquería","City":"México D.F.","Country":"Mexico"},
 {"CustomerName":"Around the Horn","City":"London","Country":"UK"},
 {"CustomerName":"B's Beverages","City":"London","Country":"UK"},
 {"CustomerName":"Berglunds snabbköp","City":"Luleå","Country":"Sweden"},
 {"CustomerName":"Blauer See Delikatessen","City":"Mannheim","Country":"Germany"},
 {"CustomerName":"Blondel père et fils","City":"Strasbourg","Country":"France"},
 {"CustomerName":"Bólido Comidas preparadas","City":"Madrid","Country":"Spain"},
 {"CustomerName":"Bon app'","City":"Marseille","Country":"France"},
 {"CustomerName":"Bottom-Dollar Marketse","City":"Tsawassen","Country":"Canada"},
 {"CustomerName":"Cactus Comidas para llevar","City":"Buenos Aires","Country":"Argentina"},
 {"CustomerName":"Centro comercial Moctezuma","City":"México D.F.","Country":"Mexico"},
 {"CustomerName":"Chop-suey Chinese","City":"Bern","Country":"Switzerland"},
 {"CustomerName":"Comércio Mineiro","City":"São Paulo","Country":"Brazil"}
 ]};
 </script>
 
 </body>
 </html>

 

 

এরপর পেজটিকে ব্রাউজারে টেস্ট করতে হবে।

 

ডাটাবেস কানেকশন তৈরি করতে হবে

এসকিউএল সার্ভার ডাটাবেসে প্রবেশযোগ্যতা থাকলে(বা অন্য কোনও OLEDB ডাটাবেস যেমন এমএস এক্সেস) ডাটাবেস কানেকশন ডিফাইন করে সার্ভারে appml_config.aspx নাম দিয়ে সংরক্ষণ করতে হয়।

appml_config.aspx (SQL Server Example)


<%
 Response.write("Access Forbidden")
 Response.end
 %>
 {
 "dateformat" : "yyyy-mm-dd",
 "databases" : [
 "connection" : "mydatabase",
 "provider"   : "SQLOLEDB",
 "host"       : "myserver",
 "dbname"     : "DemoDB",
 "username"   : "DemoDBUkbn5",
 "password"   : "l6|U6=V(*T+P"
 }]
 }

 

appml_config.aspx (MS Access Example)


<%
 Response.write("Access Forbidden")
 Response.end
 %>
 {
 "dateformat" : "yyyy-mm-dd",
 "databases" : [
 {
 "connection" : "mydatabase",
 "connectionstring" :
 "Provider=Microsoft.Jet.OLEDB.4.0;data source=C:\\database\\Northwind.mdb"
 }
 }

 

উপরের উদাহরণের কানেকশন বাস্তব নয়, নাম ও পাসওয়ার্ড উদাহরণমাত্র।

 

কনফিগারেশন ফাইলের ব্যাখ্যা

বৈশিষ্ট্য বর্ণনা
dateformat মডেলে যে ডেট ফরম্যাট ব্যবহৃত হবে
connection মডেলে যে কানেকশন নেম ব্যবহৃত হবে
connectionstring OLEDB ড্রাইভার যেমন এমএস এক্সেস ইত্যাদির ক্ষেত্রে প্রযোজ্য
provider ডাটাবেস সফটওয়ারের পরিবেশক
host ডাটাবেসের আইডি বা হোষ্ট
dbname ডাটাবেসের নাম
username ডাটাবেসের ইউজারনেম
password ডাটাবেসের পাসওয়ার্ড

 

ডাটাবেস টেবিল তৈরি করা

ডাটাবেসে কাস্টমার টেবিল তৈরির মডেল নিচের উদাহরণে দেয়া হল,

create_customers.js


{
“database” : {
“connection” : “mydatabase”,
“execute” : [
“DROP TABLE IF EXISTS Customers”,
“CREATE TABLE IF NOT EXISTS Customers (CustomerID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,(CustomerID), CustomerName NVARCHAR(255),ContactName NVARCHAR(255),Address NVARCHAR(255),City NVARCHAR(255),PostalCode NVARCHAR(255),Country NVARCHAR(255))”,
“INSERT INTO Customers(CustomerName,ContactName,Address,City,PostalCode,Country)VALUES (\”Alfreds Futterkiste\”,\”Maria Anders\”,\”Obere Str. 57\”,\”Berlin\”,\”12209\”,\”Germany\”)”,
“INSERT INTO Customers(CustomerName,ContactName,Address,City,PostalCode,Country)VALUES (\”Around the Horn\”,\”Thomas Hardy\”,\”120 Hanover Sq.\”,\”London\”,\”WA1 1DP\”,\”UK\”)”,
“INSERT INTO Customers(CustomerName,ContactName,Address,City,PostalCode,Country)VALUES (\”Blauer See Delikatessen\”,\”Hanna Moos\”,\”Forsterstr. 57\”,\”Mannheim\”,\”68306\”,\”Germany\”)”
]
}}


 

 

create_customers.js model চালু করার জন্য এইচটিএমএল পেজ তৈরি করতে হয়,

create_customers.htm


<!DOCTYPE html>
 <html>
 <script src="http://www.w3schools.com/appml/2.0.3/appml.js"></script>
 <body>
 
 <div appml-data="appml.aspx?model=create_customers"></div>
 
 </body>
 </html>

 

এইচটিএমএল পেজটিকে ওয়েব ব্রাউজারে চালু করতে হয়।

 

 

এপ্লিকেশন তৈরি করা

কাস্টমার এপ্লিকেশনের মডেল তৈরি করে তাকে customers.js নাম দিয়ে সংরক্ষণ করতে হয়।

 

customers.js


{
 "rowsperpage" : 10,
 "database" : {
     "connection" : "mydatabase",
     "sql" : "SELECT * FROM Customers",
     "orderby" : "CustomerName"
 }
 }

 

 

এইচটিএমএল পেজ তৈরি করে তাতে কাস্টমার এপ্লিকেশন রান করাতে হয়,

customers.htm


<!DOCTYPE html>
 <html lang="en">
 <title>Customers</title>
 <link rel="stylesheet" href= "http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
 <script src="http://www.w3schools.com/appml/2.0.3/appml.js"></script> 
 <body>
 
 <div class="container" appml-data="appml.aspx?model=customers">
 <h1>Customers</h1>
 <table class="table table-striped table-bordered">
   <tr>
     <th>Customer</th>
     <th>City</th>
     <th>Country</th>
 </tr>
   <tr appml-repeat="records">
     <td>{{CustomerName}}</td>
     <td>{{City}}</td>
     <td>{{Country}}</td>
 </tr>
 </table>
 </div>
 
 </body>
</html>

 

 

 

 

অ্যাপ এম এল পিএইচপি (AppML PHP)

রিদওয়ান বিন শামীম

 

যদি কোনও পিএইচপি ডাটাবেসে প্রবেশযোগ্যতা থাকে তাহলে তাহলে নিচের নির্দেশ মোতাবেক অ্যাপ এম এল সার্ভার এপ্লিকেশন তৈরি করা সম্ভব হবে। পিএইচপি ডাটাবেসে প্রবেশযোগ্যতা না থাকলে ওয়েবম্যাট্রিক্সের জন্য প্রযোজ্য উপদেশ দেখতে হবে।

 

টেস্ট পেজ তৈরি করা

টেস্ট পেজ তৈরি করে customers.htm রূপে (বা অন্যকোনও রূপে) পিএইপি সার্ভারে সংরক্ষণ করতে হবে।

customers.htm


 <!DOCTYPE html>
 <html lang="en">
 <title>Customers</title>
 <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
 <script src="http://www.w3schools.com/appml/2.0.3/appml.js"></script>
 <body>
 
 <div class="container" appml-data="customers">
 <h1>Customers</h1>
 <table class="table table-striped table-bordered">
 <tr>
     <th>Customer</th>
     <th>City</th>
     <th>Country</th>
 </tr>
 <tr appml-repeat="records">
     <td>{{CustomerName}}</td>
     <td>{{City}}    </td>
     <td>{{Country}} </td>
 </tr>
 </table>
 </div>
 
 <script>
 var customers = {
 "records":[
 {"CustomerName":"Alfreds Futterkiste","City":"Berlin","Country":"Germany"},
 {"CustomerName":"Ana Trujillo Emparedados y helados","City":"México D.F.","Country":"Mexico"},
 {"CustomerName":"Antonio Moreno Taquería","City":"México D.F.","Country":"Mexico"},
 {"CustomerName":"Around the Horn","City":"London","Country":"UK"},
 {"CustomerName":"B's Beverages","City":"London","Country":"UK"},
 {"CustomerName":"Berglunds snabbköp","City":"Luleå","Country":"Sweden"},
 {"CustomerName":"Blauer See Delikatessen","City":"Mannheim","Country":"Germany"},
 {"CustomerName":"Blondel père et fils","City":"Strasbourg","Country":"France"},
 {"CustomerName":"Bólido Comidas preparadas","City":"Madrid","Country":"Spain"},
 {"CustomerName":"Bon app'","City":"Marseille","Country":"France"},
 {"CustomerName":"Bottom-Dollar Marketse","City":"Tsawassen","Country":"Canada"},
 {"CustomerName":"Cactus Comidas para llevar","City":"Buenos Aires","Country":"Argentina"},
 {"CustomerName":"Centro comercial Moctezuma","City":"México D.F.","Country":"Mexico"},
 {"CustomerName":"Chop-suey Chinese","City":"Bern","Country":"Switzerland"},
 {"CustomerName":"Comércio Mineiro","City":"São Paulo","Country":"Brazil"}
 ]};
 </script>
 
 </body>
</html>

 

ব্রাউজারে সেই ওয়েবপেজটি পরীক্ষা করে দেখতে হয়।

 

একটি ডাটাবেস কানেকশন তৈরি করতে হয়

পিএইচপি ডাটাবেসে প্রবেশযোগ্যতা থাকে তাহলে তাহলে নিচের নির্দেশ মোতাবেক অ্যাপ এম এল ডাটাবেস কানেকশন তৈরি করতে হয়। এক্ষেত্রেও পিএইচপি ডাটাবেসে প্রবেশযোগ্যতা না থাকলে ওয়েবম্যাট্রিক্সের জন্য প্রযোজ্য উপদেশ দেখতে হবে। ডাটাবেস কানেকশন তৈরি করে সার্ভারে appml_config.php নামে সংরক্ষণ করতে হয়,

 

appml_config.php


<?php echo("Access Forbidden");exit();?>
 {
 "dateformat" : "yyyy-mm-dd",
 "databases" : [{
     "connection" : "mydatabase",
     "host" : "localhost",
     "dbname" : "DemoDB",
     "username" : "DemoDBUkbn5",
     "password" : "l6|U6=V(*T+P" 
 }]
 }

 

উপরে বিবৃত কানেকশন বাস্তব নয়, নাম আর পাসওয়ার্ড উদাহরণমাত্র।

 

কনফিগারেশন ফাইলের বিস্তারিত

 

বৈশিষ্ট্য বর্ণনা
ডাটা ফরম্যাট মডেলে যে ডাটা ফরম্যাট ব্যবহৃত হবে
কানেকশন মডেলে যে কানেকশন ব্যবহৃত হবে
হোস্ট ডাটাবেসের আইপি হোস্ট
dbname ডাটাবেসের নাম
username ডাটাবেসের ইউজার নেম
password ডাটাবেসের পাসওয়ার্ড

 

create_customers.js


{
“database” : {
“connection” : “mydatabase”,
“execute” : [
“DROP TABLE IF EXISTS Customers”,
“CREATE TABLE IF NOT EXISTS Customers (CustomerID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,(CustomerID),CustomerName NVARCHAR(255),ContactName NVARCHAR(255),Address NVARCHAR(255),City NVARCHAR(255),PostalCode NVARCHAR(255),Country NVARCHAR(255))”,
“INSERT INTO Customers(CustomerName,ContactName,Address,City,PostalCode,Country)VALUES (\”Alfreds Futterkiste\”,\”Maria Anders\”,\”Obere Str. 57\”,\”Berlin\”,\”12209\”,\”Germany\”)”,
“INSERT INTO Customers(CustomerName,ContactName,Address,City,PostalCode,Country)VALUES (\”Around the Horn\”,\”Thomas Hardy\”,\”120 Hanover Sq.\”,\”London\”,\”WA1 1DP\”,\”UK\”)”,
“INSERT INTO Customers(CustomerName,ContactName,Address,City,PostalCode,Country)VALUES (\”Blauer See Delikatessen\”,\”Hanna Moos\”,\”Forsterstr. 57\”,\”Mannheim\”,\”68306\”,\”Germany\”)”
]
}}


 

create_customers.js model চালানোর জন্য এইচটিএমএল পেজ তৈরি করতে হয়,

create_customers.htm


 <!DOCTYPE html>
 <html>
 <script src="http://www.w3schools.com/appml/2.0.3/appml.js"></script>
 <body>
 
 <div appml-data="appml.php?model=create_customers"></div>
 
 </body>
 </html>

 

এখন ব্রাউজারে এইচটিএমএল পেজটি চালাতে হবে।

 

এপ্লিকেশন মডেল তৈরি করা

কাস্টমারের এপ্লিকেশনের জন্য মডেল তৈরি করতে হয়। এটিকে customers.js নাম দিতে হবে।

customers.js


{
 "rowsperpage" : 10,
 "database" : {
     "connection" : "mydatabase",
     "sql" : "SELECT * FROM Customers",
     "orderby" : "CustomerName"
 }
 }

 

কাস্টমারের এপ্লিকেশন রান করানোর জন্য এইচটিএমএল পেজ তৈরি করতে হবে,

 

customers.htm


<!DOCTYPE html>
 <html lang="en">
 <title>Customers</title>
 <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
 <script src="http://www.w3schools.com/appml/2.0.3/appml.js"></script>
 <body>
 
 <div class="container" appml-data="appml.php?model=customers">
 <h1>Customers</h1>
 <table class="table table-striped table-bordered">
   <tr>
     <th>Customer</th>
     <th>City</th>
     <th>Country</th>
 </tr>
   <tr appml-repeat="records">
     <td>{{CustomerName}}</td>
     <td>{{City}}</td>
     <td>{{Country}}</td>
 </tr>
 </table>
 </div>
 
 </body>
</html>