পরম করুনাময় ও অসীম দয়ালু আল্লাহ্র নামে শুরু করছি......
আশা করি আল্লাহ্র রহমতে আপনারা সবাই ভাল আছেন। পর সমাচার আমি দীর্ঘদিন পর আপনাদের সামনে আবার টিউন করার জন্য আসলাম। অনেকে যোগাযোগ করেছেন তাড়াতাড়ি টিউন করার কিন্তু সময় করে উঠতে পারিনি তাই তাদের কাছে ক্ষমা চেয়ে শুরু করছি।
এই টিউনটি শুরু করার আগে
টিউনগুলো পড়ে নিলে ভাল হয়। মনে করি সবার টিউনটি পড়া হয়ে গেছে। তো সামনে চলুন।
পূর্বের টিউনগুলো যদি আমাদের পড়া হয়ে থাকে আর মোটামুটি বুঝে থাকি, তাহলে আমাদের বেশি কষ্ট করতে হবে না। পূর্বের টিউনগুলো না পড়লে ক্ষতি নেই যখন যে জিনিস দরকার লাগবে আমি বলে দিব কি করতে হবে।
তাহলে আসুন আজকে আমরা যে কাজ করব তার গ্রাফিক্যাল ব্যাখ্যা অর্থাৎ ফলাফল দেখে নেই। তাহলে কাজের প্রতি মনোযোগ বাড়বে।
১. প্রথমেই আসুন আজকের প্রোজেক্টের ফাইলটি ডাউনলোড করে নেই। এজন্য প্রোজেক্ট পিএইচপি লেখাতে ক্লিক করে ফাইলটি ডাউনলোড করি। পাসওয়ার্ড ০১৯২১৬৬৯৮৯৮।
২. ফাইলটি Extract করি।
৩. ফাইলটি ওপেন করলে ১১ টি ফাইল এবং দুটি ফোল্ডার পাওয়া যাবে
যদি পূর্বের টিউনগুলো পড়ে থাকেন এবং প্র্যাকটিস করে থাকেন তাহলে আপনার কম্পিউটারে ওয়াম্প সফটওয়্যার ইন্সটল করা আছে। [না বুঝলে পর্ব-১ দেখুন] ।
www ফোল্ডারের মধ্যে আমাদের ডাউনলোডকৃত php project নামের ফোল্ডারটি পেস্ট করি।
ডাটাবেজ নামের ফোল্ডারটি ওপেন করি। সেখানে add_information.sql নামে একটি sql ফাইল পাওয়া যাবে। পিএইচপি মাইএডমিন ওপেন করি friends_form নামে একটি ডাটাবেজ তৈরি করি এবং ফাইলটি আপলোড করি। বিস্তারিত পর্ব-১ এ বর্ণনা করা হয়েছিল।
এখন ব্রাউজারে লিখুন localhost এবং এন্টার চাপুন। php project লেখাতে ক্লিক করুন।
৪. নীচের মতো হোম পেজ দেখাবে।
এটি ডিজাইন করতে এইচটিএমএল ৫ এবং সিএসএস ৩ এর সামান্য কিছু কোড ব্যবহার করা হয়েছে। এ নিয়ে বিস্তারিত লিখছিনা কারন এই টিউনটি মূলত পিএইচপি মাইএসকিউএল নিয়ে হবে। তাছাড়া টিউনটি অনেক বড় হয়ে যাবে যা আপনাদের বিরক্তির কারন হবে। এইচটিএমএল ৫ এবং সিএসএস ৩ নিয়ে টেকটিউনস এ অনেক পোস্ট পাবেন সেগুলো দেখতে পারেন। আর না দেখলেও ক্ষতি নেই। আপাতত যে কোডগুলো আছে সেগুলোই দেখেন।
৫. গত পর্বে আমরা দেখেছিলাম কিভাবে ডাটাবেজ থেকে শর্ত সাপেক্ষে ডাটা খুঁজে বের করা যায়। আজকে আমরা দেখব ডাটাবেজের ডাটা কিভাবে পরিবর্তন এবং ডাটাবেজ থেকে ডাটা ডিলিট করতে পারি। মেনুবার থেকে Show all friend লিঙ্কে ক্লিক করি। নীচের মত দেখতে পাব।
৬. Show All Record in Database এ ক্লিক করি। নীচের মতো ফলাফল দেখতে পাব।
এখানে ডাটাবেজে জমা কৃত ডাটাগুলো দেখা যাচ্ছে। একটা জিনিস লক্ষ করুন পর্ব-৩ এ আমরা যে ডাটাবেজ থেকে ডাটাগুলো সংগ্রহ করেছিলাম সেখানে Update এবং Delete নামের কোন বাঁটন ছিলনা বাঁটন দুটি ডান দিকে দেখা যাচ্ছে। নীচে লক্ষ্য করুন। [পর্ব-৩ এ প্রকাশিত]
৭. Serial নাম্বার তিন এ Ariful Islam নামে একজনের ডাটা দেখা যাচ্ছে। তার Relation দেখা যাচ্ছে family দেওয়া কিন্তু সে আমার family ‘র কেউ নয়। সে আমার বন্ধু হয়। আমরা এখন তার Relation status family পরিবর্তন করে friend করব। এজন্য Ariful Islam এর নামের ডান দিক বরাবর যে Update বাটন সেখানে ক্লিক করি। নীচের মত দেখা যাবে।
৮. Relation family মুছে দিয়ে নীচের মত friend টাইপ করি এবং Update বাটনে ক্লিক করি।
৯. Update বাটন এ ক্লিক করলে যদি সঠিক ভাবে ডাটা Update অর্থাৎ পরিবর্তন হয় তাহলে নীচের মত মেসেজ দিবে।
১০. এবার আসি ডাটা ডিলিট প্রসঙ্গে। এজন্য Show all friend এ ক্লিক করি। এরপর Show All Record in Database এ ক্লিক করি। নীচের মতো ফলাফল দেখতে পাব।
১১. দেখুন Ariful Islam এর Relation status friend হয়ে গেছে। এখন আমরা চাচ্ছি Mirazul Haque কে ডাটাবেজ থেকে ডিলিট করে দিব। তাহলে Mirazul Haque এর ডান দিক বরাবর Delete বাটন এ ক্লিক করি।
১২. Delete বাটন এ ক্লিক করলে যদি সঠিক ভাবে ডাটা Delete হয় তাহলে নীচের মত মেসেজ দিবে।
১৩. এখন আমরা যদি Show all friend >>> Show All Record in Database এ ক্লিক করি তাহলে দেখা যাবে Mirazul Haque নামে কোন ডাটা আর দেখা যাচ্ছে না।
১৪. গ্রাফিক্যালি আমরা মোটামুটি আজকের কাজটি দেখে ফেলেছি। এখন এই কাজটি করার জন্য যে কোড ব্যবহার করেছি তা ব্যাখ্যাসহ দেখব। আগেই বলে নেই আজকের টিউনটি যেহেতু ডাটা পরিবর্তন এবং ডিলিট করা প্রসঙ্গে তাই আমরা আপডেট এবং ডিলিট এই দুটি পেজের কাজ নিয়ে আলোচনা করব। তাছাড়া বাকী কাজগুলোতো পূর্বের টিউনগুলোতে দেখানো হয়েছেই। তবে যদি কোন সমস্যা হয় জানাবেন যথা সম্ভব সমাধানের চেষ্টা করব।
১৫. বকবক অনেক করলাম যাই হোক এবার এই কাজটাই আমরা কোড লিখে করব। এই জন্য প্রথমে আমরা একটি পিএইচপি ফাইল ওপেন করব আজ আমি এক্ষেত্রে Notepad++ ব্যবহার করব। সফটওয়্যারটি ডাউনলোড করতে নোটপ্যাড++ লেখাতে ক্লিক করি। ড্রিমওয়েভার বা অন্য যে কোন কোড এডিটর হলেও চলবে।
১৬. show_information_process.php নামের ফাইলটি নোটপ্যাড++ দিয়ে ওপেন করি নীচের কোডগুলো দেখতে পাবেন।
<!Doctype html> <html> <head> <title>Information Page</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body class="body"> <header class="mainheader"> <a href="http://www.abishar14.blogspot.com"><img src="img/__abishar14.png"/></a> <nav> <ul> <li><a href="index.html">Home</a></li> <li><a href="information_form.html">Create an friend</a></li> <li class="active"><a href="information_page.html">Show all friend</a></li> <li><a href="search.php">Search a friend</a></li> </ul> </nav> </header><!-- end mainheader --> <div class="mainContent"> <?php mysql_connect("localhost","root","") or die("Could not Connect Mysql."); mysql_select_db("friends_form") or die("Could not Select Database."); ?> <table align="center" width="95%" align="center" border="0"> <tr> <td colspan="9" align="center"><h2 style="font-size:1.5em; color:#BF8DFF">My friends Information</h2></td> </tr> <tr> <td width="150">Serial</td> <td width="147">Name</td> <td width="147">Address</td> <td width="147">Relation</td> <td width="150">Sex</td> <td width="174">Email</td> <td width="174">Mobile</td> <td width="174">Update</td> <td width="174">Delete</td> </tr> <?php $sql= "SELECT * FROM `add_information` "; $result=mysql_query($sql); while($rows=mysql_fetch_array($result)){ ?> <tr> <td><?php echo $rows['id']; ?></td> <td><?php echo $rows['name']; ?></td> <td><?php echo $rows['address']; ?></td> <td><?php echo $rows['relation']; ?></td> <td><?php echo $rows['sex']; ?></td> <td><?php echo $rows['email']; ?></td> <td><?php echo $rows['mobile']; ?></td> <td> <form action="update.php" method="post" name="update"> <input type="hidden" name="mobile" value="<?php echo $rows['mobile'];?>" /> <input name="update" type="submit" value="Update" /> </form> </td> <td align="center"> <form action="delete_process.php" method="post" name="delete"> <input type="hidden" name="mobile" value="<?php echo $rows['mobile'];?>" /> <input name="delete" type="submit" value="Delete" /> </td> </form> </tr> <?php } ?> </table> </div> </body> </html>
১৭. কোডিং এর ব্যাখ্যাঃ একটু ভাল করে পড়ুন এবং বোঝার চেষ্টা করুন। এখানকার প্রায় প্রতিটি কোডই পরিচিত যা পর্ব-৩ এ ব্যাখ্যা করা হয়েছে। এখানে দুটি অতিরিক্ত ফর্ম যোগ করা হয়েছে। ফর্মের দ্বারা Update এবং Delete অপশন যোগ করা হয়েছে।
<?php mysql_connect("localhost","root","") or die("Could not Connect Mysql."); mysql_select_db("friends_form") or die("Could not Select Database."); ?>
উপরের কোডটুকু দ্বারা মাইএসকিউএল এর সাথে কানেক্ট এবং ডাটাবেজ সিলেক্ট করা হয়েছে। বিস্তারিত ব্যাখ্যা পর্ব-২ এ পূর্বেই করা হয়েছে।
<form action="update.php" method="post" name="update">
এখানে update নামে একটি ফর্ম নেওয়া হয়েছে। মেথড হিসাবে post এবং action এ update.php ফাইলটি ব্যবহার করা হয়েছে। ফর্মটি সাবমিট করা হলে কি কাজ করবে তা update.php এ লেখা আছে।
<form action="delete_process.php" method="post" name="delete">
এখানে delete নামে একটি ফর্ম নেওয়া হয়েছে। মেথড হিসাবে post এবং action এ delete_process.php ফাইলটি ব্যবহার করা হয়েছে। ফর্মটি সাবমিট করা হলে কি কাজ করবে তা delete_process.php এ লেখা আছে। update.php এবং delete_process.php ফাইল নিয়ে আমরা একটু পরে কথা বলছি।
<input type="hidden" name="mobile" value="<?php echo $rows['mobile'];?>" />
কেন আমরা এই কোড ব্যবহার করলাম ?
১৮. এবার update.php ফাইলটি নোটপ্যাড++ সফটওয়্যার দিয়ে ওপেন করি নীচের কোডগুলো দেখতে পাবেন;
<!Doctype html> <html> <head> <title>Phone Book::Solution</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body class="body"> <header class="mainheader"> <a href="http://www.abishar14.blogspot.com"><img src="img/__abishar14.png"/></a> <nav> <ul> <li><a href="index.html">Home</a></li> <li><a href="information_form.html">Create an friend</a></li> <li class="active"><a href="information_page.html">Show all friend</a></li> <li><a href="search.php">Search a friend</a></li> </ul> </nav> </header><!-- end mainheader --> <div class="mainContent"> <?php mysql_connect("localhost","root","") or die("Could not Connect Mysql."); mysql_select_db("friends_form") or die("Could not Select Database."); $mobile=$_POST['mobile']; ?> <table align="center"> <tr><td> <div style="font-size:1.5em; color:#BF8DFF">Update The Student Information</div> </td></tr> </table> <table align="center"> <tr> <td> <div align="center"> <table align="center" width="90%" border="1" cellspacing="5" cellpadding="5"> <form name="form" method="post" action="update_process.php"> <?php $query="SELECT * FROM `add_information` where mobile=$mobile"; $result=mysql_query($query); $rows=mysql_fetch_array($result) ?> <tr> <td align="left">ID</td> <td><input type="text" name="id" value="<?php echo $rows['id'];?>" disabled="disabled" /></td> </tr> <tr> <td align="left">Name</td> <td> <input type="text" name="name" value="<?php echo $rows['name'];?>" /> <input type="hidden" name="id" value="<?php echo $rows['id'];?>" /></td> <input type="hidden" name="mobile" value="<?php echo $rows['mobile'];?>" /></td> </tr> <tr> <td align="left">Address</td> <td> <input type="text" name="address" value="<?php echo $rows['address']; ?>" /> </td> </tr> <tr> <td align="left"> Relation </td> <td> <input type="text" name="relation" value="<?php echo $rows['relation'];?>" /> </td> </tr> <tr> <td align="left">Sex</td> <td><input type="text" name="sex" value="<?php echo $rows['sex'];?>"></td> </tr> <tr> <td align="left">Email </td> <td><input type="text" name="email" value="<?php echo $rows['email'];?>" /></td> </tr> <tr> <td align="left">Mobile</td> <td><input type="text" name="mobile" value="<?php echo $rows['mobile'];?>" disabled="disabled" /></td> </tr> <tr> <th colspan="2"><input name="update" type="submit" value="Update" /></th> </tr> </form> </table> </div> </td> </tr> </table> </div> </body> </html>
লক্ষ্য করুন
প্রথম দিকে ২৪ নাম্বার লাইনে $mobile=$_POST['mobile']; কোড লেখা হয়েছে এর দ্বারা show_information_process.php ফাইল থেকে যে মোবাইল নাম্বারটি ইনপুট হিসাবে প্রেরন করা হয়ে ছিল তা $mobile ভ্যারিয়েবল এর মধ্যে জমা রাখছে। এর পরের কোড তো বোঝাই যাচ্ছে $mobile এর মধ্যে যে মোবাইল নাম্বার জমা আছে তা ডাটাবেজের সাথে ক্যুয়েরী করে ariful’র ইনফর্মেশন গুলো তুলে আনছে। ৭নং পয়েন্টের ছবির মত হবে।
১৯. এখন দেখুন ariful’র ডাটা গুলো প্রিন্ট করার পাশাপাশি <input /> ট্যাগ দ্বারা ডাটা ইনপুট নেওয়ার জন্য ফিল্ড তৈরি করা হয়েছে। ফলে এখন আমরা ডাটা গুলো পরিবর্তন করতে পারব। একটা বিষয় লক্ষ্য করুন এখানে Id এবং mobile এর ইনপুট ফিল্ড ডিজঅ্যাবল করে রাখা হয়েছে কারন এগুলো পরিবর্তন হোক আমরা এটা চাইনা। আপনি যদি চান তাহলে ডিজঅ্যাবল এর জন্য কোড disabled="disabled" বাদ দিতে পারেন। সব শেষে update বাটনে ক্লিক করলে কি হবে ? যাবতীয় ডাটা গুলো update_process.php পেজে পাঠিয়ে দিবে।
২০. update_process.php ফাইলটি নোটপ্যাড++ দিয়ে ওপেন করি।
<!Doctype html> <html> <head> <title>Phone Book::Solution</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body class="body"> <header class="mainheader"> <a href="http://www.abishar14.blogspot.com"><img src="img/__abishar14.png"/></a> <nav> <ul> <li><a href="index.html">Home</a></li> <li><a href="information_form.html">Create an friend</a></li> <li class="active"><a href="information_page.html">Show all friend</a></li> <li><a href="search.php">Search a friend</a></li> </ul> </nav> </header><!-- end mainheader --> <div class="mainContent"> <?php mysql_connect("localhost","root","") or die("Could not Connect Mysql."); mysql_select_db("friends_form") or die("Could not Select Database."); $id=$_POST['id']; $name=$_POST['name']; $address=$_POST['address']; $relation=$_POST['relation']; $sex=$_POST['sex']; $email=$_POST['email']; $mobile=$_POST['mobile']; $sql="UPDATE `add_information` SET id='$id', name='$name', address='$address', relation='$relation', sex='$sex', email='$email', mobile='$mobile' WHERE mobile='$mobile' "; if(mysql_query($sql)) { print "<p align=center style='font-size:1.5em; color:#BF8DFF'>Your Datas are updated successfully.</p>"; } else { print "<p align=center style='font-size:1.5em; color:#BF8DFF'>Your Datas can not be updated.</p>"; } ?> </div> </body> </html>
কোড গুলো দেখুন পরিচিত। এর আগে কোড গুলোর ব্যাখ্যা দেওয়া হয়েছে। তাই সরাসরি নতুন যে কোড দেখা যাচ্ছে তা নিয়েই কথা বলি। নীচের কোডগুলো লক্ষ্য করুন
$sql="UPDATE `add_information` SET id='$id', name='$name', address='$address', relation='$relation', sex='$sex', email='$email', mobile='$mobile' WHERE mobile='$mobile' "; if(mysql_query($sql)) { print "<p align=center style='font-size:1.5em; color:#BF8DFF'>Your Datas are updated successfully.</p>"; } else { print "<p align=center style='font-size:1.5em; color:#BF8DFF'>Your Datas can not be updated.</p>";
২১. এখানে add_information টেবিল কে আপডেট করতে বলা হচ্ছে। ডাটাবেজের ডাটা পরিবর্তন করার জন্য UPDATE কমান্ড লিখতে হয়। কি আপডেট করবে তা SET অংশে বলা হচ্ছে; update.php পেজ থেকে আমরা যে ডাটা গুলো পেয়েছি তা ডাটাবেজে আপডেট হবে; যদি WHERE mobile='$mobile' হয়। এখানে mobile হচ্ছে ডাটাবেজের মোবাইল নাম্বার আর $mobile হচ্ছে আমাদের পাঠানো মোবাইল নাম্বার। সমস্ত কাজ $sql ভ্যারিয়েবল এর মধ্যে জমা রাখছে। যদি ক্যুয়েরী করে দেখা যায় সফল ভাবে ডাটাবেজ আপডেট হয়েছে তাহলে Your Datas are updated successfully মেসেজ দেখা যাবে। আর না হলে Your Datas can not be updated মেসেজ দেখা যাবে।
২২. এখন আসি ডাটা ডিলিট প্রসঙ্গে। এজন্য delete_process.php পেজটি নোটপ্যাড++ দিয়ে ওপেন করি। নীচের কোড গুলো দেখা যাবে।
<!Doctype html> <html> <head> <title>Phone Book::Solution</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body class="body"> <header class="mainheader"> <a href="http://www.abishar14.blogspot.com"><img src="img/__abishar14.png"/></a> <nav> <ul> <li><a href="index.html">Home</a></li> <li><a href="information_form.html">Create an friend</a></li> <li class="active"><a href="information_page.html">Show all friend</a></li> <li><a href="search.php">Search a friend</a></li> </ul> </nav> </header><!-- end mainheader --> <div class="mainContent"> <?php mysql_connect("localhost","root","") or die("Could not Connect Mysql."); mysql_select_db("friends_form") or die("Could not Select Database."); $mobile=$_POST['mobile']; $sql= "SELECT * FROM `add_information` where mobile=$mobile "; $result=mysql_query($sql); $rows=mysql_fetch_array($result); $delete="DELETE FROM `add_information` WHERE mobile='$mobile'"; if(mysql_query($delete)) { echo "<p align=center style='font-size:1.5em; color:#BF8DFF'> Dear " . $rows['name'] . " Your Data's are deleted Successfully.</p>"; } else { print "<p align=center style='font-size:1.5em; color:#BF8DFF'>Your Data's are can not be deleted.</p>"; } ?> </div> </body> </html>
show_information_process.php পেজে delete বাটনে ক্লিক করলে; [ update বাটনে ক্লিক করার দ্বারা update.php পেজে যেভাবে hidden ভাবে মোবাইল নাম্বার পাঠানো হয়েছিল ] ঠিক সেভাবে delete_process.php পেজে মোবাইল নাম্বার পাঠিয়ে দিবে। এখন delete_process.php পেজ কি কাজ করবে ?
কোড গুলো দেখুন
$delete="DELETE FROM `add_information` WHERE mobile='$mobile'";
এখানে DELETE কমান্ড দ্বারা ডাটাবেজের add_information টেবিল থেকে ডাটা ডিলিট করতে বলছে। কার ডাটা ডিলিট করবে ? তা WHERE mobile='$mobile' এর মধ্যে বলা হয়েছে। অর্থাৎ আমরা যে মোবাইল নাম্বারটি delete_process.php পেজে পাঠিয়েছি তার ডাটা অর্থাৎ mirazul haque’র ডাটা গুলো ডাটাবেজ থেকে ডিলিট করে দেবে। যদি ক্যুয়েরী করে দেখা যায় সফল ভাবে ডাটাবেজ থেকে mirazul haque’র ডাটা গুলো সফল ভাবে ডিলিট হয়েছে তাহলে Your Data's are deleted Successfully মেসেজ দেখা যাবে। আর না হলে Your Data's are can not be deleted মেসেজ দেখা যাবে।
কাজ মোটামুটি এখানেই শেষ। বাকি থাকল আপনারা কাজ শেখার জন্য কততুকু সময় দিলেন।
সমালোচনাঃ এখানে কতগুলো বিষয় লক্ষণীয়
পরবর্তী টিউনঃ এটাই আপাতত শেষ টিউন !!!
প্রশ্নঃ কেন আর নতুন টিউন আসবে না ?
উত্তরঃ আসলে আমি এই চেইন টিউনটির আরো অনেক পর্ব লিখতে চেয়েছিলাম। কিন্তু সময় করে উঠতে পারছিনা। অযথা আপনাদের আশা দিয়ে লাভ নেই। এজন্য এই টিউনটি শেষ টিউন হিসেবে লিখছি। যদি সময় করে উঠতে পারি তাহলে আপাতত শেষ টিউন লেখাটি মুছে দিব ইন-শা-আল্লাহ্। বাকী যারা টিউনের জন্য অপেক্ষায় ছিলেন তাদের কাছে ক্ষমা চেয়ে বিদায় নিচ্ছি।
লেখকঃ এ.এম. রবিউল ইসলাম
সৌজন্যঃ আবিশার১৪
আমি রবিউল ভাই। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 14 বছর যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 9 টি টিউন ও 96 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 1 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
নিজে জানুন অন্যকে জানার সুযোগ করে দিন…