PHP सह अ‍ॅड्रेस बुक तयार करा

लेखक: Louise Ward
निर्मितीची तारीख: 7 फेब्रुवारी 2021
अद्यतन तारीख: 16 मे 2024
Anonim
सोर्स कोड के साथ PHP में एड्रेस बुक मुफ्त डाउनलोड | स्रोत कोड और परियोजनाएं
व्हिडिओ: सोर्स कोड के साथ PHP में एड्रेस बुक मुफ्त डाउनलोड | स्रोत कोड और परियोजनाएं

सामग्री

हा लेख प्रथम .नेट मॅगझिनच्या 228 च्या अंकात प्रकाशित झाला आहे - वेब डिझायनर्स आणि विकसकांसाठी जगातील सर्वाधिक विक्री होणारी मॅगझिन.

विकासकांना वापरण्यास सुलभ राहते तर मॉंगोडीबी हा एक दस्तऐवज डेटाबेस आहे जो कार्यक्षमता आणि स्केलसाठी डिझाइन केला आहे. शब्द दस्तऐवज डेटाबेस हा बहुतेक वेळेस गैरसमज होतो - ते पीडीएफ आणि डीओसी फायलींचा संदर्भ देत नाही, परंतु या प्रकरणात दस्तऐवज डेटाबेस म्हणजे अ‍ॅरे संग्रहित करणे. मॉंगोडीबी सहसा अन्य संबंध नसलेले डेटाबेससह गटबद्ध केले जाते, ज्याला NoSQ म्हणतात.

मॉंगोडीबी दोन वैशिष्ट्ये प्रदान करते ज्यास ग्राउंडब्रेकिंग मानले जाऊ शकते. प्रथम, ते मूळ भाषेच्या प्रकारांवर कार्य करते, म्हणून डेटाबेस आपल्यास अनुरूप बनण्याऐवजी आपल्यासाठी कार्य करते. फक्त अ‍ॅरे किंवा ऑब्जेक्ट्स जतन करणे इतके नैसर्गिक वाटते की आपण डेटाबेस वापरत आहात हे द्रुतपणे विसरलात. दुसरे म्हणजे, स्कीमा पूर्णपणे लवचिक आहे म्हणजे प्रत्येक रेकॉर्डमध्ये भिन्न फील्ड असू शकतात. अ‍ॅड्रेस बुक applicationप्लिकेशनवर काम करताना, आम्हाला वाटले की ही लवचिक रचना सर्व प्रकारच्या प्रकारच्या संपर्कांना हाताळण्यासाठी उत्कृष्ट आहे!

माझ्याकडे तीन ईमेल पत्ते असलेल्या लोकांसाठी अ‍ॅड्रेस बुक प्रविष्ट्या आहेत, परंतु पोस्टल पत्ता नाही. त्यानंतर आंटी फ्लू आहेत, ज्यांचे दोन पोस्टल पत्ते आहेत कारण ती सूर्यासह स्थलांतर करते - परंतु तिच्याकडे मोबाइल फोन नाही. हा लेख मॉन्गोडीबीसह वापरण्यासाठी स्कीमा कसा डिझाइन करायचा आणि आम्ही त्यावर पीएचपी अनुप्रयोग कसा तयार केला यावर आधारित आहे.


लोक आणि फोन नंबर

आम्ही आमच्या अ‍ॅड्रेस बुकमध्ये लोकांना तयार करू शकतो आणि वेगवेगळ्या लोकांसह विविध प्रकारचा डेटा जोडू शकतो, त्यानंतर पीएचपीचा वापर करून हे मोंगोडीबीमध्ये संचयित करू. एक साधी पहिली उदाहरणे म्हणून आपण PHP मध्ये तयार केलेल्या डेटाचा अ‍ॅरे आणि मोंगोडीबीला कसे जतन करायचे ते पाहूया:

$ मम = अ‍ॅरे ("नाव" => अ‍ॅरे ("प्रथम" => "मम")), "फोन" => अ‍ॅरे (अ‍ॅरे ("नंबर" => "01234567890", "लेबल" => "कार्य"), अ‍ॅरे ("संख्या" => "07890123456", "लेबल" => "मोबाईल")); $ मोंगो = नवीन मोंगो (); $ डीबी = $ मुंगो-> पत्ते; $ डीबी-> लोक-> सेव्ह ($ आई);

प्रथम आम्ही डेटाचा अ‍ॅरे तयार करतो, जो पीएचपी आपली मूळ भाषा नसली तरीही अगदी परिचित असावा. मग आम्ही एक नवीन मोंगो ऑब्जेक्ट तयार करून मोंगोडीबी डेटाबेसशी कनेक्शन तयार करतो.

मोंगोडीबी हाताळण्यासाठी पीएचपी लायब्ररी मजबूत आणि प्रवेश करण्यायोग्य आहेत आणि त्यामध्ये खरोखर उत्कृष्ट दस्तऐवजीकरण आहे; डीफॉल्टनुसार नवीन मोंगो ऑब्जेक्ट फक्त लोकलहॉस्टवरील मंगोडीबी सर्व्हरशी कनेक्ट होईल परंतु दुसर्‍या लक्ष्य डेटाबेससाठी हे कॉन्फिगर करणे आवश्यक असल्यास आम्ही अतिरिक्त पॅरामीटर्स पास करू शकतो.


डेटाबेस आणि संग्रह

प्रवेश करत आहे पत्ते प्रॉपर्टी पीएचपीला आमच्या डेटाबेसचा वापर आमच्या मॉन्गोडीबी सर्व्हरवर करण्यास सांगते आणि आम्ही नंतर आपला डेटा सेव्ह करतो लोक संग्रह. मॉंगोडीबी मधील संग्रह हे रिलेशनल डेटाबेसमधील सारण्यांसारखे आहे, जिथे आपण समान नोंदी एकत्र ठेवतो.

एकतर नाही पत्ते डेटाबेस किंवा नाही लोक संग्रह अगोदर तयार करणे आवश्यक आहे; मँगोडीबी हे सतत बदलणारे आणि विकसनशील स्कीमा हाताळण्यासाठी डिझाइन केले आहे जेणेकरून दगडात काहीही सेट करण्याची आवश्यकता नाही. तरी काळजी घ्या कारण आपण एखाद्या टेबलचे नाव चुकीचे टाइप केल्यास (किंवा माझे आवडते, चुकीचे अनेकवचन), कोणतीही त्रुटी दर्शविली जाणार नाही!

आम्ही खाली मंगोडीबीमध्ये लॉग इन करू आणि डेटाबेसमध्ये आमच्याकडे काय आहे ते खाली दिलेल्या प्रतिमेमध्ये पाहिल्याप्रमाणे पाहू.

फोन नंबर ज्या प्रकारे संग्रहित केला आहे तो तुम्हाला विचित्र वाटतो? त्याऐवजी आम्ही हे करू शकलो असतो:


$ मम = अ‍ॅरे ("नाव" => अ‍ॅरे ("प्रथम" => "मम")), "फोन" => अ‍ॅरे ("कार्य" => "01234567890", "मोबाइल" => "07890123456"));

या डेटाच्या आयटम फक्त फोन नंबरची मालिका आहेत, ते एकमेकांच्या बरोबरीचे आहेत म्हणून आम्ही ते सर्व यासारखे संचयित करतो "संख्या"पहिल्या उदाहरणात दर्शविल्याप्रमाणे, आणि त्यांना लेबले संलग्न करा. हे नंतरचे उदाहरण वापरणे मोहक आहे कारण ते थोडेसे सोपे दिसत आहे; तथापि, आम्ही या डेटामध्ये कसा प्रवेश करू शकतो हे लक्षात ठेवण्याची गरज आहे.

आम्ही फोन नंबर वेगळ्या फील्ड म्हणून संचयित केल्यास आम्ही तो मोबाइल किंवा वर्क फोन आहे की नाही हे जाणून घेतल्याशिवाय एखाद्या व्यक्तीसाठी फोन नंबर शोधत आहोत. आम्ही निवडलेली रचना फोन नंबरद्वारे एखाद्या व्यक्तीस पाहणे सुलभ करते आणि गरज भासल्यास अधिक तपशील जोडण्याची क्षमता प्रदान करते. म्हणून आम्ही प्रत्येक व्यक्तीसाठी फोन नंबरची यादी संग्रहित करणे निवडले आहे, कोणत्या प्रकारच्या नंबरचे आहे हे सांगण्यासाठी काही माहिती जोडली आहे.

पत्ते संग्रहित करीत आहे

अ‍ॅड्रेस बुक मूळतः पत्त्यांचा हेतू होता, तर मग आपण यापैकी काही वेगवेगळ्या ठिकाणांचे स्वरूपन कसे करू या यावर एक नजर टाकूया. उदाहरणार्थ, आमच्या मॉन्गोडीबी मधील बॉब स्मिथची नोंद वरील प्रतिमांप्रमाणे दिसते.

बॉबकडे तलावाच्या दोन्ही बाजूला घरे आहेत (एक यूएस मध्ये एक, युरोपमधील एक), आणि आपण पाहू शकता की आम्ही प्रत्येक क्षेत्रामध्ये पत्ते कशा स्वरूपित करावीत यासाठी योग्य फील्ड वापरली आहेत कारण मॉन्गोडीबी आम्हाला ते करण्यास सक्षम करते. . ही मंगोडीबी बद्दलची एक उत्तम गोष्ट आहे; प्रत्येक रेकॉर्डशी संबंधित काही फील्ड आम्ही जोडू आणि डेटा प्रत्येक डेटामध्ये तितक्या खोलवर घरटी घालू शकतो. जर आपण लोकांचे फोन नंबर, पत्ते आणि वाढदिवस (त्यांच्या मुलांच्या जन्मतारीखांचा उल्लेख करू नये) असलेली माझी वास्तविक अ‍ॅड्रेस बुक, सर्व फॅक्स नंबरसाठी लिहिलेली सर्व जागा पाहिली तर आपल्याला हे समजेल की हे समाधान इतके अपील का करते!

माहिती भरणे

आत्तापर्यंत आम्ही डेटाचे कठोर कोडिंग करीत आहोत, म्हणूनच आम्ही लोक आणि त्यांच्यासाठी विविध नोंदी जोडण्यासाठी वापरू शकणारा फॉर्म तयार करण्यासाठी थोडेसे चांगले करूया. आम्ही कायमपासून फॉर्मवर प्रक्रिया करण्यासाठी PHP वापरत आहोत परंतु हा प्रणालीचा बर्‍यापैकी महत्वाचा भाग आहे, म्हणून डावीकडे दर्शविलेल्या प्रतिमेवर नजर टाकूया (‘आईच्या शब्दातील शब्द’). हे साध्या फॉर्म प्रोसेसिंग सिस्टमद्वारे चालविले जाते; फॉर्म स्वतः एक मूलभूत टेम्पलेट आहे आणि हे स्क्रिप्टवर सबमिट करते जे फक्त नवीन रेकॉर्ड वाचवते:

जर ($ _ सर्व्हर ['REQUEST_METHOD'] == "पोस्ट") {$ व्यक्ती = अ‍ॅरे (); // सॅनिटाइसिफ (आयसेट ($ _ पोस्ट [[पहिले_नाव ”]))) {$ व्यक्ती ['नाव'] ['प्रथम' ] = फिल्टर_इंटपुट (INPUT_POST, "पहिले_नाव", FILTER_SANITIZE_STRING);} if (isset ($ _ पोस्ट [[आडनाव_नाव]])) {$ व्यक्ती ['नाव'] ['शेवटचे'] = फिल्टर_इंटपुट (INPUT_POST, "आडनाव_नाव", फिल्टर्ड_आयएनआयटी) ); $ $ मुंगो = नवीन मोंगो (); $ डीबी = $ मोंगो-> पत्ते; $ व्यक्ती ['तयार'] = नवीन मोंगोडेट (); b डीबी-> लोक-> सेव्ह ($ व्यक्ती); शीर्षलेख ("स्थान : list.php ");} अन्य {// टेम्पलेट समावेश दर्शवा (" इनपुट. एचटीएमएल ");}

आपले मित्र शोधा

सिस्टममध्ये डेटा टाकणे हे सर्व काही चांगले आहे, परंतु तरीही आम्हाला अनेक निकषांपैकी एकाद्वारे लोकांना शोधणे आवश्यक आहे. लोक आणि त्यांचा संबद्ध डेटा शोधण्यासाठी आम्ही कदाचित वापरत असलेल्या वेगवेगळ्या मार्गांकडे पाहण्यासाठी, आम्ही डेटा क्वेरी करण्यासाठी परत आलेले आदेश पाहण्यासाठी थेट कमांड लाईनमधून मोंगोडीबी वापरू.

चला सर्वात सोप्या प्रकरणापासून सुरुवात करू या आणि ज्यांचे आडनाव स्मिथ आहे अशा लोकांना शोधा. द शोधणे() आपण कमांड लाइनमधून किंवा पीएचपीकडूनच वापरत आहोत की नाही हे मॉंगोडीबी मधील पद्धत निकषाचा एक अ‍ॅरे घेते. येथे आम्ही नाव फील्डमधील शेवटचे फील्ड शोधत आहोत आणि हे जावास्क्रिप्ट असल्याने आम्ही आमच्या निकष म्हणून नेस्टेड प्रॉपर्टी व्हॅल्यू वापरण्यासाठी बिंदू वापरू शकतो.

db.people.find ({’name.last’: ’स्मिथ’;);

हे संपूर्णपणे, आपल्यासह प्रत्येकासाठी असलेल्या नोंदी पुनर्प्राप्त करते name.last फील्ड सेट स्मिथ डेटाबेस मध्ये. अगदी तशाच प्रकारे, आम्ही पत्त्यामध्ये फील्ड खेचू शकतो जे एखाद्या विशिष्ट मूल्याशी जुळतात आणि रेकॉर्डमध्ये घरटे असतात.

विशिष्ट मूल्यांच्या जुळण्याबरोबरच, मोंगोडीबी मूल्येच्या तुकड्यांशी जुळण्यासाठी नियमित अभिव्यक्ती वापरणारे प्रश्न स्वीकारू शकते; उदाहरणार्थ हे करून पहा:

db.people.find (address "address.street": / 61st /});

हे यासह सर्व पत्ते परत करेल 61 वा पत्ता कुठेतरी. रस्ता घटक हे एक प्रमाणित (पूर्व) नियमित अभिव्यक्ती अंमलबजावणी आहे म्हणून आपल्याला नियमित अभिव्यक्तींबद्दल आधीच माहित असलेल्या प्रत्येक गोष्टी येथे लागू होतील - काही अत्यंत शक्तिशाली शोध क्षमतांसाठी.

जेव्हा आपण शोध घेतो तेव्हा अ‍ॅरेमध्ये अनेक निकषांचा पुरवठा करून आपण एकाधिक निकषांवर शोधू शकतो, तर असे काहीतरी करूनः

db.people.find ({"name.last": "स्मिथ", "नेम.फर्स्ट": "बॉब";);

जेव्हा आमच्याकडे एकाधिक नेस्टेड रेकॉर्ड असतात, तथापि आम्हाला एखाद्या विशिष्ट राज्यात आणि शहरात पत्ता शोधत आहोत हे सांगण्यासाठी काहीतरी अधिक विशिष्ट आवश्यक आहे. जर आम्ही फक्त यासाठी निकष जोडले तर पत्ता.स्टेट आणि address.city, आम्हाला एकाधिक पत्ते असलेले जुळणारे लोक मिळतील, जेथे एक राज्य जुळेल आणि दुसरा शहराशी जुळेल. यावर उपाय म्हणून आम्ही हे वापरतो . एलेमॅच ऑपरेटरने असे म्हटले आहे की एका पत्त्यामध्ये एकाधिक घटक जुळले पाहिजेत - उदाहरणार्थ आम्ही न्यूयॉर्क शहरातील न्यूयॉर्क शहरातील असलेले न्यूयॉर्क राज्य पत्ते असलेले लोक शोधू शकले:

db.people.find ({पत्ता: {$ ११ सामना:: राज्य: ’न्यूयॉर्क’, शहर: ’न्यूयॉर्क’}}})

आपल्याला मॉंगोडीबीकडून आवश्यक असलेला डेटा अचूकपणे निवडण्याचे इतर बरेच मार्ग आहेत आणि सुदैवाने त्याचे दस्तऐवजीकरण स्पष्ट उदाहरणांसह खरोखर चांगले केले गेले आहे - आपल्याला हा सर्व माहिती mongodb.org वर सापडेल.

भौगोलिक स्थाने

आपण बारकाईने पहात असल्यास, आपल्याकडे पृष्ठ 99 वर बॉब स्मिथच्या डेटाच्या स्क्रीनशॉटमध्ये समन्वय फील्ड आढळू शकतात. हे अक्षांश आणि रेखांश दर्शवितात आणि यास सामोरे जाण्यासाठी काही विशिष्ट वैशिष्ट्ये मोंगोडीबीकडे आहेत. प्रत्येक संग्रहात, आम्ही भौगोलिक डेटासाठी योग्य मूल्ये लागू करण्यासाठी एक अनुक्रमणिका जोडू शकतो. या अनुप्रयोगासाठी, मी ही आज्ञा वापरली:

db.people.ensureIndex ({’अ‍ॅड्रेसबॉर्डीनेट्स’: ’2 डी’;);

2 डी मॉंगोडीबीला सांगते की हा भौगोलिक अक्षांश / रेखांश डेटा आहे आणि म्हणूनच ते दोन संख्येने असावेत, प्रत्येक +/- 180 च्या श्रेणीतील. आम्ही वर पोस्ट केलेल्या आकडेवारीकडे पहात आहोत, असे दिसते आहे की यूकेचा पत्ता आपल्याला सुंदर कुंब्रियात जागा देतो (खाली प्रतिमा पहा).

हा भौगोलिक डेटा आहे हे मंगोडीबीला माहित आहे, म्हणून आम्ही जेव्हा कार्य करतो तेव्हा भौगोलिक-विशिष्ट वैशिष्ट्यांचा वापर करण्यास सुरवात करू शकतो. उदाहरणार्थ आम्ही हे वापरण्यास सक्षम आहोत $ जवळ ऑपरेटर कोणत्याही अक्षांश किंवा रेखांश बिंदूच्या जवळ नोंदी आणण्यासाठी:

db.people.find ({’address.coordinates’: {$ जवळ: [52, -3]}});

हा डेटाबेसमधील सर्व पत्त्यांचा रेकॉर्ड परत करतो, आम्ही दिलेल्या पॉईंटपासून त्यांच्या अंतराने क्रमवारीत.

आम्ही दिलेल्या शोधामध्ये पत्ते शोधून या शोधामध्ये सुधारणा करू शकतो (अंतर येथे थोडीशी लोकरी संकल्पना आहे कारण आम्ही अक्षांश आणि रेखांश मध्ये काम करत आहोत - पृथ्वी सपाट नाही आणि खरोखर गणिते उत्कृष्ट लेख बनवतील जवळपास असलेल्या नोंदी शोधण्यासाठी) आम्ही वापरू शकतो $ कमाल अंतर ऑपरेटर, या प्रमाणेः

db.people.find ({’address.coordinates’: {$ जवळ: [52, -3], $ अधिकतम अंतर: 50}});

पुन्हा एकदा, आम्हाला बॉबची नोंद सापडते; आम्ही तितकाच वापरला असता मर्यादा () आम्ही एखादा मोठा डेटासेट वापरत असल्यास रेकॉर्डची एक संच परत करण्यासाठी कार्य करते, उदाहरणार्थ आम्ही जवळच्या पाच मित्रांना भेट देण्यासाठी शोधत असल्यास उपयुक्त ठरेल.

पीएचपीसाठी मोंगो विस्तार खरोखरच आम्हाला एकाच वेळी मोंगोडीबीच्या सर्व कार्यक्षमतेत प्रवेश करण्यास सक्षम करते, म्हणूनच आमच्या अनुप्रयोगात समान तंत्रे वापरण्यासाठी अगदी समान दिसतात. जेव्हा आम्ही ती आमच्या अनुप्रयोगात समाविष्ट करतो तेव्हा वरील क्वेरी असे दिसते:

$ मुंगो = नवीन मोंगो (); b डीबी = $ मोन्गो-> पत्ते; $ निकष = अ‍ॅरे ('अ‍ॅड्रेसकोर्डिनेट्स' => अ‍ॅरे ('$ जवळ' => अ‍ॅरे (, 53, -3), '$ अधिकतम अंतर' = > )०)); $ यादी = $ डीबी-> लोक-> शोधा ($ निकष); मुद्रण_आर (पुनरावृत्तीकर्ता_तो_अरे ($ यादी));

आमच्याकडे $ यादीतील संकलनासाठी एक मँगो कर्सर असेल, ज्याचा परिणाम आम्ही आमच्या क्वेरीद्वारे परत मिळविण्यासाठी करू शकतो. छोट्या डेटा सेटसाठी आपण हे वापरू शकता पुनरावृत्तीकर्ता_ ते_अरे () आपण इच्छेनुसार वापरू शकता अशी अ‍ॅरे स्ट्रक्चर देण्यासाठी फंक्शन.

मंगोडीबी आणि नेस्टेड डेटा

आशा आहे की या लेखाने आपल्याला मॉन्गोडीबी वापरुन काम करण्यास किती लवचिक डेटा अत्यंत सुलभ असू शकतो याची एक समज दिली आहे. आम्ही प्रत्येक वेळी डेटा परत मिळवितो तेव्हा केवळ त्या पुन्हा पुन्हा एकत्रित करण्यासाठी रेकॉर्ड वेगळे करणे टाळतो, परंतु तरीही विविध निकषांनुसार गोष्टी शोधण्यासाठी आम्ही त्या नोंदींमध्ये खोलवर शोधू शकतो.

मॉंगोडीबीमध्ये भौगोलिक शोध घेण्याचे समर्थन येथे दर्शविल्या गेलेल्या गोष्टींपेक्षा खूपच जास्त आहे, परंतु या सर्व साधनांमुळे आपल्याला कोणत्या प्रकारच्या गोष्टी मिळविता येतील याची चव आपल्याला मिळाली आहे.

वाचकांची निवड
सर्जनशील नियंत्रणात राहण्याचे 5 मार्ग
पुढे वाचा

सर्जनशील नियंत्रणात राहण्याचे 5 मार्ग

अगदी डिझाइनर आणि सर्जनशील दिग्दर्शकांचेदेखील आयोजन केलेले आणि बर्‍याचदा आजाराच्या कामामुळे वेढलेले जाऊ शकतात. परंतु मुदतीच्या महापुराशी सामना करण्याचा सर्वात चांगला मार्ग कोणता आहे? सॉमऑनसह आमच्या व्ह...
पुनरावलोकन: आयफोनसाठी एमडॉट अ‍ॅप
पुढे वाचा

पुनरावलोकन: आयफोनसाठी एमडॉट अ‍ॅप

एम.डॉट, वेब्र सारखे, आपल्याला आपल्या आयफोनवर सहज मूलभूत वेबसाइट तयार करण्याची परवानगी देते. आणि, व्हेब्र प्रमाणेच, प्रारंभ बिंदू साइटसाठी टेम्प्लेट निवडत आहे.आपण अ‍ॅपसह फिरणे सुरू करण्यापूर्वी आपल्याल...
आतापर्यंतचा 10 महान ऑलिम्पिक गेम्स लोगो
पुढे वाचा

आतापर्यंतचा 10 महान ऑलिम्पिक गेम्स लोगो

ग्रीसच्या ओलंपियामध्ये झालेल्या प्राचीन स्पर्धेपासून प्रेरित होऊन BC व्या शतक ते इ.स.पूर्व चौथ्या शतकापर्यंत आधुनिक ऑलिम्पिक खेळांची सुरुवात १9 4 in मध्ये झाली आणि हे जगातील सर्वात मोठे खेळातील प्रतिभ...