mysql - Joining 5 tables in SQL in a PHP function -
मैं एक सेट में वापस जाने का प्रयास कर रहा हूं:
lessonID
एस userID
और schoolID
से संबंधित स्टार्टटाइम
और एंडटाइम
से जुड़ा है।
यह एक कैलेंडर पर प्रदर्शित किया जाना है। मैं केवल उन पाठों को प्रदर्शित करना चाहता हूं जो उस उपयोगकर्ता के साथ जुड़े हुए हैं, जो उस कैलेंडर के दौरान देखे जाने वाले समय सीमा के भीतर एक चयनित विद्यालय के लिए देख रहे हैं।
यह डेटा सिर्फ तालिका संरचना और डेटा दिखाने के लिए डमी डेटा है प्रकार।
पाठ तालिका:
कम्यूनआईडी कक्ष एफके प्रारंभ समय समाप्ति समय 1 2 2014-08-01 13:00:00 2014-08-01 14:00:00 2 3 2014-08-01 13:00:00 2014-08-01 14:00:00
कमरे सारणी:
कमरेआईडी स्कूल एफके 1 1 2 1 3 2 4 2
स्कूल टेबल:
स्कूल आईडी 1 2
उपयोगकर्ता तालिका:
< प्री> प्रयोक्ता आईडी 1 2 3
पाठ / शिक्षक जंक्शन तालिका:
कम्यून एफके शिक्षक एफके 1 1 2 2 3
मैंने क्या करने की कोशिश की है:
फ़ंक्शन find_lessons_by_school_id_and_teacher_id_ranged_feed ($ school_id, $ teacher_id, $ start, $ end) {वैश्विक $ कनेक्शन; $ School_id = mysqli_real_escape_string ($ कनेक्शन, $ school_id); $ Teacher_id = mysqli_real_escape_string ($ कनेक्शन, $ शिक्षक_आईडी); $ Start = mysqli_real_escape_string ($ कनेक्शन, $ प्रारंभ); $ End = mysqli_real_escape_string ($ कनेक्शन, $ अंत); $ Start = strftime ("% Y-% m-% d% H:% M:% S", $ प्रारंभ); $ End = strftime ("% Y-% m-% d% H:% M:% S", $ end); $ Query = "SELECT *"; $ Query। = "सबक से"; $ Query। = "सबक के लिए कमरा जोड़ें। कमरा = कमरे = रूम" "; $ Query। = "जॉइन स्कूल ऑन रूम.स्कूलएफके = स्कूल स्कूली शिक्षा"; $ Query। = "यूज़र यूजर पर उपयोगकर्ता को शामिल करें। यूजरआईडी = जॉन्क_अंडॉन_टेकर। टीचर एफके"; $ Query। = "जॉन्क_ऑनसन_टेकर पर जॉन्क_अल्पन_टेकर। अनसनॉन एफके = सबन.अलेसोनआईडी" जोड़ें; $ Query। = "WHERE room.SchoolFK = '{$ school_id}'"; $ Query। = "और lesson.startTime & gt; = '{$ start}'"; $ Query। = "और lesson.endTime & lt; = '{$ end}'"; $ Query। = "और user.userID = '{$ शिक्षक_आईडी}'"; $ Query। = "ऑडर्ड बाय सबन। रूम एफके एएससी"; $ Set = mysqli_query ($ कनेक्शन, $ क्वेरी); वापसी $ सेट; }
जब मैं इसे चलाता हूं, mySQL क्वेरी स्टेटमेंट के बारे में शिकायत करता है।
यह कैसे ठीक से करने के लिए कोई इनपुट काफी सराहना की जाएगी! धन्यवाद!
आपके में शामिल होने के कार्य का क्रम गलत है। आपको पिछले दो लोगों को स्वैप करना होगा इसके बजाय
$ query। = "सबक से"; $ Query। = "सबक के लिए कमरा जोड़ें। कमरा = कमरे = रूम" "; $ Query। = "जॉइन स्कूल ऑन रूम.स्कूलएफके = स्कूल स्कूली शिक्षा"; $ Query। = "यूज़र यूजर पर उपयोगकर्ता को शामिल करें। यूजरआईडी = जॉन्क_अंडॉन_टेकर। टीचर एफके"; $ Query। = "जॉन्क_ऑनसन_टेकर पर जॉन्क_अल्पन_टेकर। अनसनॉन एफके = सबन.अलेसोनआईडी" जोड़ें;
लिखें
$ query। = "सबक से"; $ Query। = "सबक के लिए कमरा जोड़ें। कमरा = कमरे = रूम" "; $ Query। = "जॉइन स्कूल ऑन रूम.स्कूलएफके = स्कूल स्कूली शिक्षा"; $ Query। = "जॉन्क_ऑनसन_टेकर पर जॉन्क_अल्पन_टेकर। अनसनॉन एफके = सबन.अलेसोनआईडी" जोड़ें; $ Query। = "यूज़र यूजर पर उपयोगकर्ता को शामिल करें। यूजरआईडी = जॉन्क_अंडॉन_टेकर। टीचर एफके";
क्योंकि प्रत्येक तालिका जो आप में शामिल होती है उसे पहले पेश किया जाना चाहिए। अपने कथन से आप junk_lesson_teacher
को उपयोगकर्ता
तालिका में शामिल नहीं कर सकते, इसलिए आपको उपयोगकर्ता में शामिल होने से पहले junc_lesson_teacher
में शामिल होना होगा बिना किसी बाधा के श्रृंखला के रूप में अपनी टेबल के बारे में सोचें।
Comments
Post a Comment