NexxDigital - კომპიუტერები და ოპერაციული სისტემები

ერთ-ერთი ყველაზე პოპულარული და აუცილებელი ფუნქცია ნებისმიერ ვებსაიტზე არის ძებნა, რომელიც ხორციელდება სპეციალური ფორმის გამოყენებით. ეს ფუნქცია საშუალებას აძლევს ვიზიტორებს სწრაფად იპოვონ მათთვის საინტერესო შინაარსი საიტზე.

დღეს გვინდა გითხრათ, როგორ მოძებნოთ საიტი სპეციალური ფორმის გამოყენებით, რომელიც გამოიკითხავს მონაცემთა ბაზის ცხრილებს და აჩვენებს ინფორმაციას საიტზე მიმდინარე მენეჯერების შესახებ. თქვენ შეისწავლით თუ როგორ უნდა შექმნათ მონაცემთა ბაზის ცხრილები, რომლებიც შეიცავს ინფორმაციას მიმდინარე პერსონალის შესახებ.

შეიმუშავეთ საძიებო ფორმები PHP დახმარება, ასევე გაეცანით SQL-ს (Structured Query Language) - სპეციალური ენა მონაცემთა ბაზებში შემავალი ინფორმაციის შეგროვების, ჩაწერისა და მოდიფიკაციისთვის. სანამ დაიწყებთ, გირჩევთ ჩამოტვირთოთ პროექტის ფაილები.

რაც დაგჭირდებათ

  • ინსტრუმენტი MySQL მონაცემთა ბაზებთან მუშაობისთვის.
  • ადგილობრივი ან დისტანციური სერვერი PHP მხარდაჭერით.
  • Ტექსტის რედაქტორი.
მონაცემთა ბაზის შექმნა

თუ არ ხართ დარწმუნებული, რომ გესმით თქვენი ჰოსტინგის მონაცემთა ბაზა, დაუკავშირდით ჰოსტერს შესაბამისი ინსტრუქციების ან დახმარებისთვის. მონაცემთა ბაზის შექმნის შემდეგ დაგჭირდებათ მისი დაკავშირება, ცხრილის შექმნა და მასში საჭირო მონაცემების ჩაწერა.

Ყველაზე პოპულარული ინსტრუმენტიამისთვის MySQL მენეჯმენტიარის PHP My Admin. ეს ინსტრუმენტი საკმარისი იქნება ჩვენი დღევანდელი გაკვეთილისთვის.

მაგიდის შექმნა

ჩვენი ცხრილი უნდა შეიქმნას შემდეგ ფორმატში:

სვეტის სახელი Მონაცემთა ტიპი სიგრძე ნული თუ არა ნული Მთავარი გასაღები? ავტომატური ზრდა
ID INT 1 არა ნული დიახ დიახ
Სახელი ვარჩარ 50 არა ნული არა არა
Გვარი ვარჩარ 50 არა ნული არა არა
ელფოსტა ვარჩარ 50 არა ნული არა არა
Ტელეფონის ნომერი ვარჩარ 15 არა ნული არა არა

მონაცემთა ბაზის ცხრილი შედგება სვეტებისა და რიგებისგან, ისევე როგორც Excel. პირველი სვეტი საშუალებას გაძლევთ ამოიცნოთ მონაცემები სახელის მიხედვით. შემდეგ მოდის მონაცემთა ტიპების სვეტი, რომელიც გვეუბნება სვეტში შემავალი მონაცემების ტიპს. სიგრძე ველი განსაზღვრავს მეხსიერების (შენახვის) მაქსიმალურ რაოდენობას ცხრილის სვეტისთვის. ჩვენ ვიყენებთ ცვლადებს, რომლებიც მეტ მოქნილობას იძლევა. სხვა სიტყვებით რომ ვთქვათ, თუ სრული სახელის სიგრძე 50 სიმბოლოზე ნაკლებია, მაშინ გამოყოფილი სივრცის მხოლოდ ნაწილი დაიკავებს.

და პერსონალის მონაცემებს შორის არ შეიძლება იყოს ცარიელი მნიშვნელობები (null, ცარიელი). პირველი რიგი მონიშნულია ყვითლად, რადგან ID სვეტი არის ჩვენი ძირითადი გასაღები. მონაცემთა ბაზაში ძირითადი გასაღები უზრუნველყოფს, რომ თითოეული ჩანაწერი უნიკალურია. ავტომატური ზრდა ასევე გამოიყენება ამ სვეტზე, რაც ნიშნავს, რომ ჩვენს მონაცემთა ბაზაში თითოეული ჩანაწერი იქნება მინიჭებული უნიკალური ნომერიავტომატურად.

პერსონალის წარმომადგენლების დამატება მაგიდაზე

ცხრილის გაგების შემდეგ, დაიწყეთ მისი შევსება მონაცემებით. 6 შენიშვნა საკმარისია იმისათვის, რომ ეს პროცედურა თქვენს გონებაში დაფიქსირდეს. ქვემოთ შემოგთავაზებთ ჩემს მაგალითს:

სვეტის ID Სახელი Გვარი ელფოსტა Ტელეფონის ნომერი
2 რაიანი მსახურთუფროსი [ელფოსტა დაცულია] 417-854-8547
3 ბრენტი კალაჰანი [ელფოსტა დაცულია] 417-854-6587
ფორმის განვითარება

Google-ის საშუალებით საიტის საძიებო ფორმის შესაქმნელად, გახსენით ნებისმიერი შესაფერისი ტექსტის რედაქტორი. მე გირჩევთ გამოიყენოთ უფასო PSPad. თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი ტექსტური რედაქტორი, რომელიც უზრუნველყოფს სინტაქსის ხაზგასმას. ეს მნიშვნელოვნად შეუწყობს ხელს PHP კოდის დაწერისა და გამართვის პროცესს. თქვენი საძიებო ფორმის გვერდის შექმნისას აუცილებლად შეინახეთ ის .php ფორმატში, წინააღმდეგ შემთხვევაში PHP კოდი არ იქნება სწორად გაანალიზებული. დოკუმენტის შენახვის შემდეგ, დააკოპირეთ მასში შემდეგი მარკირება:

მოძებნეთ კონტაქტები:

დეტალური კონტაქტის ძებნა

შეგიძლიათ მოძებნოთ სახელი ან გვარი

თუ იცნობთ HTML ენა, მაშინ ყველაფერი გასაგები უნდა იყოს თქვენთვის, სულ მცირე, გახსნის ფორმის ტეგამდე. ამ ტეგის შიგნით არის მთელი კოდის ყველაზე მნიშვნელოვანი ელემენტი - მოქმედების ატრიბუტი. ჩვენი ფორმის მოქმედებისთვის, ჩვენ დავაზუსტეთ ჩვენი ფაილის სახელი და შემდეგ მივმართეთ მასზე მოთხოვნის სტრიქონს „go“.

კრიტერიუმთან შესაბამისობის შემოწმება

როდესაც მომხმარებელი შეიყვანს სახელს ან გვარს და შემდეგ დააჭერს გაგზავნის ღილაკს, ფორმა გადასცემს მონაცემებს საკუთარ თავს და ამატებს შეკითხვის სტრიქონს „go“ ბოლოს. ამ ეტაპზე ჩვენ ვამოწმებთ go query სტრიქონის არსებობას. თუ შედეგი დადებითია, ჩვენ ვაჩვენებთ ძიების შედეგებს.

მოთხოვნილი შედეგების ჩვენებამდე, ორჯერ უნდა შევამოწმოთ: (1) იყო თუ არა ფორმა გაგზავნილი, (2) შეიცავს თუ არა მოთხოვნის სტრიქონი go მნიშვნელობას, (3) არის თუ არა საძიებო მოთხოვნაშეყვანილია ქვედა თუ დიდი ასოებით? თუ არცერთი შემოწმება არ იძლევა დადებით შედეგს (true), მაშინ ჩვენ არ ვართ საჭირო რაიმე ქმედების შესრულებას.

პირველი, მოდით დავამატოთ PHP საიტის საძიებო კოდის მცირე ბლოკი დახურვის ტეგის შემდეგ:

პირველ რიგში, ჩვენ ვხსნით PHP კოდის ბლოკს "" ტეგით.

ნებისმიერი PHP კოდი ამ ტეგების წყვილში შესრულდება სერვერის მიერ. შემდეგ ვამოწმებთ, არის თუ არა ფორმა გაგზავნილი:

ჩვენ გამოვიყენებთ ჩაშენებულ isset ფუნქციას, რომელიც აბრუნებს bool-ს და მასში ჩავდებთ $_POST მასივს. ლოგიკური გამოხატულება პროგრამირებაში საშუალებას გვაძლევს მივიღოთ სწორი ან მცდარი.

ამიტომ, თუ ფუნქცია დააბრუნებს true, მაშინ ფორმა გაგზავნილია და ჩვენ უნდა გავაგრძელოთ კოდის შემდგომი შესრულება. თუ ფუნქცია დააბრუნებს false-ს, მაშინ დავბეჭდავთ შეცდომის შეტყობინებას. შეინახეთ ყველა აკრეფილი კოდი search_submit.php ფაილში.

ჩვენ ვაყენებთ სხვა პირობით ლოგიკურ გამონათქვამს მთავარში, მაგრამ ამჯერად ვიყენებთ $_GET მასივს "go" მნიშვნელობასთან ერთად. შეინახეთ ცვლილებები search_go.php ფაილში.

ახლა ჩვენ უნდა დავრწმუნდეთ, რომ ვიზიტორებს შეუძლიათ შეიყვანონ მოთხოვნის სტრიქონის პირველი ასო მხოლოდ დიდი ან მხოლოდ მცირე ასოებით. ჩვენ ასევე უნდა მივაწოდოთ გზა, რომ გავითვალისწინოთ ვიზიტორის მიერ შეყვანილი საძიებო კრიტერიუმები. ვიზიტორთა შეყვანის დასადასტურებლად საუკეთესო გზაა რეგულარული გამოხატვის გამოყენება:

კიდევ ერთი პირობითი ლოგიკური გამოთქმა ჩავსვით ჩვენს ორში. ამჯერად ვიყენებთ რეგულარული გამოხატულებათქვენი შეყვანის დასადასტურებლად. ჩვენ ვიყენებთ ჩაშენებულ preg_match ფუნქციას ორი პარამეტრით: რეგულარული გამოხატულება და ფორმის ველი, რომელზედაც უნდა იქნას გამოყენებული ვალიდაცია.

ჩვენს შემთხვევაში, ეს იქნება "სახელი" ველი (სახელი). ვიზიტორის მიერ მითითებული საძიებო პარამეტრების დასაბრუნებლად, ჩვენ ვქმნით $name ცვლადს და ვუკავშირდებით მას POST მნიშვნელობას ველის სახელთან ერთად იმ ფორმიდან, რომელიც გამოყენებული იქნება SQL მოთხოვნაში. ჩვენ ახლა განვახორციელეთ: (1) ფორმის მონაცემები არის გაგზავნილი, (2) მოთხოვნის სტრიქონი მოიცავს go მნიშვნელობას და (3) ვიზიტორმა შეიყვანა ან დიდი ან პატარა პირველი ასო. და ყველა ეს შემოწმება ხდება მონაცემთა ბაზაში რაიმე ცვლილების შეტანამდე. შეინახეთ ყველა ცვლილება.

მონაცემთა ბაზის ცხრილიდან დაკავშირება, არჩევა, მოთხოვნა და შედეგების დაბრუნება

ცხრილიდან მონაცემების მისაღებად, თქვენ ჯერ უნდა დაუკავშირდეთ სერვერს საიტის საძიებო სკრიპტით. ამისათვის ჩვენ ვიყენებთ შემდეგ კოდს:

ჩვენ ვქმნით $db ცვლადს და ვუკავშირებთ მას ჩაშენებულ MySQL ფუნქციას mysql_connect, რომელიც იღებს სამ პარამეტრს: სერვერს მონაცემთა ბაზასთან ერთად (localhost თუ მუშაობთ ლოკალურად), შესვლა და პაროლი.

ამის შემდეგ, ჩვენ ვაწარმოებთ ჩაშენებულ PHP ფუნქციის die-ს, რომელიც აჩერებს კოდის შემდგომ შესრულებას, თუ მონაცემთა ბაზასთან კავშირი არ არის. და ჩვენ ვაჩვენებთ ინფორმაციას შეცდომის შესახებ ჩაშენებული MySQL ფუნქციის mysql_error-ის გაშვებით, რომელიც დააბრუნებს შეცდომის მიზეზს. შეინახეთ search_connectdb.php ფაილი.

ჩვენ ვქმნით ცვლადს სახელად mydb და ვუკავშირდებით მას ჩაშენებულ MySQL ფუნქციას mysql_select_db, შემდეგ კი ვაზუსტებთ მონაცემთა ბაზის სახელს, რომელიც ადრე შევქმენით. შემდეგი, ჩვენ ვკითხულობთ მონაცემთა ბაზის ცხრილს SQL მოთხოვნის გამოყენებით სახელის ცვლადით, რომელიც შეიცავს ვიზიტორის მიერ შეყვანილ საძიებო პარამეტრებს:

მონაცემთა ბაზის ცხრილის მოთხოვნისას ჩვენ ვქმნით $sql ცვლადს და ვუკავშირდებით მას SQL მოთხოვნის შემცველ სტრიქონზე. Ჩვენ ვიყენებთ SELECT განცხადებაამოიღეთ მნიშვნელობები id სვეტებიდან და სახელი და გვარი კონტაქტების ცხრილიდან. შემდეგ ვიყენებთ WHERE პუნქტს სახელისა და გვარის მნიშვნელობებთან ერთად ძიების შესამცირებლად.

LIKE ოპერატორთან ერთად ვიყენებთ პროცენტის ნიშანს (%) - სპეციალურ სიმბოლოს, რომელიც აბრუნებს 0 ან მეტ სიმბოლოს, ასევე სახელის ცვლადს საძიებო სტრიქონიდან. შედეგად, LIKE (სპეციალურ სიმბოლოსთან ერთად) პოულობს ნებისმიერ შესატყვის სახელს მონაცემთა ბაზის ცხრილში. თქვენ შეგიძლიათ აღწეროთ მთელი პროცესი შემდეგნაირად: „ჩვენ ვირჩევთ სახელსა და გვარს კონტაქტების ცხრილიდან, რომლებიც ემთხვევა სტუმრის მიერ შეყვანილ სახელებს“. შეინახეთ search_query.php ფაილი.

ჩვენ ვქმნით $result ცვლადს და ვანიჭებთ მას mysql_query() ფუნქციის მნიშვნელობას $query-ში დამატებით. ახლა ჩვენი მოთხოვნა ინახება შედეგის ცვლადში. PHP-ში შედეგის გამოსატანად, ჩვენ ვქმნით მარყუჟს და შემდეგ გამოვიყვანთ მონაცემებს შეუკვეთილ სიაში:

ჯერ ვქმნით while მარყუჟს, მის შიგნით ვქმნით ცვლადს სახელწოდებით row და ინიციალიზაციას ვაკეთებთ mysql_fetch_array ფუნქციის დაბრუნების მნიშვნელობით, რომელიც იღებს შედეგის ცვლადს, რომელიც შეიცავს ჩვენს SQL მოთხოვნას. while მარყუჟის შიგნით, ჩვენ თითოეულ სვეტის მნიშვნელობას ვანიჭებთ იმავე სახელის ცვლადის მნიშვნელობას. შემდეგ ჩვენ გამოვაქვთ მნიშვნელობები შეუკვეთავი სიის შიგნით.

აქ მნიშვნელოვანია ყურადღება მიაქციოთ ორ პუნქტს: (1) while მარყუჟის შიგნით, თქვენ არ გჭირდებათ მნიშვნელობების მინიჭება მწკრივის მასივის ცვლადებზე, რადგან მნიშვნელობები შეიძლება იქნას მიღებული პირდაპირ მწკრივიდან; (2) წამყვანი ტეგი, რომელსაც ვიყენებთ ჩვენი ფაილის სახელში ID და პირველად გასაღებთან ერთად. ამის მიზეზი ის არის, რომ ბევრი საძიებო ელემენტი თავდაპირველად არაფერს აჩვენებს.

ვინაიდან ჩვენ ვაჩვენებთ მხოლოდ სახელს და გვარს ჩვენი წამყვანი თეგის ბოლოს ID-ის დამატებით, შეგვიძლია გამოვიყენოთ ID დამატებითი მოთხოვნა, რომელიც გამოსვლის საშუალებას მოგცემთ Დამატებითი ინფორმაციაპერსონალის შესახებ. შეინახეთ ფაილი და შეამოწმეთ PHP ფორმასაიტის ძებნა (search_display.php).

ჩანართების ამოღება

შედეგები ნაჩვენებია როგორც დაუგეგმავი სია, მაგრამ საქმე იმაშია, რომ ჩვენ არ გვჭირდება ჩანართები. მისგან თავის დასაღწევად, დაამატეთ შემდეგი CSS წესი თქვენი ფაილის თავიდანვე თავში:

ul li (list-style-type:none;)

ძიება ასოებით

ასოების ძიების განსახორციელებლად, საჭიროა მხოლოდ რამდენიმე დამატებითი ხაზი კოდი. მოდით დავამატოთ ეს მოსახერხებელი ფუნქცია ვიზიტორებისთვის. ამ გზით ისინი შეძლებენ პერსონალის წარმომადგენლების პოვნას სახელის ან გვარის ასოებით.

დაამატეთ კოდის შემდეგი ხაზი დახურვის ფორმის ტეგის შემდეგ:

A | B | კ



თუ შეამჩნევთ შეცდომას, აირჩიეთ ტექსტის ნაწილი და დააჭირეთ Ctrl+Enter
გააზიარე:
NexxDigital - კომპიუტერები და ოპერაციული სისტემები