![]() |
# 6 | |
חבר חדש
|
ציטוט:
אם אין קשר בכלל בין הטבלאות, אז עדיף להריץ את החיפוש על כל טבלה בנפרד. לצורך העניין: PHP קוד:
אם בכל מקרה אתה רוצה לקבל את המידע בתוצאה אחת, אפשר לעשות את זה כך: קוד:
SELECT * FROM `table1` WHERE `fname` LIKE '%str%' OR `lname` LIKE '%str%' OR `city` LIKE '%str%' UNION ALL SELECT * FROM `table2` WHERE `pname` LIKE '%str%' OR `pdesc` LIKE '%str%' כלומר, אם אתה משתמש בכוכבית(*) אז צריך לוודא שבמקור 2 הטבלאות מכילות את אותו מספר עמודות, לדוגמא במקרה שלך - 4. אם אתה בוחר את העמודות הספציפיות שאתה רוצה להחזיר, אתה חייב לציין ב2 השאילתות את אותו מספר עמודות. אם בשאילתה אחת יש לך פחות עמודות, תחזיר עמודה נוספת ריקה או משהו אחר. (דוגמא לזה, בקוד הבא בהמשך הפוסט) שים לב, שהמבנה(שמות) של העמודות יקבע לפי השאילתה הראשונה. כלומר, אם אתה שולף את המידע דרך PHP וניגש למידע דרך השם של העמודה, אז השמות של העמודות בשאילתה הראשונה הן אלו שיהיו השמות שיוחזרו במערך. ולכן, המידע שתקבל (מ2 טבלאות, עם שמות ועמודות שונים) יהיה מבולגן ולא תדע איזה מידע אתה מקבל מאיזו טבלה. לחילופין, אפשר להתייחס לעמודות באופן מספרי, לפי הסדר שהן מוחזרות (כמו בדוגמא הבאה), אבל עדיין לא תדע איזה שורות/מידע שייך לאיזו טבלה. דרך אחת לפתור את הבעיה הזאת היא להוסיף עמודה נוספת שתזהה את הטבלה, ואז התוצאה יכולה להיות משהו כזה: PHP קוד:
**כל הקודים נכתבו בהודעה זו, בלי לבדוק. ייתכנו שגיאות תחביר/לוגיקה. מקווה שעזרתי, חג שמח.
__________________
המשך יום טוב, מתן ![]() אתר חדשות האינטרנט - אפליקציית אנדרואיד אפליקציית לוח שידורים מעודכן Last edited by while1; 30-05-17 at 15:24.. |
|
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
כלים לאשכול | |
תצורת הצגה | |
|
|