পিএইচপি প্রিপেয়ার্ড স্ট্যাটমেন্ট (PHP Prepared Statements in Bangla)

ডাটাবেজ ম্যানেজম্যান্ট সিস্টেমে একটি প্রিপেয়ার্ড স্টেটমেন্ট হলো এমন একটি ফিচার যা একই বা একই ধরণের ডাটাবেজ স্টেটমেন্ট (যেমন SQL) বারবার দক্ষতার সাথে অ্যাকজিকিউট করতে ব্যবহৃত হয়। সার্ভার সাইড স্ক্রিপ্টিং ভাষা পিএইচপিতে (PHP) প্রিপেয়ার্ড স্টেটমেন্টগুলো এসকিউএল ইঞ্জেকশনের বিরুদ্ধে খুবই কার্যকর ভূমিকা রাখে। এসকিউএল ইঞ্জেকশন হলো এক ধরণের ইঞ্জেকশন কোড যা ডাটা-প্রোগ্রামগুলোতে আক্রমণ ও তথ্য চুরির কাজে ব্যবহার করা হয়।

 

প্রিপেয়ার্ড স্টেটম্যান্টস এবং বাউন্ড প্যারামিটারস

প্রিপেয়ার্ড স্টেটমেন্টগুলো সাধারণত নিচের মতো কাজ করেঃ

  1. প্রিপেয়ারঃ একটি এসকিউএল স্টেটমেন্ট টেমপ্লেট তৈরি করা হয় এবং ডাটাবেজে পাঠানো হয়। নির্দিষ্ট কতগুলো ভ্যালু অসংজ্ঞায়িত রাখা হয়, যেগুলো প্যারামিটার নামে পরিচিত এবং “?” চিহ্ন দিয়ে বুঝানো হয়। উদাহরণঃ INSERT INTO MyGuests VALUES(?, ?, ?)
  2. ডাটাবেজ এসকিউএল স্টেটমেন্ট টেমপ্লেটের উপর পার্স, কম্পাইল ও কোয়ারি অপটিমাইজেশন করে এবং তার ফলাফলটি একজিকিউট করে সংরক্ষণ করে।
  3. একজিকিউটঃ পরবর্তীতে, অ্যাপ্লিকেশনটি ভ্যালুগুলোকে প্যারামিটারে বাইন্ড করে, এবং ডাটাবেজ স্টেটমেন্টটিকে একজিকিউট করে। অ্যাপ্লিকেশনটি স্টেটমেন্টকে প্রত্যেকবার আলাদা আলাদা ভ্যালুর মাধ্যমে যতবার ইচ্ছে একজিকিউট করতে পারে।

এসকিউএল স্টেটমেন্ট সরাসরি একজিকিউট করার তুলনায় প্রিপেয়ার্ড স্টেটমেন্টের মাধ্যমে একজিকিউট করার দু’টি প্রধান সুবিধা রয়েছেঃ

  • প্রিপেয়ার্ড স্টেটমেন্ট পার্সিং টাইমকে কমিয়ে দেয় যেহেতু কোয়ারির উপর প্রস্তুতি একবারই করা হয় (যদিও স্টেটমেন্টটি অসংখ্যবার একজিকিউট করা হয়)।
  • বাউন্ড পারামিটারগুলো সার্ভারের প্রতি ব্যান্ডউইথের চাপ কমিয়ে দেয় যেহেতু আপনাকে শুধু প্যারামিটারগুলোকেই বার বার পাঠাতে হয়, পুরো কোয়ারি পাঠাতে হয়না।

প্রিপেয়ার্ড স্টেটমেন্ট এসকিউএল ইঞ্জেকশনের বিরুদ্ধে খুবই কার্যকরী কারণ প্যারামিটার ভ্যালুগুলোকে, যেগুলো পরবর্তীতে ভিন্ন প্রটোকল ব্যবহার করে পাঠানো হয়, তাদের সঠিকভাবে মুক্ত হতে হয় না। যদি এক্সটার্নাল ইনপুট থেকে প্রকৃত স্টেটমেন্ট টেমপ্লেটটিকে সংগ্রহ করা না হয়, তাহলে এসকিউএল ইঞ্জেকশন ঘটানো সম্ভব হয় না।

 

MySQLi-এ প্রিপেয়ার্ড স্টেটমেন্ট

নিচের উদাহরণটি MySQLi এ প্রিপেয়ার্ড স্টেটমেন্ট এবং বাউন্ড প্যারামিটার ব্যবহার করেঃ


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// prepare and bind
$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) 
        VALUES (?, ?, ?)");
$stmt->bind_param("sss", $firstname, $lastname, $email);

// set parameters and execute
$firstname = "John";
$lastname = "Doe";
$email = "john@example.com";
$stmt->execute();

$firstname = "Mary";
$lastname = "Moe";
$email = "mary@example.com";
$stmt->execute();

$firstname = "Julie";
$lastname = "Dooley";
$email = "julie@example.com";
$stmt->execute();

echo "New records created successfully";

$stmt->close();
$conn->close();
?>

 

উপরের উদাহরণটি থেকে ব্যাখ্যা করার কোড লাইনঃ


“INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)”


আমাদের SQL এ আমরা একটি প্রশ্নবোধক চিহ্ন অন্তর্ভূক্ত করেছি(?) যা আমরা একটি ইন্টিজার বা পূর্ন সংখ্যা, স্ট্রিং, ডাবল অথবা ব্লব ভ্যালু দিয়ে প্রতিস্থাপন করতে চাই।

এখন, bind_param() ফাংশনের দিকে লক্ষ্য করা যাকঃ


$stmt->bind_param(“sss”, $firstname, $lastname, $email);


এই ফাংশনটি প্যরামিটারগুলোকে এসকিউএল কোয়ারির দিকে বাইন্ড করে এবং ডাটাবেজকে প্যারামিটারগুলো সম্পর্কে বলে দেয়। “sss” আর্গুমেন্টটি প্যারামিটারগুলোর অনুসারে ডাটার প্রকারকে তালিকাভূক্ত করে। ‘s’ অক্ষরটি মাইএসকিউএলকে বলে দেয় যে প্যারামিটারটি হলো একটি স্ট্রিং।

আর্গুমেন্টটি নিচের চার প্রকারের যেকোন একটি হতে পারেঃ

  • i – integer
  • d – double
  • s – string
  • b – BLOB

আমাদের প্রত্যেকটি প্যারামিটারের জন্য এগুলোর যেকোন একটি অবশ্যই লাগবে।

মাইএসকিউএলকে কি ধরনের ডাটা চাই তা বলার মাধ্যমে আমরা এসকিউএল ইঞ্জেকশনের ঝুঁকি কমিয়ে দিতে পারি।

লক্ষ্যণীয়ঃ যদি আমরা কোন এক্সটার্নাল সোর্স থেকে ডাটা ইনপুট করতে চাই (ইউজার ইনপুটের মতো) এটা খুবই গুরুত্বপূর্ণ যে আগে ডাটাকে স্যানিটাইজ এবং মিনিমাইজ করা হয়েছে।

 

PDO তে প্রিপেয়ার্ড স্টেটমেন্ট

নিচের উদাহরণটিতে PDO তে প্রিপেয়ার্ড স্টেটমেন্ট এবং প্যারামিটার ব্যবহার করা হয়েছেঃ


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // prepare sql and bind parameters
    $stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email)
    VALUES (:firstname, :lastname, :email)");
    $stmt->bindParam(':firstname', $firstname);
    $stmt->bindParam(':lastname', $lastname);
    $stmt->bindParam(':email', $email);

    // insert a row
    $firstname = "John";
    $lastname = "Doe";
    $email = "john@example.com";
    $stmt->execute();

    // insert another row
    $firstname = "Mary";
    $lastname = "Moe";
    $email = "mary@example.com";
    $stmt->execute();

    // insert another row
    $firstname = "Julie";
    $lastname = "Dooley";
    $email = "julie@example.com";
    $stmt->execute();

    echo "New records created successfully";
    }
catch(PDOException $e)
    {
    echo "Error: " . $e->getMessage();
    }
$conn = null;
?>

 

এএসপি ডট নেট এমভিসি-স্টাইলস অ্যান্ড লেআউট (ASP.NET MVC – Styles and Layout)

এএসপি ডট নেট এমভিসি-স্টাইলস অ্যান্ড লেআউট (ASP.NET MVC – Styles and Layout)

লেখাঃ মীর তাউহীদুল ইসলাম ।
ওয়েব ডেভেলপার, ওডেস্ক

কেমন আছেন সবাই? অনেকদিন পর আবার আপনাদের সাথে দেখা । আজ আমি আপনাদের সাথে আলোচনা করবো এএসপি ডট নেট এমভিসি-স্টাইলস অ্যান্ড লেআউট নিয়ে।

এএসপি ডট নেট এমভিসি (ASP.NET MVC) শিখতে,আমরা একটি ইন্টারনেট অ্যাপ্লিকেশন তৈরি করতেছি।

তৃতীয় পার্ট: স্টাইল এবং সুন্দর শৈলী যোগ করা।

লেআউট যোগ করাঃ
Layout.cshtml নামক ফাইলটি অ্যাপ্লিকেশনের প্রত্যেকটি পেইজে লেআউট উপস্থাপন করে।এটি ভিউস(দেখা) ফোল্ডারের ভিতরে শেয়ার্ড ফোল্ডারে অবস্থিত।
এখন ফাইলটি ওপেন করতে হবে এবং এর ভিতরে থাকা বিষয়বস্তু রদবদল করতে হবে যা নিম্নোক্ত কোডের মাধ্যমে দেখানো হলঃ

DOCTYPE html>
<html>
<head>
<meta charset=”utf-8″ />
<title>@ViewBag.Title</title>
css”)” rel=”stylesheet” type=”text/css” />
<script src=”@Url.Content(“~/Scripts/jquery-1.5.1.min.js”)”></script>
<script src=”@Url.Content(“~/Scripts/modernizr-1.7.min.js”)”></script>
</head>
<body>
<ul id=”menu”>
<li>@Html.ActionLink(“Home”, “Index”, “Home”)</li>
<li>@Html.ActionLink(“Movies”, “Index”, “Movies”)</li>
<li>@Html.ActionLink(“About”, “About”, “Home”)</li>
</ul>
<section id=”main”>
@RenderBody()

Copyright W3schools 2012. All Rights Reserved.
</section>
</body>
</html>

এইচটিএমএল সাহায্যকারীঃ/HTML Helpers
উপরের কোডটিতে এইচটিএমএল সাহায্যকারী গুলো এইচটিএমএল এর আউটপুট টিকে পরিবর্তন করার জন্য ব্যাবহার করা হয়েছে।
@Url.Content() -URL- এ কন্টেন্ট এখানে সন্নিবেশিত করা হবে।
@Html.ActionLink() -এইচটিএমএল লিংক এখানে সন্নিবেশ করা হবে।

রেজর সিনট্যাক্স(Razor Syntax)
উপরের কোডটিতে যে কোডগুলো লাল রং দ্বারা চিহ্নিত করা হয়েছে তাদের মধ্যে সি শার্প(C#)এবং রেজর মারকাপ ব্যাবহার করা হয়েছে।
@ViewBag.Title – পেজের শিরোনাম এখানে সন্নিবেশিত করা হবে।
@RenderBody()- পেজের কন্টেন্ট এখানে অনুষ্ঠিত হবে।

নোটঃ আমরা রেজর মারকাপ সম্পর্কে জানতে সি-শার্প এবং ভিজুয়াল বেসিক এর জন্য আমাদের রেজরের টউটোরিয়াল দেখতে পারি।

স্টাইল যোগ করাঃ
অ্যাপ্লিকেশনের জন্য যে স্টাইল-সিট রয়েছে তার নাম সাইট ডট সিএসএস(Site.css)।এটি কন্টেন্ট ফোল্ডারে থাকে।
এখন সাইট ডট সিএসএস(Site.css) ফাইলটিকে ওপেন করি এবং এর কন্টেন্ট গুলো রদবদল করিঃ

body
{
font: “Trebuchet MS”, Verdana, sans-serif;
background-color: #5c87b2;
color: #696969;
}
h1
{
border-bottom: 3px solid #cc9900;
font: Georgia, serif;
color: #996600;
}
#main
{
padding: 20px;
background-color: #ffffff;
border-radius: 0 4px 4px 4px;
}
a
{
color: #034af3;
}
/* Menu Styles ——————————*/
ul#menu
{
padding: 0px;
position: relative;
margin: 0;
}
ul#menu li
{
display: inline;
}
ul#menu li a
{
background-color: #e8eef4;
padding: 10px 20px;
text-decoration: none;
line-height: 2.8em;
/*CSS3 properties*/
border-radius: 4px 4px 0 0;
}
ul#menu li a:hover
{
background-color: #ffffff;
}
/* Forms Styles ——————————*/
fieldset
{
padding-left: 12px;
}
fieldset label
{
display: block;
padding: 4px;
}
input[type=”text”], input[type=”password”]
{
width: 300px;
}
input[type=”submit”]
{
padding: 4px;
}
/* Data Styles ——————————*/
table.data
{
background-color:#ffffff;
border:1px solid #c3c3c3;
border-collapse:collapse;
width:100%;
}
table.data th
{
background-color:#e8eef4;
border:1px solid #c3c3c3;
padding:3px;
}
table.data td
{
border:1px solid #c3c3c3;
padding:3px;
}

 

The _ViewStart File

Shared folder এর _ViewStart file এ নিচের লাইনটি থাকে যা (লাইনটি) সব ভিউ ফাইল এর সাথে যুক্ত হয়। এই লাইনটি remove করলে এই লাইনটি আপনাকে সব ভিউ ফাইল এ যোগ করতে হবে।

@{Layout = “~/Views/Shared/_Layout.cshtml”;}

 

আশাকরি আমরা সবাই উপরের কোড টুকু বুঝতে পেরেছি।
আজ আর নয়।এপর্যন্তই থাক।এর পরে আবার হাজির হবো অন্য কিছু নিয়ে।সে পর্যন্ত ভাল থাকবেন।আর এ বিষয়ে আরও জানতে যেতে পারেন এই

http://Bangla.SaLearningSchool.com

পিএইচপি – মাইএসকিউএল হতে ডাটা সিলেক্ট করা (PHP Select Data From MySQL in Bangla)

select statement ব্যবহার করা হয় টেবিল এর মধ্যে কোন ডাটা সিলেক্ট করে ডিসপ্লে করার জন্য
Sql syntax


SELECT column_name(s) FROM table_name


অথবা আমরা ব্যবহার করতে পারি


SELECT * FROM table_name


 

পিএইচপি দিয়ে এর ব্যবহার বোঝার জন্য আমাদের একটি টেবিল তৈরি করতে হবে নিচের মতন

মনে করি এই টেবিল এর নাম MyGuests

id firstname lastname email reg_date
1 John Doe john@example.com 2014-10-22 14:26:15
2 Mary Moe mary@example.com 2014-10-23 10:22:30
3 Julie Dooley julie@example.com 2014-10-26 10:48:23

এই ক্ষেত্রে আমরা ৩ নাম্বার ডাটাটি পরিবর্তন করতে চাই

পিএইচপি কোড


< ?php               /*আমাদের ডাটাবেসের ইউজার নাম, পাসওয়ার্ড, সার্ভার নাম সেট করতে হবে*/ 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "myDB";    //কানেকশন দিতে হবে 
$conn = new mysqli($servername, $username, $password, $dbname); 
                     // কানেকশন চেক করতে হবে ঠিক মত connect হয়েছে কিনা 
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
                    /*আমদের SQL QUERY প্রথমে ডাটাবেস এর নাম উল্লেখ করে কলামগুলোর নাম দেওয়া হয়েছে*/
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
                  /*যদি ০ এর চেয়ে বেসি রো থাকে তাহলে ডাটা ডিসপ্লে করবে*/ 
   // output data of each row
   /*sql code টেবিল এর ডাটা ডিসপ্লে করার*/
   while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "br";
   }
} else { /*যদি ডাটা না থাকে সে বলবে টেবিল এ কোন ডাটা নেই*/
       echo "0 results";
}
$conn->close();
?>

 

ASP.NET MVC – অ্যাপ্লিকেশন ফোল্ডার . ASP.NET MVC – Application Folders

ASP.NET MVC – অ্যাপ্লিকেশন ফোল্ডার
লেখকঃ নয়ন চন্দ্র দত্ত

কি খবর সবার? সবাই ভালতো? আজ আমি অনেক গুরুত্বপুর্ণ একটা বিষয় নিয়ে বিস্তারিত আলোচনা করবো । সেটি হচ্ছে- ASP.NET MVC – অ্যাপ্লিকেশন ফোল্ডার।
আজ আমরা MVC – অ্যাপ্লিকেশন ফোল্ডার সম্পর্কে, এর ব্যবহার সম্পর্কে দেখব। তাহলে চলুন শুরু করা যাক …।

ASP.NET MVC শিখতে, আমরা একটি ইন্টারনেট অ্যাপ্লিকেশন তৈরী করছি ।
অ্যাপ্লিকেশন ফোল্ডার এক্সপ্লোরিং

MVC ফোল্ডার
একটি টাইপিক্যাল ASP.NET MVC ওয়েব অ্যাপ্লিকেশনে নিম্নলিখিত ফোল্ডার কন্টেন্ট আছেঃ

 

পোস্ট এর শেষে কিছু ছবির লিঙ্ক দেয়া আছে। ছবি দেখলে ধারণা গুলো পরিস্কার হবে।
Application information

Properties
References

Application folders
App_Data Folder
Content Folder
Controllers Folder
Models Folder
Scripts Folder
Views Folder

Configuration files

Global.asax
packages.config
Web.config

ফোল্ডারের নাম সব MVC অ্যাপ্লিকেশনে সমান ।MVC ফ্রেমওয়ার্ক ডিফল্ট নামকরণ এর উপর নির্ভর করে। কন্ট্রোলারগুলো কন্ট্রোলার ফোল্ডারে, Views, Views ফোল্ডারে এবং মডেল মডেল ফোল্ডার আছে ।
অ্যাপ্লিকেশন কোড এ আপনাকে ফোল্ডারের নাম ব্যবহার করতে হবে না ।
স্ট্যান্ডার্ড নামকরণ কোডের পরিমাণ হ্রাস এবং ডেভেলপারদের MVC প্রকল্প বোঝার জন্য এটা সহজ করে তোলে। প্রতিটি ফোল্ডারের বিষয়বস্তুর একটি সংক্ষিপ্ত সারাংশ নিম্নরূপঃ

App_Data ফোল্ডার
App_Data ফোল্ডার আবেদন তথ্য সংরক্ষণের জন্য । আমরা পরে এই টিউটোরিয়াল এ App_Data ফোল্ডারে একটি SQL ডাটাবেস যোগ করব ।

Content বা বিষয়বস্তু ফোল্ডার
বিষয়বস্তু ফোল্ডার স্টাইল শীট (CSS ফাইল), আইকন এবং ইমেজের মত স্ট্যাটিক ফাইল এ ব্যবহার করা হয়। ভিসুয়াল ওয়েব ডেভেলপার স্বয়ংক্রিয়ভাবে Content বা বিষয়বস্তু ফোল্ডারে একটি থিম ফোল্ডার যোগ করে।
থিম ফোল্ডার jQuery এর শৈলী এবং ছবির দিয়ে ভরা থাকে। এই প্রকল্পের মধ্যে আপনি থিম ফোল্ডার মুছে দিতে পারেন ।
ভিসুয়াল ওয়েব ডেভেলপার প্রকল্পে একটি স্ট্যান্ডার্ড স্টাইল শীট ফাইলও যোগ করেঃ কন্টেন্ট ফোল্ডারে Site.css ফাইলটি ।স্টাইল সিট ফাইল সম্পাদনা করার উপযুক্ত হয় যখন আপনি application স্টাইল পরিবর্তন করতে চান।
আমরা এই টিউটোরিয়াল এর পরবর্তী অধ্যায়ে স্টাইল শীট ফাইল ( Site.css ) ফাইল সম্পাদনা (edit) করব।

Controllers বা কনট্রোলার ফোল্ডার
কনট্রোলারের ফোল্ডার ব্যবহারকারীর ইনপুট এবং প্রতিক্রিয়া পরিচালনা করার জন্য দায়ী কনট্রোলার ক্লাস ধারণ করে।
MVC “কন্ট্রোলার ” দিয়ে শেষ করতে সব কন্ট্রোলার ফাইলের নাম প্রয়োজন।ভিসুয়াল ওয়েব ডেভেলপার (হোম এবং About পেজের জন্য) একটি হোম কন্ট্রোলার এবং একটি অ্যাকাউন্ট কন্ট্রোলার(লগিন পেজের জন্য) তৈরি করে।
আমরা পরে এই টিউটোরিয়ালে আরও কন্ট্রোলার তৈরি করব ।

Models বা মডেল ফোল্ডার
মডেল ফোল্ডার অ্যাপ্লিকেশন মডেল প্রতিনিধিত্বকারী ক্লাসগুলো ধারণ করে। মডেল হোল্ড এবং আবেদন তথ্য নিপূণভাবে করে।
আমরা এই টিউটোরিয়ালের পরবর্তী অধ্যায়ে মডেল ( ক্লাস) তৈরী করব।

Views ফোল্ডার
Views ফোল্ডার আবেদন প্রকাশ( ইউজার ইন্টারফেস ) করা সম্পর্কিত HTML ফাইল ফোল্ডার জমা রাখে। Views ফোল্ডার প্রতিটি কন্ট্রোলার ফোল্ডারের জন্য একটি ফোল্ডার ধারণ করে।
ভিসুয়াল ওয়েব ডেভেলপার একটি অ্যাকাউন্ট ফোল্ডার, একটি হোম ফোল্ডার , এবং ( Views ফোল্ডারের ভিতরে ) একটি শেয়ার করা ফোল্ডার তৈরি করে।
নিবন্ধন ও ব্যবহারকারীর অ্যাকাউন্টে লগ ইন এর জন্য অ্যাকাউন্ট ফোল্ডার পেজ ধারণ করে থাকে।
হোম ফোল্ডার মূল পৃষ্ঠা এবং about পেজের মত আবেদন পেজ জমা রাখার জন্য ব্যবহৃত হয়।
Shared ফোল্ডার কন্ট্রোলার (মাস্টার পৃষ্ঠা এবং layout বা বিন্যাস পৃষ্ঠা) মধ্যে views শেয়ার্ড জমা রাখতে ব্যবহৃত হয়।
আমরা এই টিউটোরিয়ালের পরবর্তী অধ্যায়ে layout বা বিন্যাস ফাইল সম্পাদনা করব ।

Scripts বা স্ক্রিপ্ট ফোল্ডার
জাভাস্ক্রিপ্ট ফাইল আবেদনের জাভাস্ক্রিপ্ট ফাইল জমা রাখে ।
ডিফল্টরূপে ভিসুয়াল ওয়েব ডেভেলপার এই ফোল্ডারটি স্ট্যান্ডার্ড MVC , AJAX, এবং jQuery ফাইল দিয়ে পূর্ণ করে।

[ দ্রষ্টব্য: ” Modernizr ” নামে জাভাস্ক্রিপ্ট ফাইল অ্যাপ্লিকেশনে HTML5 এবং CSS3 বৈশিষ্ট্য সমর্থনের জন্য ব্যবহৃত হয় ।। ]

http://bangla.salearningschool.com/aspnet/pic_mvc_scripts.jpg

আজকের মত এই পর্যন্ত। আশা করি সবার খুব ভাল লেগেছে । আশা করছি পরবর্তি টিউটোরিয়ালে MVC – অ্যাপ্লিকেশন ফোল্ডার নিয়ে আরও বিস্তারিত আলোচনা করব। সবাই বেশি বেশি করে প্রাকটিস করবেন ।

 

ছবিতে দেখার জন্য নিচের লিঙ্ক এ যেতে পারেন

http://bangla.salearningschool.com/aspnet/pic_mvc_solution.jpg

http://bangla.salearningschool.com/aspnet/pic_mvc_content.jpg

http://bangla.salearningschool.com/aspnet/pic_mvc_controllers.jpg

http://bangla.salearningschool.com/aspnet/pic_mvc_views.jpg

http://bangla.salearningschool.com/aspnet/pic_mvc_scripts.jpg
সবাই ভাল থাকবেন আর কোন সমস্যা হলে কমেন্ট অপশনত আছেই। তাই কমেন্ট করতে বুলবেন না ।

সেঞ্চা টাচ শুরু করা । Getting Started with Sencha Touch

সেঞ্চা টাচ শুরু করা ।
Ext JS 5 এবং Sencha Cmd 5 শুরু করাটা খুবই সহজ, এ দুটো ধাপ এক সাথে করার মাধ্যমে লোকাল সার্ভারে শুরু করা যাবে। . বলে নেয়া ভাল এর সাথে একটি রুবি কমান্ড ভার্সন(ruby command compatible with 1.8 or 1.9) সিস্টেম পাথে(system path)দিয়ে দেয়া থাকে।
প্রথমে টার্মিনাল বা কনসোল উইন্ডো খুলে তাতে নিচের কমান্ডগুলো লিখতে হবেঃ
sencha generate app -ext MyApp ./app
cd app
sencha app watch
আপনি যদি ফ্রেমওয়ার্কের লোকাল কপি ব্যাবহার করতে চান তাহলে এই কোডগুলিও লিখতে পারেন আগের কোডগুলোর পরিবর্তেঃ
sencha -sdk /path/to/framework generate app MyApp ./app
প্রথম ধাপটা হয়ে গেল। আপনি অলরেডি এপ্লিকেশন তৈরি করেছেন এবং একটি সার্ভারে তা চালুও করেছেন। . তাই এখন এখানে নেভিগেট করে http://localhost:1841 বা আপনার লোকাল সার্ভারে নেভিগেট করে Ext JS 5 application টি দেখে নিন।
Sencha Cmd আপনার এপ্লিকেশনে এখন সুযোগ খুঁজবজবে,এ ধরনের একটি লেখাও আপনি দেখবেনঃ“Waiting for changes…”, যা প্রমান করবে আপনার আপ্লিকেশনটি আপটুডেট।. আপনি সেটিং ও সেভ অপশনের কারনে অন্য আরও কিছু কমান্ডও দেখতে পারেন তবে প্রধান হল এটাই,“Waiting for changes…” ম্যাসেজ. প্রক্রিয়াটি কিছুটা সময় নিতে পারে তাই ধৈর্য ধরে অল্প কিছুক্ষণ অপেক্ষা করাই ভাল। আরও বিস্তারিত জানতে চাইলে এখানে দেখতে পারেন Introduction to Sencha Cmd Guide.
পরবর্তী ধাপঃ
এখন পর্যন্ত কাঠামো ছাড়া তেমন কিছু করা হয়নি এপ্লিকেশনটির, তাই এটাকে আরেকটু প্রাণবন্ত করা যাকঃ
উত্তর দিকে টাইটেল দিতে হবেঃ
এপ্লিকেশনের কাঠামোটা আসলে একটি বর্ডার টাইপ বিষয় যা আমাদেরকে “regions” ধারনা দেয় cardinal directions এর ভিত্তিতে ।মেইন ট্যাব এরিয়া হল “center” region এবং খালি panel যেটা আছে তার নাম “west” আর সেটা আছে “west” regionএ।
ব্রান্ড টাইটেল হল সবচে আকর্ষণীয় তাই এই অ্যাপটির একটি কোম্পানি নেম দেয়া যাক।
আপনার পছন্দের IDE অথবা text editor,ব্যাবহার করে app/view/main/Main.js খুলুন।
items array তে আরেকটা আইটেম যোগ করা যাক। আমরা উচ্চতা রাখব 40px, 10px প্যাডিঙ, এবং টেক্সট লিখব: ‘My Company – My Company Motto’:
{
region: ‘north’,
xtype: ‘component’,
padding: 10,
height: 40,
html: ‘My Company – My Company Motto’
}
আপনার items array যেটা Main.js সেটা এখন এমন দেখাবেঃ
[{
region: ‘north’,
xtype: ‘component’,
padding: 10,
height: 40,
html: ‘My Company – My Company Motto’
},
{xtype: ‘panel’,
title: ‘Navigation’,
region: ‘west’,
html: ‘<ul><li>This area …</li></ul>’,
width: 250,
split: true,
tbar: [{
text: ‘Button’,
handler: ‘onClickButton’
}]
},{
region: ‘center’,
xtype: ‘tabpanel’,
items:[{
title: ‘Tab 1’,
bodyPadding: 20,
html: ‘<h2>Content…</h2>’
}]
}]
এভাবেইMain.js ফাইলটা রাখুন। এবার প্রথমবারের মত “sencha app watch” কর্মক্ষম ভাবে দেখলেন. এবারnorth region.সহ “Waiting for changes…”টাইটেল আবার দেখলেন আপনি।
এখন এটা আরও ভাল লাগছে। স্টাইল পরিবর্তন করার অনেক পদ্ধতি আছে, .নির্দিষ্ট ক্ষেত্রে এই প্রথম পদ্ধতিটা ভালই, ধরুন আপনি north region এর টেক্সটের কালারটা চেঞ্জ করবেন,
{
region: ‘north’,
xtype: ‘component’,
cls: ‘appBanner’,
padding: 10,
height: 40,
html: ‘My Company – My Company Motto’
}
এই কমান্ড ছাড়াও আপনি সিএসএস ফাইল অ্যাড করেও কালার চেঞ্জ করতে পারেনঃ
.appBanner{
color:#ffffff;
}
বর্তমানে SCSS (Sassy CSS) এরও ব্যাবহার হচ্ছে এধরনের কাজে।এক্ষেত্রে global SCSS variables এর লিস্ট দেখা যেতে পারে।
Sencha Cmd সবসময় corresponding SCSS file খোঁজে sass/var/তে, variables এর জন্য এবং sass/src/,rules এর জন্য। যেহেতু এই এপ্লিকেশনের এক নাম MyApp.view.main.Main, তাই sass/var/view/main/Main.scss তখনি সম্পৃক্ত হবে যখন আপনি বলবেন অর্থাৎ কমান্ড লিখবেন। আপ্নি অন্য কোন ভিউ পেতে লিখতে পারেনঃ{ViewName}.scss file যেটা sass/var/view/{namespace}/{ViewName}.scssএর ভেতরে থাকবে। এটা আপনার ইচ্ছা।কারন SCSS rules বিভিন্ন ভাবে আপ্লাই করা যায়।
এপ্লিকেশন কাঠামোয় টুলবার ব্যাবহার করেও অনেক ভাবে আউটলুক চেঞ্জ করা যায়।নিচে দেখানো হল কিভাবে Main.scss ফাইলে এটা করা যায়।
$color: #ffffff;
একবার কোড চেঞ্জ করে রিফ্রেস করলে পরিবর্তনটা বুঝা যাবে।
কলাপ্সিবল ওয়েস্ট রেজিওনঃ
এখন ওয়েস্ট প্যানেল নিয়ে কাজ যেটাকে বলে West Region টা করব আমরা। আমাদের Main.js west region কোডগুলো দেখাবে এরকমঃ
{
xtype: ‘panel’,
title: ‘Navigation’,
region: ‘west’,
html: ‘<ul><li>This area…</li></ul>’,
width: 250,
split: true,
collapsible: true,
tbar: [{
text: ‘Button’,
handler: ‘onClickButton’
}]
}
এখন রিফ্রেস করলে এরকম কলাপ্সিবল বাটন পাওয়া যাবে। বাটনকে আরও প্রানবন্ত করতে
ব্যাবহার করা যায় এই কোডগুলোঃ
{
xtype: ‘panel’,
title: ‘Navigation’,
region: ‘west’,
html: ‘<ul><li>This area…</li></ul>’,
width: 250,
split: true,
collapsible: true,
collapsed: true,
tbar: [{
text: ‘Button’,
handler: ‘onClickButton’
}]
}
ট্যাবস এবং গ্রিডস

আমাদের এপ্লিকেশন প্রান পেতে শুরু করেছে কিন্তু মাত্র একটি ট্যাব নিয়ে। কিন্তু আমরা যদি ট্যাবপ্যানেল পেতে চাই তাহলে কমপক্ষে দুটো ট্যাব হতে হবে।আরেকটি ট্যাব এড করতে লিখব নিচের কোডঃ
{
region: ‘center’,
xtype: ‘tabpanel’,
items: [{
title: ‘Tab 1’,
bodyPadding: 20,
html: ‘<h2>Content…</h2>’
},{
title: ‘The Data’
}]
}
দারুন,আমাদের দুটো ট্যাব হয়ে গেছে. Ext JS আসলে খুবই ভাল কোন কঠিন বিষয়কে সহজ করে দেখানোর জন্য। যে গ্রিডটা তৈরি হল তাতে চারটা অংশ, গ্রিড নিজে, ডাটা রেকর্ড স্টোর, এবং মডেল ষ্টোরের ডাটা নিজে। বাস্তব এপ্লিকেশনে MVC architecture ব্যাবহার করা হয় অনেক সময়।
যাহোক দ্বিতীয় ট্যাবটা এরকম হবেঃ
{
title: ‘The Data’,
layout: ‘fit’,
items: [{
xtype: ‘grid’,
title: ‘Simpsons’,
store: {
fields:[‘name’, ’email’, ‘phone’],
data:[
{ name: ‘Lisa’, email: “lisa@simpsons.com”,
phone: “555-111-1224” },
{ name: ‘Bart’, email: “bart@simpsons.com”,
phone: “555-222-1234” },
{ name: ‘Homer’, email: “home@simpsons.com”,
phone: “555-222-1244” },
{ name: ‘Marge’, email: “marge@simpsons.com”,
phone: “555-222-1254” }
],
proxy: {
type: ‘memory’
}
},
columns: [
{ text: ‘Name’, dataIndex: ‘name’ },
{ text: ‘Email’, dataIndex: ’email’, flex: 1},
{ text: ‘Phone’, dataIndex: ‘phone’ }
]
}]
}
লেআউট
Ext JS. এর অত্যন্ত গুরুত্বপূর্ণ অংশ হল লেআউট। এটা পজিশনিং নিয়ন্ত্রন করে, বর্তমান প্যানেল ‘fit’ লেআউট ব্যাবহার করছে।
স্টোর
বাস্তবে হয়ত url property সহ proxy ব্যাবহার করা হত যেখানে proxy database এ তথ্য দিত . বর্তমান উদাহরণে আমরা in-line data ব্যাবহার করছি ।
থিম পরিবর্তনঃ
“theme”: “ext-theme-crisp”
এই কোড ব্যাবহার করে আমরা থিম পরিবর্তন করতে পারি।মুলত এই কোড লিখে রিফ্রেস করলে থিমটা বদলে যাবে।
শেষ কথাঃ
এভাবে সহজেই আমরা Ext JS এবং Sencha Cmd.ব্যাবহার করে এপ্লিকেশনটি রান করাতে পারি, কোডগুলো খুব ভাল করে নির্ভুলভাবে লিখতে হবে।

সম্ভবনাময় সেরা দশ ওয়েব ডেভেলপমেন্ট খাত এবং তাদের সম্ভবনাঃ Top 10 Web Technology Trends

সম্ভবনাময় সেরা দশ ওয়েব ডেভেলপমেন্ট খাত এবং তাদের সম্ভবনাঃ
বর্তমান সময়ে ওয়েব ডেভেলপমেন্ট ও সার্চ ইঞ্জিন প্রযুক্তির উৎকর্ষ সাধন হচ্ছে এবং তা হচ্ছে খুব দ্রুত। এই উন্নয়নের ধারাটি ডেভেলপারদেরকে দ্রুত ও সব মাধ্যমে ব্যাবহার উপযোগী অ্যাপ তৈরি করতে সাহায্য করবে।সেই সাথে বাড়বে সাধারন ব্যাবহারে অ্যাপের প্রয়োগও।
বর্তমানে খুব বেশি টেকনিক্যাল জ্ঞান ছাড়াই সাধারন প্রযুক্তি ব্যাবহারকারীরাও অ্যাপগুলো ব্যাবহার করতে পারছে।
বর্তমান সময়ের সেরা দশটি প্রযুক্তি যা সামনের সময়েও রাজত্ব করবে সেগুলো হলঃ
১।থ্রিডি ওয়েব এপ্লিকেসন্স
ওয়েব ব্রাউজার নিয়ে জারা কাজ করে আসছে তারা অনেক আগে থেকেই থ্রিডি ওয়েব এপ্লিকেসন্স নিয়েও চিন্তা ভাবনা করছে, অনেক নতুন আপডেটও হয়েছে এ বিষয়ে।আমরা সম্ভবত সিএসএসথ্রি থ্রিডি ট্রান্সফরমস ইত্যাদির সাহায্যে থ্রিডি ডিজাইনের উত্থান দেখতে যাচ্ছি নতুন বছরে।থ্রিডি ওয়েব এপ্লিকেসন্স ডেভেলপমেন্ট আরও বেশি এগিয়ে যাবে এইচটিএমএল৫ ও অন্যান্য কোডিং ব্যাবহারের মাধ্যমে।
এই প্রযুক্তিগুলোর মাধ্যমে গেম,বিনোদন ও নিত্ত প্রয়োজনীয় অনেক অ্যাপও হয়ে যাবে থ্রিডি নির্ভর।এছাড়াও থ্রিডি ক্যানভাস ডেভেলপমেন্টও এগিয়ে যাচ্ছে সমানভাবে তাল মিলিয়ে,যা অচিরেই জনপ্রিয় ফ্রেমওয়ার্ক হয়ে উঠতে পারে।
.
২।এইচটিএমএল জাভাস্ক্রিপ্ট এপিআইঃওয়েব ডিজাইন তা সে যে ধরনের ডিভাইসের জন্যই হোক না কেন,প্রযুক্তি কর্মীদের প্রধান অস্ত্র হল এইচটিএমএল ও জাভাস্ক্রিপ্ট এপিআই, যা বর্তমানের বিভিন্ন প্লাটফরমের সাথে মানিয়ে ওয়েব এপ্লিকেশন বানাতে অপরিহার্য। এইচটিএমএল৫এর সাথে সহজে কাজ করা যায় যে ধরনের এপিআই সেগুলো মোটামোটি এরকমঃওয়েব স্টোরেজ, ওয়েব ওয়ার্কার্স, ওয়েবসকেট, এপ্লিকেশন ক্যাচি ইত্যাদি।

৩। জাভাস্ক্রিপ্ট এবং ক্লায়েন্ট সাইড ওয়েব এপ্লিকেশনঃ
এ ধরনের প্রযুক্তির বড় সুবিধা হল ব্যাবহারের জন্য ক্লায়েন্টকে খুব বেশি দক্ষ হতে হয়না বা প্রোগ্রামিং ল্যাঙ্গুয়েজ জানতেও হয়না ,কেবল বেসিক কিছু টেকনোলজিকাল জ্ঞান থাকতে হয়। সামনের সময়টাতে আমরা তাই জাভাস্ক্রিপ্ট এবং ক্লায়েন্ট সাইড ওয়েব এপ্লিকেশনের ব্যাবহার আরও বৃদ্ধি পেতে দেখব।এ ধরনের আরও কিছু প্রযুক্তি হল কফিস্ক্রিপ্ট ও ডার্ট যা হয়ত সামনে জনপ্রিয় হতেও পারে।
৪।ফ্রন্টএন্ড ফ্রেমওয়ার্ক ঃ
বিগত সময়ের মত বর্তমানেও ফ্রন্টএন্ড ফ্রেমওয়ার্ক ব্যাবহার করা হচ্ছে ব্যাপকভাবে।যার ব্যাবহার সামনে আরও বাড়বে বলে আশা করা যায়।বিশেষ করে টেস্টিং সার্ভার, টাস্ক রানার ও এরকম আরও কিছু কাজের জন্য এর ব্যাবহার আরও বাড়বে বলে আশা করা যায়।
৫। ভিডিওতে এইচটিএমএল৫ ও এইচটিএমএলএর ব্যাবহার ঃ শুধু বিনোদন নয় তথ্যপ্রযুক্তির এই যুগে ভিডিও সব ধরনের তথ্য আদান প্রদানের মাধ্যম আর এ জন্যই এইচটিএমএল ও এইচটিএমএল৫ ব্যাবহার করে ভিডিও এডিটিং ও ওয়েবে আপলোডের ক্ষেত্রে নতুন দিগন্ত উন্মোচিত হয়েছে।
৬।স্ক্রিনের বাইরেও ডেভেলপমেন্টঃ সব ধরনের প্রযুক্তিগত উৎকর্ষ সাধিত হয়েছে বর্তমান সময়ে তাই তথ্য আদান প্রদান ও গবেষণা ইত্যাদিও এখন ওয়েব ডেভেলপমেন্ট সেক্টরের মধ্যেই পরে।
৭।কুকিজ ব্যাবহারঃ আপডেট থাকতে ও নতুন কোন পরিবর্তনের সাথে মানিয়ে নিতে প্রযুক্তিকর্মীরা কুকিজ ব্যাবহার করেন।
৮। ড্রাগ এন্ড ড্রপ প্রযুক্তিঃ এইচটিএমএল৫ ব্যাবহার করে দ্রেগ এন্ড ড্রপ ব্যাবহার করে প্রযুক্তিজগতকে আরও সহজ ও সমৃদ্ধ করছে ডেভেলপাররা।
৯।রেস্পন্সিভ ডিজাইন অপরিহার্যঃ সব ধরনের যন্ত্রে ওয়েব ব্যাবহারের জন্য রেস্পন্সিভ ডিজাইন ব্যাবহার বেড়ে গেছে।
১০।মোবাইল অ্যাপ ও নেটিভ অ্যাপ ডেভেলপারদের প্রাধান্যঃপ্রযুক্তির উৎকর্ষ সাধনের সাথে সাথে মোবাইল অ্যাপ ও নেটিভ অ্যাপ ডেভেলপারদের প্রাধান্যও বেড়ে যাচ্ছে।

গুগল ম্যাপের মৌলিক ধারণা (Google Maps Basic)

গুগল ম্যাপের মৌলিক ধারণা
ইন্দ্র ভূষণ শুভ

একটি বেসিক গুগল ম্যাপ তৈরি করুন
এই উদাহরণটি ইংল্যান্ডের লন্ডন কেন্দ্রিক একটি গুগল ম্যাপ তৈরি করেঃ
উদাহরণ
DOCTYPE html>
<html>
<head>

<script>
function initialize() {
var mapProp = {
center:new google.maps.LatLng(51.508742,-0.120850),
zoom:5,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById(“googleMap”),mapProp);
}
google.maps.event.addDomListener(window, ‘load’, initialize);
</script>
</head>

<body>
googleMap” style=”width:500px;height:380px;”>
</body>

</html>
নিজে চেষ্টা করুন >>
বাকি পেইজগুলো উপরের উদাহরণটিকে ধাপে ধাপে ব্যাখ্যা করবে।

১. গুগল এপিআই লোড করুন
গুগল ম্যাপের এপিআই হলো জাভাস্ক্রিপ্টের লাইব্রেরি। এটি একটি স্ক্রিপ্ট ট্যাগ দিয়ে একটি ওয়েব পেইজ যোগ করতে পারেঃ

২. ম্যাপের বৈশিষ্ট নির্ধারণ করুন
ম্যাপটি শুরু করার জন্য একটি ফাংশন তৈরি করুনঃ
function initialize() {
}
শুরুর ফাংশনটি, ম্যাপের বৈশিষ্টগুলো বর্ণনা করার জন্য একটি লক্ষ্য (mapProp) নির্ধারণ করেঃ
var mapProp = {
center:new google.maps.LatLng(51.508742, -0.120850),
zoom: 7,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
কেন্দ্র বৈশিষ্ট ম্যাপের কেন্দ্র নির্ধারণ করে। LatLng তৈরির উদ্দেশ্য একটি নির্দ্দিষ্ট বিন্দুতে কেন্দ্র নির্ধারণ করা। যাতে স্থানাঙ্ক অক্ষাংশ, দ্রাঘিমাংশ দিয়ে যায়।
জুমের বৈশিষ্ট ম্যাপের জুমের স্তর নির্ধারণ করে। জুমঃ০ একটি পৃথিবীর ম্যাপ দেখায় জুম ছাড়া। উচ্চ জুম স্তর উচ্চ রেজল্যুশনে জুম করে।
mapTypeId ম্যাপটি প্রদর্শনের ধরন নির্ধারণ করে।
নিম্নলিখিত ম্যাপগুলো সমর্থন করেঃ
রোডম্যাপ ( স্বাভাবিক, দ্বিমাত্রিক ম্যাপ )
স্যাটেলাইট ( ফটোগ্রাফিক ম্যাপ )
হাইব্রিড (ফটোগ্রাফিক ম্যাপ + শহর এবং রাস্তার নাম )
ভূখন্ড ( পাহাড়, নদী ইত্যাদি সম্বলিত ম্যাপ )

৩. ম্যাপের ধারক তৈরি করুন
ম্যাপ থাকে এমন একটি <div> উপাদান তৈরি করুন। CSS ব্যবহার করে উপাদানটির আকার তৈরি করুনঃ
উদাহরণ
googleMap” style=”width:500px;height:380px;”>
ম্যাপটি সবসময় এর ধারক উপাদান থেকে আকার পাবে।

৪. ম্যাপের লক্ষ্য তৈরি করুন
var map=new google.maps.Map(document.getElementById(“googleMap”), mapProp);
উপরের কোডটি

উপাদানে একটি নতুন ম্যাপ (googleMap) তৈরি করবে গৃহীত (mapProp) পরিমাপক ব্যবহার করে।

৫. ম্যাপ লোড করার একটি ইভেন্ট যোগ করুন
উইন্ডো লোডের initialize() ফাংশনকে চালাতে একটি DOM যোগ করা হয় (যখন পেইজটি লোড হয়)
google.maps.event.addDomListener(window, ‘load’, initialize);

অ্যাসিঙ্ক্রোনাস লোডিং
গুগল ম্যাপ এপিআই কে চাহিদানুযায়ী লোড করা সম্ভব।
নিচের উদাহরনটি পেইজ পুরোপুরি লোড হওয়ার পরে গুগল ম্যাপ এপআই লোড করতে window.onload ব্যবহার করেছে।
loadScript() ফাংশনটি গুগল ম্যাপ এপআই তে
উদাহরণঃ
function loadScript() {
var script = document.createElement(“script”);
script.src = “http://maps.googleapis.com/maps/api/js?callback=initialize”;
document.body.appendChild(script);
}

window.onload = loadScript;
নিজে চেষ্টা করুন >>
একাধিক ম্যাপ করুন
নিচের উদাহরনটি একই পেইজে চারটি ম্যাপ নির্ধারণ করে ( বিভিন্ন ধরনের চারটি ম্যাপ )
উদাহরণঃ
var map1 = new google.maps.Map(document.getElementById(“googleMap1”), mapProp1);
var map2 = new google.maps.Map(document.getElementById(“googleMap2”), mapProp2);
var map3 = new google.maps.Map(document.getElementById(“googleMap3”), mapProp3);
var map4 = new google.maps.Map(document.getElementById(“googleMap4″), mapProp4);
নিজে চেষ্টা করুন >>

গুগল এপিআই কী
গুগল একই দিনে কয়েক হাজারবার আপনার ওয়েবসাইটকে গুগল এপিআই তে কল করতে দিবে।
আপনি অধিক ট্রাফিকের পরিকল্পনা করলে গুগল এপিআই থেকে বিনামুল্যে কী (Key) নিতে পারেন।
বিনামুল্যে কী পেতে https://console.developers.google.com এই সাইটে যান।
যখন একটি এপিআই লোড হয়, গুগল ম্যাপ Key পরিমাপকে একটি এপিআই Key আশা করেঃ
<script src=”http://maps.googleapis.com/maps/api/js?key=YOUR_KEY”></script>

পিএইচপি – মাইএসকিউএল হতে ডাটা ডিলিট করা (PHP Delete Data From MySQL in Bangla)

Delete statement ব্যবহার করা করা হয় ডাটাবেস টেবিল থেকে কোন ডাটাকে বাদ দিয়ে দেয়ার জন্য।

এর জন্য SQL SYNTAX হল


DELETE FROM table_name
WHERE some_column = some_value


যখন আমরা where clause ব্যবহার করব না সেইখেত্রে আমাদের সব ডাটা বাদ হয়ে যাবে। যখন আমরা where ব্যবহার করব তখন নির্দিষ্ট ডাটা বাদ হয়ে যাবে।
পিএইচপি দিয়ে এর ব্যবহার বোঝার জন্য আমাদের একটি টেবিল তৈরি করতে হবে নিচের মতন

মনে করি এই টেবিল এর নাম MyGuests

id firstname lastname email reg_date
1 John Doe john@example.com 2014-10-22 14:26:15
2 Mary Moe mary@example.com 2014-10-23 10:22:30
3 Julie Dooley julie@example.com 2014-10-26 10:48:23

 

এই ক্ষেত্রে আমরা ৩ নাম্বার ডাটাটি বাদ দিতে চাই

পিএইচপি কোড


< ?php           /*আমাদের ডাটাবেসের ইউজার নাম, পাসওয়ার্ড, সার্ভার নাম সেট করতে হবে*/ 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "myDB";    //কানেকশন দিতে হবে 
$conn = new mysqli($servername, $username, $password, $dbname); 
                     // কানেকশন চেক করতে হবে ঠিক মত connect হয়েছে কিনা 
if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
}
// SQL কোড টেবিল থেকে ৩ নাম্বার ডাটা বাদ দেয়ার জন্য
$sql = "DELETE FROM MyGuests WHERE id=3";
if ($conn->query($sql) === TRUE) {
    echo "Record deleted successfully";
                   /যদি sql query ঠিকঠাক মতন হয় তাহলে সফল হয়েছে বার্তা দেখাবে/
} else {
    echo "Error deleting record: " . $conn->error;
                  /* যদি sql query ঠিকঠাক মতন না হয় তাহলে বিফল হয়েছে বার্তা দেখাবে/*/
 }
$conn->close();   /*mysqlকানেকশন বন্ধ করা হবে*/
 ?>

 

এএসপি.নেট এমভিসি – ইন্টারনেট অ্যাপ্লিকেশন . ASP.NET MVC – Internet Application

এএসপি.নেট এমভিসি – ইন্টারনেট অ্যাপ্লিকেশন
Sheikh Mahfuzur Rahman
Bangla word: 180

এএসপি.নেট এমভিসি ( ASP.NET MVC ) সম্পর্কে শিখতে গিয়ে আমরা একটি ইন্টারনেট অ্যাপ্লিকেশন তৈরি করবো।

প্রথম পার্টঃ অ্যাপ্লিকেশনটি তৈরি করা

আমরা যা তৈরি করবো
আমরা এমন একটি ইন্টারনেট অ্যাপ্লিকেশন তৈরি করবো যা একটি ডাটাবেজে সংরক্ষিত তথ্যের adding, editing, deleting এবং listing সাপোর্ট করে।

আমরা যা যা করবো

ভিজ্যুয়াল ওয়েব ডেভলাপার ওয়েব অ্যাপ্লিকেশন তৈরির জন্য বিভিন্ন টেমপ্লেট অফার করে। আমরা এইচটিএমএল ফাইভ ( HTML5 ) মার্কআপের মাধ্যমে একটি খালি এমভিসি ইন্টারনেট অ্যাপ্লিকেশন তৈরি করতে ভিজ্যুয়াল ডেভলাপারকে ( Visual Web Developer ) ব্যবহার করবো।

যখন খালি ইন্টারনেট অ্যাপ্লিকেশনটি তৈরি হবে তখন আমরা ধীরে ধীরে অ্যাপ্লিকেশনটিতে কোড যোগ করবো যতক্ষণ না সেটি সম্পূর্ণভাবে শেষ হয়। প্রোগ্রামিং ল্যাঙ্গুয়েজ হিসেবে আমরা C# এবং সবচেয়ে নতুন Razor সার্ভার কোড মার্কআপ ব্যবহার করবো।

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

ওয়েব অ্যাপ্লিকেশনটি তৈরি করা

যদি আপনার কম্পিউটারে ভিজ্যুয়াল ওয়েব ডেভলাপার ইন্সটল করা থাকে, সেটি চালু করুন এবং New Project সিলেক্ট করুন। অন্যথায়, শুধু পড়ুন এবং শিখুন।

New Project ডায়ালগ বক্সেঃ
Visual C# টেমপ্লেট ওপেন করুন
ASP.NET MVC 3 Web Application টেমপ্লেটটি সিলেক্ট করুন
প্রজেক্ট এর নাম হিসেবে MvcDemo সেট করুন
ডিস্ক লোকেশন হিসেবে c:\w3schools_demo এর মতো কিছু একটা সেট করুন
OK তে ক্লিক করুন

http://bangla.salearningschool.com/aspnet/pic_mvc_new_project.jpg

যখন New Project ডায়ালগ বক্স ওপেন হয়ঃ
Internet Application টেমপ্লেট সিলেক্ট করুন
Razor Engine সিলেক্ট করুন
HTML5 Markup সিলেক্ট করুন
OK তে ক্লিক করুন

ভিজ্যুয়াল স্টুডিও এক্সপ্রেস ঠিক নিচের মতো একটি প্রজেক্ট তৈরি করবেঃ

http://bangla.salearningschool.com/aspnet/pic_mvc_explorer.jpg

 

এই টিউটোরিয়ালের পরবর্তী অধ্যায়ে আমরা ফাইল এবং ফোল্ডারের উপাদানগুলোকে নিয়ে আলোচনা করবো।

পিএইচপি – মাইএসকিউএল ডাটা আপডেট করা (PHP Update Data in MySQL)

মাইএসকিউএল-আই এবং পিডিও ব্যবহার করে মাইএসকিউএল টেবলে ডাটা আপডেট

একটি টেবলের বিদ্যমান রেকর্ডগুলো আপডেট করতে UPDATE স্টেটম্যান্ট ব্যবহৃত হয়ঃ


UPDATE table_name
SET column1=value, column2=value2,…
WHERE some_column=some_value


 

 

লক্ষ্যণীয়ঃ আপডেট সিনট্যাক্স-এর WHERE ক্লজটিকে লক্ষ্য করুনঃ কোন্‌ রেকর্ড বা রেকর্ডসমূহ আপডেট করা হবে তা WHERE ক্লজটি ঠিক করে দেয়। আপনি যদি WHERE ক্লজটিকে মুঁছে দেন তাহলে সবগুলো রেকর্ডই আপডেট হবে!

এসকিউএল সম্পর্কে আরও জানতে আমাদের এসএকিউএল টিউটর‍্যালগুলো পড়ে নিন।

এখন “MyGuests” টেবলের দিকে লক্ষ্য করুনঃ

id firstname lastname email reg_date
1 John Doe john@example.com 2014-10-22 14:26:15
2 Mary Moe mary@example.com 2014-10-23 10:22:30
3 Julie Dooley julie@example.com 2014-10-26 10:48:23

 

নিচের উদাহরণগুলো, “MyGuests” টেবলে id=2 যুক্ত রেকর্ডকে আপডেট করেঃ

উদাহরণ ( MySQLi অবজেক্ট-ওরিয়েন্টেড)


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";

if ($conn->query($sql) === TRUE) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: " . $conn->error;
}

$conn->close();
?>

 

উদাহরণ ( MySQLi প্রসিডুরাল)


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
 $conn = mysqli_connect($servername, $username, $password, $dbname);
 // Check connection
 if (!$conn) {
     die("Connection failed: " . mysqli_connect_error());
}

$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";
 
if (mysqli_query($conn, $sql)) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: " . mysqli_error($conn);
}

mysqli_close($conn);
 ?>

 

উদাহরণ (পিডিও)


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";

    // Prepare statement
    $stmt = $conn->prepare($sql);

    // execute the query
    $stmt->execute();

    // echo a message to say the UPDATE succeeded
    echo $stmt->rowCount() . " records UPDATED successfully";
    }
catch(PDOException $e)
    {
    echo $sql . "<br>" . $e->getMessage();
    }

$conn = null;
?>