ASP.Net ভ্যালিডেশন কন্ট্রোlলের উদাহরণ

ASP.Net ভ্যালিডেশন কন্ট্রোlলের উদাহরণ ঃ

Faruk Hosen

উদাহরনের জন্য নিচের লিঙ্ক থেকে কোড ডাউনলোড করুনঃ http://salearningschool.com/samples/validate.txt

• RequiredFieldValidator : প্রতিটা ফিল্ড পুরন করা হয়েছে কিনা তা পরীক্ষা করতে ব্যবহৃত হয়
• CompareValidator : একটা ফিল্ড এর সাথে আরেকটি ফিল্ড এর সাথে তুলনা করতে ব্যবহৃত হয়
• RangeValidator : ডাটা সমূহ একটি নির্দিষ্ট সীমার মধ্যে তুলনা করার জন্য ব্যবহৃত হয়
• RegularExpressionValidator : ডোমেন নাম সিনট্যাক্স , ইমেইল অ্যাড্রেস সিনট্যাক্স এর জন্য ব্যবহৃত হয়
• ValidationSummary : সকল ভেলিডেশন এরর একটি সংক্ষিপ্ত বাক্সে প্রদর্শন এর জন্য ব্যবহৃত হয়
• CompareValidator : আপনার নিজস্ব ভ্যালিডেশন রুল রাইট এবং এর ফলাফল প্রদর্শন এর জন্য ব্যবহৃত হয়

• মনে রাখতে হবেঃ
 আপনি কন্ট্রল প্যানেলের পাশে এরর প্রদর্শন করতে পারেন
 আপনি কন্ট্রল প্যানেলের নিচে এরর প্রদর্শন করতে পারেন
 টেক্সট প্রপারটি হল আউটপুট যা আসে যেখানে ভ্যালিডেশন কন্ট্রল স্থাপন করা হয় সেখান থেকে। এরর ম্যাসেজ রিপোর্ট হয় ভ্যালিডেশন সামারির জন্য।
 আপনি যদি শুধু ভ্যালিডেশন সামারি আউটপুট চান, তবে ভ্যালিডেশন কন্ট্রল এর জন্য Display=”none” ব্যবহার করুণ (সামারিকন্ট্রল নয়)।

http://salearningschool.com/displayArticle.php?table=Articles&articleID=1325

C – Strings . সি প্রোগ্রামিং এ স্ট্রিং

C – Strings
মোঃ আব্দুল্লাহ
সি প্রোগ্রামিং এ স্ট্রিং হল মুলত এক ডাইমেনশনের array যা কিনা শেষ হয় ‘\0’ বা null character দিয়ে ।
নিম্নের বিবৃতি এবং উদ্ধৃতিটি এমন একটি স্ট্রিং তৈরী করে যা “Hello” স্ট্রিংটি ধারণ করে। array র শেষে null character কে ধারণ করার জন্য array র ধারণক্রিত পদের স্ট্রিং একের মত বড় যেন তা “Hello.” স্ট্রিংটি ধারণ করতে পারে।
char greeting[6] = {‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’};

তুমি যদি array শুরু করার নিয়ম অনুসরণ করতে চাও তবে তুমি উপরের বিবৃতিটি নিম্নরুপে লিখতে পার।
char greeting[] = “Hello”;
উপরের স্ট্রিংটি মেমোরিরে কিভাবে থাকবে তার জন্য নীচের ছবিটি দেখতে পারোঃ

বস্তুত তুমি স্ট্রিং কন্সটান্টের শেষে null characte টিকে স্থাপন কর না। সি কম্পাইলর নিজে থেকে ‘\0’ কে স্ট্রিং এর শেষে স্থাপন করে যখন এটি array initialize করে। চলো উপরের স্ট্রিং কে প্রিন্ট করিঃ
#include <stdio.h>
int main ()
{
char greeting[6] = {‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’};
printf(“Greeting message: %s\n”, greeting );
return 0;
}

যখন উপরের কোডটি কম্পাইল করে রান করা হয় তখন এটি নিম্নোক্ত ফলাফল দেয়ঃ
Greeting message: Hello

সি স্ট্রিং এর জন্য অনেক ফাংসন এর অবলম্বন করে থাকে । নিম্নে তার একটি তালিকা দেওয়া হলঃ
S.N. Function & Purpose
1 strcpy(s1, s2);
স্ট্রিং s2 কে s1 এ কপি করে।
2 strcat(s1, s2);
স্ট্রিং s1 এর শেষে স্ট্রিং s2 কে যুক্ত করে।
3 strlen(s1);
স্ট্রিং s1 এর দৈর্ঘ্য ফেরত পাঠায় ।
4 strcmp(s1, s2);
যদি s1 এবং s2 সমান হয় তবে 0; যদি s1s2 হলে 0 থেকে বেশি ফেরত দেয়।
5 strchr(s1, ch);
ch এর পয়েন্টার ফেরত পাঠায় যখন ch প্রথম স্ট্রিং s1 এ দেখা যায় ।
6 strstr(s1, s2);
স্ট্রিং s1 এর মধ্যে স্ট্রিং s2 প্রথম দেখা যায় তার পয়েন্টেরকে ফেরত দেয়।
নিম্নের উদাহরণটি উপরে দেখানো কিছু ফাংসনের ব্যবহার দেখায়ঃ
#include <stdio.h>
#include <string.h>

int main ()
{
char str1[12] = “Hello”;
char str2[12] = “World”;
char str3[12];
int len ;

/* copy str1 into str3 */
strcpy(str3, str1);
printf(“strcpy( str3, str1) : %s\n”, str3 );

/* concatenates str1 and str2 */
strcat( str1, str2);
printf(“strcat( str1, str2): %s\n”, str1 );

/* total lenghth of str1 after concatenation */
len = strlen(str1);
printf(“strlen(str1) : %d\n”, len );
return 0;
}

যখন উপরের কোডটি কম্পাইল করে এবং রান করা হয়, এটি নিম্নোক্ত ফলাফল দেয়ঃ
strcpy( str3, str1) : Hello
strcat( str1, str2): HelloWorld
strlen(str1) : 10

C – Loops

C – Loops
মোঃ আব্দুল্লাহ

কখনো কখনো এমন পরিস্থিতি হতে পারে যে একটি কোড ব্লককে একাধিকবার পরিচালনা করতে হতে পারে। সাধারনত, বিবৃতিগুলি একের পর এক পরিচালিত হয়। একটি ফাংশনের প্রথম বিবৃতিটি প্রথমে পরিচালিত হবে, এরপর দ্বিতীয়টি, তারপর বাকিগুলি।
প্রোগ্রামিং এর ভাষাগুলি বিভিন্ন ধরনের পরিচালনা চক্র অনুসরন করে যা আরো জটিল পরিচালনার পথে পরিচালিত হতে পারে।
লুপ বিবৃতি একটি বিবৃতি বা এক গুচ্ছ বিবৃতিকে একাধিক বার পরিচালনার অনুমুতি দেয় সাধারন উপায়ে সব ধরনের প্রগ্রামিং ভাষায়।

সি প্রোগ্রামিং ভাষা লুপিং চাহিদা পরিপূরণের জন্য নিম্নের ধরনের লুপ দিয়ে থাকে। নিম্নের লিংকগুলি ক্লিক করে এর সম্পর্কে বিস্তারিত জানো।
Loop Type Description
while loop
হওয়াইল লুপ যখন প্রদত্ত যুক্তিটি সত্য তখন এটি একটি বিবৃতি বা এক গুচ্ছ বিবৃতিকে পুনরাবৃত্তি করে। এটি লুপটিকে পরিচালনার আগে বিবৃতিকে পরীক্ষা করে।
for loop
ফর লুপ বিবৃতির ধারা্টিকে একাধিকবার পরিচালনা করে এবং কোডটিকে সংক্ষেপে প্রকাশ করে যা লুপ চলকের ব্যবস্থাপনা করে।
do…while loop
ডু… হওয়াইল লুপ এটি হওয়াইল বিবৃতির মত, শুধু এটি লুপের শেষে যুক্তি পরীক্ষা করে।
nested loops
ডু… হওয়াইল লুপের জন্য তুমি এক বা একাধিক লুপকে যেকোন হওয়াইল লুপের ভিতরে ব্যবহার করতে পার।

Loop Control Statements:

লুপ নিয়ন্ত্রন বিবৃতি সাধারন ধারা থেকে পরিবর্তিত হয়ে পরিচালিত হতে পারে। যখন পরিচালনা একটি সুযোগ রেখে দেয় তখন সব বস্তু যা ওই সুযোগে নিজে থেকে সৃষ্টি হয়েছিল তা ধ্বংস হয়ে যায়।
সি নিম্নোক্ত নিয়ন্ত্রন বিবৃতিকে সমর্থন করে। নিম্নের লিঙ্কটিকে ক্লিক করে এর সম্পর্কে বিস্তারিত জানো।
Control Statement Description
break statement
ব্রেক বিবৃতি এটি লুপকে শেষ বা বিবৃতিকে পরিবর্তন করে । লুপ বা সুইচকে অনুসরণ করে বিবৃতিকে সঙ্গে সঙ্গে পরিচালনা করে।
continue statement
কনটিনিউ বিবৃতি এটি লুপকে এর অবশিষ্ট অংশকে টপকে এবং সঙ্গে সঙ্গে এর আগের যুক্তিতে ফেরত যেতে সাহায্য করে।
goto statement
গো টু বিবৃতি লেবেলেড বিবৃতিতে পরিবর্তনকে নিয়ন্ত্রণ করে। যদিও গো টু বিবৃতিতে প্রোগ্রামটিকে পরিবর্তন করার উপদেশ দেওয়া হয় না।

The Infinite Loop:
যদি কোন যুক্তি কখনও মিথ্যা না হয় তবে লুপটি ইনফিনিট লুপ হয়। এর জন্য ফর লুপটি ব্যবহৃত হয়। যদিও এই তিনটি এক্সপ্রেশনের একটিও ফর লুপের জন্য প্রয়োজন হয় না, তবুও তুমি একটি স্থায়ী লুপ বানাতে পার নির্ভরশীল এক্সপ্রেশনকে খালি রেখে।
#include <stdio.h>
int main ()
{
for( ; ; )
{
printf(“This loop will run forever.\n”);
}
return 0;
}

যখন নির্ভরশীল এক্সপ্রেসন অনুপস্থিত থাকে, তখন একে সত্যি ধরে নেয়া হয়। তোমার একটি প্রস্তুতিমূলক বা ক্রমবৃদ্ধি এক্সপ্রেশন থাকতে পারে , কিন্তু সি প্রোগ্রাম বেশিরভাগ ক্ষেত্রে ফর (;;) বানানোর জন্য ইনফিনিট লুপকে প্রকাশ করে।

C – Program Structure . একটি সি প্রোগ্রাম মূলত নিম্নলিখিত অংশ নিয়ে গঠিত

স্বাগতম আমাদের সাইটে আসার জন্য
আমরা এখানে সি প্রোগ্রাম নিয়ে আলোচনা করব। যেখানে আপনি সহজে জানতে পারবেন কিভাবে আমরা একটি প্রোগ্রাম চালু করতে পারব। আমরা সি এর মুল শেখার আগে আসুন একটি সহজ প্রোগ্রাম চালু করি।
একটি সি প্রোগ্রাম মূলত নিম্নলিখিত অংশ নিয়ে গঠিত:
১. পূর্ব প্রক্রিয়া নির্দেশ
২. কার্যাবলী/ ফাংশন
৩. চলক / Variables
৪. বিবৃতি ও প্রকাশ
৫. মন্তব্য / Comments
আসুন এবার আমরা জেনে নেই কিভাবে আমরা একটি সহজ প্রোগ্রাম চালু করব। প্রোগ্রামটি “Hello World” নামে পরিচিত।
#include <stdio.h>

int main()
{
/* my first program in C */
printf(“Hello, World! \n”);

return 0;
}

আসুন জেনে নেই এই উপরোক্ত প্রোগ্রামে কি কি কোড আছেঃ
• #include<stdio.h> কে হেডার ফাইল বলা হয়। এটাকে আবার একটি সি কম্পাইলার বলে।
• Int main () বলতে প্রোগ্রামের প্রধান ফাংশন কে বুঝায়।
• পরের লাইন /*…*/ কম্পাইলার এটাকে এড়িয়ে যাবে এবং এটি প্রোগ্রামের মধ্যে অতিরিক্ত মন্তব্য যোগ করা হয়েছে. সাধারনত এটি প্রোগ্রামটি অন্যকে বুঝাতে ব্যবহার করা হয়।
• Printf(“—”); এর ভিতরে — এর বদলে আপনি যা লিখবেন সবই আপনার মনিটরের পর্দায় প্রিন্ট হবে।
• Return 0 নির্দেশনাটি আবার প্রোগ্রামটিকে 0 মান অথবা মুল্য তে নিয়ে যাবে।
সি প্রোগ্রাম সঙ্কলন ও সম্পাদন করা:
একটি ফাইলের মধ্যে সোর্স কোড সংরক্ষণ করতে, এবং কিভাবে কম্পাইল এবং এটি চালানোর জন্য কিভাবে তাকান করতে দেয়. নিম্নলিখিত সহজ ধাপ আছেঃ

• একটি টেক্সট এডিটর খুলুন যেখানে আপনি উপরে উল্লিখিত কোড লিখবেন।
• hello.c লিখে ফাইলটি সেভ করেন।

• একটি কমান্ড প্রম্পট খুলুন এবং আপনি ফাইলটি সংরক্ষণ করে রাখেন আপনার পছন্দের ড্রাইভে।
• gcc hello.c লিখে এন্টার বাটন প্রেস করে আপনার কম্পাইল কোড গুলো লিখুন।
• আপনার কোড মধ্যে কোন ত্রুটি আছে কমান্ড প্রম্পট পরের লাইন নিতে হবে a.out এবং এক্সিকিউটেবল ফাইল তৈরি হবে।
• এখন, আপনার প্রোগ্রাম চালানো a.out টাইপ করুন।
• এখন আপনি “হ্যালো ওয়ার্ল্ড” দেখতে পাবেন।
• $ gcc hello.c
• $ ./a.out
• Hello, World!

জিসিসি কম্পাইলার কে আপনার ফাইলটির স্থান দেখিয়ে দিন যাতে আপনার সংরক্ষিত সোর্স ফাইলটি , hello.c চালু হয়।

MongoDB Sort Documents . MongoDB ডকুমেন্ট বাছাই

MongoDB ডকুমেন্ট বাছাই
নয়ন চন্দ্র দত্ত

sort() পদ্ধতি
MongoDB ডকুমেন্ট বাছাই করতে হলে আপনাকে sort() পদ্ধতি ব্যবহার করতে হবে। ক্ষেত্র তালিকা ধারণকারী এবং তাদের বাছাই ক্রমের সঙ্গে, sort() পদ্ধতি ডকুমেন্ট গ্রহণ করে।
বাছাই প্রক্রিয়া উল্লেখ করার জন্য 1 এবং -1 ব্যবহৃত হয়। 1 ক্রম ঊর্ধ্বগামীতার জন্য ব্যবহার করা হয় যখন -1 অধোগামীর জন্য ব্যবহৃত হয়।

সিনট্যাক্সঃ
sort() পদ্ধতির বেসিক সিনট্যাক্স বা বাক্য গঠন নিম্নরূপঃ

>db.COLLECTION_NAME.find().sort({KEY:1})

উদাহরণঃ
কালেকশন myycol এ নিম্নলিখিত তথ্য আছে বিবেচনা করিঃ

{ “_id” : ObjectId(5983548781331adf45ec5), “title”:”MongoDB Overview”}
{ “_id” : ObjectId(5983548781331adf45ec6), “title”:”NoSQL Overview”}
{ “_id” : ObjectId(5983548781331adf45ec7), “title”:”Tutorials Point Overview”}

উপরের উদাহরণটিতে অধোগামীতায় টাইটেল হিসেবে ডকুমেন্ট প্রদর্শন করবেঃ

>db.mycol.find({},{“title”:1,_id:0}).sort({“title”:-1})
{“title”:”Tutorials Point Overview”}
{“title”:”NoSQL Overview”}
{“title”:”MongoDB Overview”}
>

দয়া করে মনে রাখবেন, আপনি যদি বাছাই প্রক্রিয়া উল্লেখ না করেন তাহলে sort() পদ্ধতি ক্রম ঊর্ধ্বগামী হিসেবে ডকুমেন্ট প্রদর্শন করবে।

MongoDB Update Document

MongoDB আপডেট ডকু্মেন্ট
নয়ন চন্দ্র দত্ত

MongoDB এর update() এবং save() পদ্ধতি একটি কালেকশনে ডকুমেন্ট আপডেট করতে ব্যবহৃত হয়। যখন save() পদ্ধতি বিদ্যমান নথি save() পদ্ধতি্র মধ্যে গৃহীত ডকুমেন্ট সাথে প্রতিস্থাপন করে
তখন update() পদ্ধতি বিদ্যমান ডকুমেন্ট এর value বা মানকে আপডেট করে।

MongoDB update() পদ্ধতি
update() পদ্ধতি বিদ্যমান ডকুমেন্টের মানকে আপডেট করে।

সিনট্যাক্স:
update() পদ্ধতির বেসিক সিনট্যাক্স বা বাক্য-গঠন নিম্নরূপঃ

>db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)

উদাহরণঃ
চলুন নিম্নলিখিত তথ্যের সাথে myycol কালেকশনটি বিবেচনা করিঃ

{ “_id” : ObjectId(5983548781331adf45ec5), “title”:”MongoDB Overview”}
{ “_id” : ObjectId(5983548781331adf45ec6), “title”:”NoSQL Overview”}
{ “_id” : ObjectId(5983548781331adf45ec7), “title”:”Tutorials Point Overview”}

নিম্নলিখিত উদাহরণটি ‘MongoDB Overview’ ডকুমেন্টের নতুন টাইটেল ‘New MongoDB Tutorial’ সেট করবে ।

>db.mycol.update({‘title’:’MongoDB Overview’},{$set:{‘title’:’New MongoDB Tutorial’}})
>db.mycol.find()
{ “_id” : ObjectId(5983548781331adf45ec5), “title”:”New MongoDB Tutorial”}
{ “_id” : ObjectId(5983548781331adf45ec6), “title”:”NoSQL Overview”}
{ “_id” : ObjectId(5983548781331adf45ec7), “title”:”Tutorials Point Overview”}
>

ডিফল্টভাবে mongodb শুধুমাত্র সিঙ্গেল ডকুমেন্ট আপডেট করে। অধিক ডকুমেন্ট আপডেট করতে হলে আপনাকে একটি প্যারামিটার ( ‘multi’ true ) যোগ করতে হবে।
যেমন-

title’:’MongoDB Overview’},{$set:{‘title’:’New MongoDB Tutorial’}},{multi:true})

MongoDB Save() পদ্ধতি
save() পদ্ধতি বিদ্যমান ডকুমেন্ট save() পদ্ধতির মধ্যে গৃহীত নতুন ডকুমেন্টের সাথে প্রতিস্থাপন করে।

সিনট্যাক্স:
save() পদ্ধতির বেসিক সিনট্যাক্স বা বাক্য-গঠন নিম্নরূপঃ

>db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})

উদাহরণঃ
নিম্নলিখিত উদাহরণটি _id ‘5983548781331adf45ec7’ এর সঙ্গে ডকুমেন্টটিকে প্রতিস্থাপন করবে।

>db.mycol.save(
{
“_id” : ObjectId(5983548781331adf45ec7), “title”:”Tutorials Point New Topic”, “by”:”Tutorials Point”
}
)
>db.mycol.find()
{ “_id” : ObjectId(5983548781331adf45ec5), “title”:”Tutorials Point New Topic”, “by”:”Tutorials Point”}
{ “_id” : ObjectId(5983548781331adf45ec6), “title”:”NoSQL Overview”}
{ “_id” : ObjectId(5983548781331adf45ec7), “title”:”Tutorials Point Overview”}
>

মংগোডিবি – কুয়েরি ডোকুমেন্ট (MongoDB – Query Document)

MongoDB অনুসন্ধানমূলক বা Query ডকুমেন্ট

নয়ন চন্দ্র দত্ত

 

 

find() পদ্ধতি

MongoDB collection ডেটা অনুসন্ধান করতে আপনাকে MongoDB এর find() পদ্ধতি ব্যবহার করতে হবে।

 

সিনট্যাক্সঃ

find()  এর বেসিক সিনট্যাক্স বা বাক্য-গঠন নিম্নরূপঃ

 

>db.COLLECTION_NAME.find()

 

find() পদ্ধতি সবগুলো ডকুমেন্টকে একটি অ-কাঠামোগত ভাবে প্রদর্শন করবে।

 

 

 

 

pretty() পদ্ধতি

সুবিন্যস্তভাবে ফলাফল প্রদর্শন করার জন্য pretty() পদ্ধতি ব্যবহার করতে পারেন।

 

সিনট্যাক্সঃ

 

>db.mycol.find().pretty()

 

 

উদাহণঃ

 

>db.mycol.find().pretty()

{

“_id”: ObjectId(7df78ad8902c),

“title”: “MongoDB Overview”,

“description”: “MongoDB is no sql database”,

“by”: “tutorials point”,

“url”: “http://www.tutorialspoint.com”,

“tags”: [“mongodb”, “database”, “NoSQL”],

“likes”: “100”

}

>

 

 

 

find() পদ্ধতি ছাড়াও এখানে findOne() পদ্ধতিও আছে যা শুধুমাত্র একটি ডকুমেন্টকে পুনরায় ধাবিত করে।

 

 

 

 

 

MongoDB এর মধ্যে RDBMS যেখানে Clause বা ধারা সমতুল্য

কিছু অবস্থার ভিত্তিতে ডকুমেন্ট অনুসন্ধান করতে আপনি নিম্নলিখিত অপারেশন ব্যবহার করতে পারেন।

 

অপারেশনঃ সমতা

সিনট্যাক্সঃ {<key>:<value>}

উদাহণঃ db.mycol.find({“by”:”tutorials point”}).pretty()

RDBMS সমতুল্যতাঃ যেখানে by = ‘tutorials point’

 

অপারেশনঃ ছোট

সিনট্যাক্সঃ {<key>:{$lt:<value>}}

উদাহণঃ db.mycol.find({“likes”:{$lt:50}}).pretty()

RDBMS সমতুল্যতাঃ যেখানে likes < 50

 

অপারেশনঃ সমান বা ছোট

সিনট্যাক্সঃ {:{$lte:}}

উদাহণঃ db.mycol.find({“likes”:{$lte:50}}).pretty()

RDBMS সমতুল্যতাঃ যেখানে likes <= 50

 

অপারেশনঃ বড়

সিনট্যাক্সঃ {<key>:{$gt:<value>}}

উদাহণঃ db.mycol.find({“likes”:{$gt:50}}).pretty()

RDBMS সমতুল্যতাঃ যেখানে likes > 50

 

অপারেশনঃ সমান বা বড়

সিনট্যাক্সঃ {:{$gte:}}

উদাহণঃ db.mycol.find({“likes”:{$gte:50}}).pretty()

RDBMS সমতুল্যতাঃ যেখানে likes >= 50

 

অপারেশনঃ অসমান

সিনট্যাক্সঃ {:{$ne:}}

উদাহণঃ db.mycol.find({“likes”:{$ne:50}}).pretty()

RDBMS সমতুল্যতাঃ যেখানে likes != 50

 

 

 

 

 

MongoDB তে AND

সিনট্যাক্সঃ

find() পদ্ধতিতে যদি আপনি একাধিক কী ( ‘,’ )দিয়ে পৃথক করে পাস করেন তাহলে MongoDB এটাকে AND শর্তের ন্যায় আচরন করায়। AND এর বেসিক সিনট্যাক্স বা বাক্য-গঠন নিম্নরূপঃ

 

>db.mycol.find({key1:value1, key2:value2}).pretty()

 

 

উদাহণ

উল্লিখিত নীচের উদাহরণটি ‘tutorials point’ দ্বারা লিখিত সব টিউটোরিয়াল এবং যার টাইটেল ‘MongoDB Overview’  প্রদর্শন করবে।

 

>db.mycol.find({“by”:”tutorials point”,”title”: “MongoDB Overview”}).pretty()

{

“_id”: ObjectId(7df78ad8902c),

“title”: “MongoDB Overview”,

“description”: “MongoDB is no sql database”,

“by”: “tutorials point”,

“url”: “http://www.tutorialspoint.com”,

“tags”: [“mongodb”, “database”, “NoSQL”],

“likes”: “100”

}

>

 

 

 

উপরে উল্লিখিত উদাহরণটি সমান হবে যেখানে clause টি ‘ where by=’tutorials point’ AND title=’MongoDB Overview’  হবে।

 

 

 

 

 

 

MongoDB তে OR

সিনট্যাক্সঃ

OR শর্তের উপর ভিত্তি করে ডকুমেন্ট খোজতে আপনাকে $or কীওয়ার্ড ব্যবহার করতে হবে। OR এর বেসিক সিনট্যাক্স বা বাক্য-গঠন নিম্নরূপঃ

 

>db.mycol.find(

{

$or: [

{key1: value1}, {key2:value2}

]

}

).pretty()

 

 

 

উদাহণ

উল্লিখিত নীচের উদাহরণটি ‘tutorials point’ দ্বারা লিখিত সব টিউটোরিয়াল এবং যার টাইটেল ‘MongoDB Overview’  প্রদর্শন করবে।

 

 

>db.mycol.find({$or:[{“by”:”tutorials point”},{“title”: “MongoDB Overview”}]}).pretty()

{

“_id”: ObjectId(7df78ad8902c),

“title”: “MongoDB Overview”,

“description”: “MongoDB is no sql database”,

“by”: “tutorials point”,

“url”: “http://www.tutorialspoint.com”,

“tags”: [“mongodb”, “database”, “NoSQL”],

“likes”: “100”

}

>

 

 

 

 

একত্রে AND এবং OR  এর ব্যবহার

উদাহণঃ

উল্লিখিত নীচের উদাহরণটি ১০০ এর চেয়ে বড় এবং যার টাইটেল ‘MongoDB Overview’ বা ‘tutorials point’ । এসকিউএল সমান হবে যেখানে ‘where likes>10 AND (by = ‘tutorials point’ OR title = ‘MongoDB Overview’)’  । যেমনঃ-

 

>db.mycol.find(“likes”: {$gt:10}, $or: [{“by”: “tutorials point”}, {“title”: “MongoDB Overview”}] }).pretty()

{

“_id”: ObjectId(7df78ad8902c),

“title”: “MongoDB Overview”,

“description”: “MongoDB is no sql database”,

“by”: “tutorials point”,

“url”: “http://www.tutorialspoint.com”,

“tags”: [“mongodb”, “database”, “NoSQL”],

“likes”: “100”

}

>

 

 

 

http://Bangla.SaLearningSchool.com

মঙ্গোডিবি – ইন্সার্ট ডোকুমেন্ট (MongoDB – Insert Document)

MongoDB – ডকুমেন্ট সন্নিবেশন
সন্নিবেশ পদ্ধতি
MongoDB সংগ্রহে ডাটা সন্নিবেশন বা প্রবেশ করতে হলে আপনাকে MongoDB এর সন্নিবেশ পদ্ধতি ব্যবহার করতে হবে ।
শব্দবিন্যাস
শব্দবিন্যাস সন্নিবেশন বা প্রবেশের প্রাথমিক নির্দেশনা নিম্নে দেয়া হল :
>db.COLLECTION_NAME.insert(document)
উদাহরণ
>db.mycol.insert({
_id: ObjectId(7df78ad8902c),
title: ‘MongoDB Overview’,
description: ‘MongoDB is no sql database’,
by: ‘tutorials point’,
url: ‘http://www.tutorialspoint.com’,
tags: [‘mongodb’, ‘database’, ‘NoSQL’],
likes: 100
})
পূর্ববর্তী টিউটোরিয়াল অনুসারে এখানে mycol আমাদের সংগ্রহের নাম । ডকুমেন্টগুলো ডাটাবেসের মধ্যে উপস্থিত না থাকলে, MongoDB তে সংগ্রহ বা কালেকশন তৈরি করুন এবং তারপর ডকুমেন্টগুলো প্রবেশ করুন ।
যদি সন্নিবেশকৃত ডকুমেন্টগুলোর মধ্যে নির্দিষ্ট _id parameter বা স্থিতিমাপ না থাকে তাহলে MongoDB এই নথির জন্য একটি আদর্শ লক্ষ্য নির্ধারণ করতে হবে ।
_id 12 বাইট হেক্সাডেসিমেল সংখ্যা প্রতিটি ডকুমেন্টের জন্য আদর্শ সংখ্যা । 12 বাইটকে নিম্নোক্ত ভাবে ভাগে করা হয় :
_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)
একক অনুসন্ধানে একাধিক ডকুমেন্ট প্রবেশ করার জন্য, আপনি ডকুমেন্টে অ্যারের কমান্ডের মাধ্যমে পাস করতে পারেন ।
উদাহরণ
>db.post.insert([
{
title: ‘MongoDB Overview’,
description: ‘MongoDB is no sql database’,
by: ‘tutorials point’,
url: ‘http://www.tutorialspoint.com’,
tags: [‘mongodb’, ‘database’, ‘NoSQL’],
likes: 100
},
{
title: ‘NoSQL Database’,
description: ‘NoSQL database doesn’t have tables’,
by: ‘tutorials point’,
url: ‘http://www.tutorialspoint.com’,
tags: [‘mongodb’, ‘database’, ‘NoSQL’],
likes: 20,
comments: [
{
user:’user1′,
message: ‘My first comment’,
dateCreated: new Date(2013,11,10,2,35),
like: 0
}
]
}
])
এছাড়াও আপনি db.post.save ব্যবহার করতে পারেন নথি (ডকুমেন্ট) প্রবেশ করার জন্য । যদি আপনি নথিতে নির্দিষ্ট _id উল্লেখ না করেন, তাহলে সংরক্ষণ পদ্ধতি সন্নিবেশ পদ্ধতি হিসাবে একই কাজ করবে । আর যদি আপনি নির্দিষ্ট _id উল্লেখ করেন তাহলে এটি সমস্ত ডকুমেন্ট প্রতিস্থাপন করবে যেভাবে সংরক্ষণ পদ্ধতি সংরক্ষিত হয়েছিল ।

এইচটিএমএল লিঙ্ক (HTML Link)

এইচ টি এম এল লিঙ্ক

স্বর্ণা আখতার

সম্পাদনাঃ মোঃ রফিকুল ইসলাম

 

প্রায় সকল ওয়েবপেজ এ লিঙ্ক রয়েছে। লিঙ্ক এ ক্লিক করার মাধ্যমে ব্যবহারকারী এক পেজ থেকে অন্য পেজে যেতে পারে।

এইচটিএমএল লিঙ্ক – হাইপারলিঙ্ক

হাইপারলিঙ্ক হচ্ছে একটি Text, বা ছবি যার উপর ক্লিক করার মাধ্যমে আপনি অন্য আরেকটি ওয়েবপেজে/ডকুমেন্ড এ চলে যেতে পারে।

 

এইচটিএমএল লিঙ্ক – সিনট্যাক্স

এইচ টি এম এল এ লিঙ্ক সিনট্যাক্সগুলো কিভাবে গঠিত হয় নিচে তাঁর উদাহরন তুলে ধরা হল, <a> ট্যাগ দ্বারা লিঙ্ককে সঙ্গায়িত করা হয়।

লিঙ্ক সিনট্যাক্স


<a href=”url”>link text</a>


উদাহরনঃ


<a href=”http://bangla.salearningschool.com/html/”>Visit our HTML tutorial</a>


 

ফলাফলঃ


Visit our HTML tutorial


এখানে href অ্যাট্রিবিউট ওয়েব পেজ এর গন্তব্যকে নির্দেশ করে করে যেমন, http://bangla.salearningschool.com/html/
আর link text (Visit our HTML tutorial) হল প্রদর্শিত অংশ যার উপর ক্লিক করলে আপনি একটি নির্দিষ্ট ওয়েব পেজ এ স্থানান্তিরিত হবেন।

নেটঃ link text সবসময়ই টেক্স হতে হবে এমন কোন কথা নেই, এটি ছবি বা এইচটিএমএল এর যেকোন উপাদান হতে পারে।

 

লোকাল লিঙ্ক

উপরের উদাহরণে একটি সংয়সম্পূর্ণ ওয়েব এড্রেস (URL) ব্যবহার করা হয়েছে।

একটি লোকাল লিঙ্ক (একই ওয়েব সাইটের লিঙ্ক) নির্দিষ্ট করা হয় আপেক্ষিক URL এর সাহায্যে (http://www…. ব্যতীত)

যেমনঃ


<a href=”html_images.asp”>HTML Images</a>


 

এইচটিএমএল লিঙ্ক – কালার এবং আইকন

আপনি যখন কোন লিঙ্ক এর উপর নিয়ে যান তখন সাধারণত দুপ্রকার ঘটনা ঘটতে পারেঃ

১. মাউস এর তীর টিহ্নটি একটা ছোট হাতের রুপ নিতে পারে।
২. লিঙ্ক এর বিষয়বস্তু যেমন লিঙ্ক টেক্সট ইত্যাদির কালার পরিবর্তন হয়ে থাকে।

সাধারনত লিঙ্কগুলো যে কোন ব্রাউজার এ নিম্নোক্তভাবে দেখা যায়

১. অদেখা লিঙ্কগুলোর নিচে আন্ডার লাইন এবং এদের কালার নীল হয়।
২. দেখা লিঙ্কগুলোর নিচেও আন্ডার লাইন থাকে কিন্তু এদের কালার সাধারনত রক্তবর্ণ হয়।
৩. একটা সচল লিঙ্কএর নিচেও একইভাবে আন্ডার লাইন কিন্তু লাল কালারের হয়ে থাকে।

আপনি style ব্যবহার করে ডিফল্ট কালার ও আন্ডারলাইন পরিবর্তন করতে পারেন।

উদাহরণঃ


<style>
a:link   
{color:#000000; background-color:transparent; text-decoration:none}
a:visited {color:#000000; background-color:transparent; text-decoration:none}
a:hover   {color:#ff0000; background-color:transparent; text-decoration:underline}
a:active  {color:#ff0000; background-color:transparent; text-decoration:underline}
</style>

এইচটিএমএল লিঙ্ক – টার্গেট অ্যাট্রিবিউট

target অ্যাট্রিবউট নির্দারণ করে ডকুমেন্টটি কোথায় খুলবে।

উদাহরণস্বরূপ ডকুমেন্টটি একই উইন্ডোতে খুলতে পারে বা নতুন ট্যাব এও খুলতে পারেঃ


<a href=“http://bangla.salearningschool.com/html/” target=“_blank”>Visit our HTML tutorial</a>


 

ফলাফল


Visit our HTML tutorial


 

Target Value বিবরণ
_blank লিঙ্ককৃত ডকুমেন্টটি নতুন একটি উইন্ডো বা ট্যাব এ খোলে
_self লিঙ্ককৃত ডকুমেন্টটি যে ফ্রেমে ক্লিক করেছেন সেই একই ফ্রেমে খুলবে (এটিই ডিফল্ট হিসেবে থাকে)
_parent লিঙ্ককৃত ডকুমেন্টটি মুল ফ্রেমে খোলে
_top লিঙ্ককৃতডকুমেন্টটি সম্পূর্ণ উইন্ডো জুড়ে খোলে
framename লিঙ্ককৃত ডকুমেন্টটি নির্দিষ্ট নামের ফ্রেমে খোলে

 

আপনার ওয়েব পেজটি যদি একটি ফ্রেম লক করা থাকে, তাহলে target=”_top” ব্যহার করে লক ভেঙ্গে ফেলতে পারেন।

উদাহরণঃ


<a href=”http://bangla.salearningschool.com/html/” target=”_top”>Visit our HTML tutorial</a>


 

ফলাফলঃ


Visit our HTML tutorial


 

এইচটিএমএল লিঙ্ক – ইমেজ/ছবি লিঙ্ক হিসেবে ব্যবহার

ইমেজকে লিঙ্ক হিসেবে ব্যবহার করা খুবই সাধারণ

উদাহরণঃ


<a href=“default.asp”>
<img src=“smiley.gif” alt=“HTML tutorial” style=“width:42px;height:42px;border:0”>
</a>

 

ফলাফলঃ


smiley


 

এইচটিএমএল লিঙ্ক – id অ্যাট্রিবিউট

<a> এলিমেন্ট এর সাথে একটি id অ্যাট্রিবউট যোগ করুন


<a id=”tips”>Useful Tips Section</a>


 

<a> এলিমেন্ট এ একটি লিঙ্ক সংযুক্তকরণ


<a href=”#tips”>Visit the Useful Tips Section</a>


 

<a> এলিমেন্ট এ অন্য পেজ এর একটি লিঙ্ক যুক্তকরণ


<a href=”http://bangla.salearningschool.com/html_links.htm#tips”>Visit the Useful Tips Section</a>


 

 

সারসংক্ষেপ

• এইচটিএমএল <a> এলিমেন্ট এর ব্যবহার লিঙ্ককে সঙ্গালিত করে

• এইচটিএমএল href অ্যাট্রিবউট এর ব্যবহার লিঙ্ক এর এড্রেসকে সঙ্গায়িত করে

• এইচটিএমএল target অ্যাট্রিবউট এর ব্যবহার  লিঙ্কটি কোথায় খুলবে তা বোঝায়

• এইচটিএমএল <img> এলিমেন্ট এর ব্যবহার ইমেজ/ছবিকে লিঙ্ক সিহেবে ব্যবহার করে

• এইচটিএমএল id অ্যাট্রিবউট (id=”value”) এর ব্যবহার বুকমার্ক ডিফাইন করার জন্য ব্যবহৃত হয়

• এইচটিএমএল href অ্যাট্রিবউট (href=”#value”) এর ব্যবহার বুকমার্ক এ ঠিকানা বুঝায়

 

পিএইচপি ত্রুটি পরিচালনার ব্যবস্থা (PHP Error Handling)

পিএইচপি প্রোগ্রামিং এ একটি Default Error Handling built-in থাকে যা স্বয়ংক্রিয় ভাবে যে ফাইলে ভুল রয়েছে সেই ফাইলের নাম, যে লাইন এ ভুল হয়েছে তার নম্বর এবং কি ধরনের ভুল হয়েছে তা প্রদর্শন করে থাকে এবং ব্রাউসারে একটি error message প্রেরন করে। আমরা উক্ত error message দেখে খুব সহজে আমাদের করনিও নিরধারন করতে পারি।

পিএইচপি স্ক্রিপ্ট এবং ওয়েব অ্যাপ্লিকেশন তৈরি করার সময় যদি আমরা ত্রুটিপূর্ণ ফাইল পরিচালনা করি তাহলে আপনার প্রোগ্রাম খুব অপেশাদারী হতে পারে এবং এই অ্যাপ্লিকেশন এ নিরাপত্তা ঝুঁকি থেকে যাবে যা আমাদের মটেই কাম্য নয়।
সুতরাং পিএইচপি স্ক্রিপ্ট এ কোন প্রকার ত্রুটি রয়েছে কিনা তা নির্ধারণ করা একটি গুরুত্বপূর্ণ অংশ।

এই টিউটোরিয়ালটিতে আমরা পিএইচপি প্রোগ্রামিং এর কিছু সাধারণ ভুল রয়েছে তা সমাধান সহ বেশ কিছু জিনিস শিখবো। আমরা সমাধানের জন্য নিম্নোক্ত দুটি পদ্ধতি বর্ণনা করব।

“die()” statements এর সাহায্যে কিভাবে error handling করা যায় তা আলোচনা করব।


<?php
 $file=fopen("welcome.txt","r");
 ?>

 

প্রথমে আমরা একটি স্ক্রিপ্ট লিখব যা একটি .txt ফাইল খুলার নির্দেশ বহন করছে।


<?php
$file=fopen("welcome.txt","r");
?>

 

এখন যদি মূল পিএইচপি এর জন্য বরাদ্দকৃত ফোল্ডার এ এই welcome.txt ফাইলটির কোন অস্তিত্ব না থাকে তাহলে আমরা নিম্নক্ত error message পাব।


Warning: fopen(welcome.txt) [function.fopen]: failed to open stream:
No such file or directory in C:\webfolder\test.php on line 2


 

উপরোক্ত error messege দেখে খুব সহজেই বোঝা জাচ্ছে যে আমাদের webfolder এ welcome.txt নামের কোন ফাইল compiler খুজে পায় নি।

এখন আমরা “die()” statements এর সাহায্যে welcome.txt ফাইলটি আমাদের মূল webfolder এ আছে কিনা তা চেক করে দেখবো।


<?php
 if(!file_exists("welcome.txt")) {
   die("File not found");
 } else {
   $file=fopen("welcome.txt","r");
 }
 ?>

 

এই script পরিচালনা করার পর যদি ফাইলটি webfolder এ না থাকে তাহলে নিচের message টি পাবো এবং script পরিচালনা সয়ংক্রিওভাবে বন্ধ হয়ে যাবে।


“File not found”


 

এখন আমরা Custom Creator Handler এর সাহায্যে কিভাবে error handling করা যায় তা দেখবো। Custom Creator Handler এমন একটি ফাংসন যা script এ কোন error থাকলে এর সাহায্য নেয়া যাবে। এই ফাংসন এর সাহায্যে সর্বনিম্ন দুটি (error level এবং error message) থেকে পাঁচটি (file, line-number, এবং the error context) পর্যন্ত parameters ব্যবহার করা যাই।

Syntax গুলো নিম্নের নিয়মে লেখা যায়।


error_function(error_level,error_message,
error_file,error_line,error_context)

 

Parameter বর্ণনা

error_level অবশ্য প্রয়োজনীয়। এটি error report level প্রদর্শন করে থাকে এবং এর ফলাফল একটি value number হতে হবে।
error_message অবশ্য প্রয়োজনীয়। এটি error message প্রদর্শন করে থাকে।
error_file ঐচ্ছিক। এটি filename প্রদর্শন করে যেখানে error টি নম্পাদন হয়েছে।
error_line ঐচ্ছিক। এটি line number প্রদর্শন করে যেখানে error টি রয়েছে।
error_context ঐচ্ছিক। এটি একটি array নির্দিষ্ট করে, এবং script এ অন্তরভুক্ত প্রত্যেকটি variable এবং তাদের value প্রদর্শন করে থাকে।

Set Error Handler

আমরা আগেই জেনেছি যে, পিএইচপি তে Error Handler built-in থাকে। আমরা একটি function তৈরি করবো যা default error handler টিকে script পরিচালন এর সময় ব্যবহার করবো। তবে জরুরি কোন প্রয়জনে কিছু কিছু error এর জন্য default error handler টি পরিবর্তন করা যায়। নিম্নে একটি উধাহরন দেখান হল।


set_error_handler(“customError”);


 

যদি আমরা আমাদের নিজস্ব ফাংশন দিয়ে সব ত্রুটি হ্যান্ডেল করতে চাই তাহলে set_error_handler () একটি মাত্র parameter ব্যবহার করবো এবং দ্বিতীয় parameter টি error level এর জন্য ব্যাবহার করতে পারব। নিম্নে একটি উধাহরন দেখানো হল।


<?php
 //error handler function
 function customError($errno, $errstr) {
   echo "<b>Error:</b> [$errno] $errstr";
 }
 
 //set error handler
 set_error_handler("customError");
 
 //trigger error
 echo($test);
 ?>