הרשם | שאלות ותשובות | רשימת חברים | לוח שנה | הודעות מהיום | חיפוש |
|
|
כלים לאשכול | תצורת הצגה |
29-05-17, 16:14 | # 1 |
עסק רשום [?]
|
MySQL: הצגה מ-2 טבלאות ללא מיזוג
היי חברים, אני רוצה לבצע חיפוש בשני טבלאות שונות ולקבל את מבנה הטבלה המקורית בלבד.
ללא מיזוג השורות. דוגמא: קוד:
id,fname,lname,city ============= 1,dani,biton,tel aviv 2,avi,kahlon,ramat gan id,pname,pdesc,price ============= 1,vaccum cleaner,blah,12 2,vaccum pump,blah,12 אשמח לעזרה ותודה מראש! |
29-05-17, 19:57 | # 2 |
עסק רשום [?]
|
תסביר את עצמך קצת יותר ואולי אצליח להבין.
__________________
בניית אתרים - פיתוח מערכות מידע - שירותי ענן - עיצוב גראפי - אפליקציות טל. 054-3536-304 - דוא"ל. hostarltd@gmail.com |
29-05-17, 22:03 | # 3 |
עסק רשום [?]
|
מצטער על האי הבנה, יסביר יותר טוב עכשיו
נגיד וקיימות הטבלאות הבאות ואני רוצה לחפש בשדות LIKE fname,lname,city וגם בשדות pname,pdesc כשבוחרים את 2 הטבלאות, עם או ללא JOIN זה מחזיר את זה מחובר. fname,lname,city,pname,pdesc באותה השורה. יש דרך לשמור על הצורה המקורית? [0]=fname,lname,city [1]=pdesc,pname קוד:
users ====== id,fname,lname,city ============= 1,dani,biton,tel aviv 2,avi,kahlon,ramat gan products ==== id,pname,pdesc,price ============= 1,vaccum cleaner,blah,12 2,vaccum pump,blah,12 |
30-05-17, 10:30 | # 4 |
חבר בקהילה
|
מקבלים תוצאה אחת ולא שתי תוצאות לכן התשובה היא לא.
אתה יכול ליצור כינויים (alias) ולקבל את זה כך HTML קוד:
t1_id,t1_fname,t1_lname,t1_city,t2_id,t2_pname,t2_pdesc,t2_price ============= 1,dani,biton,tel aviv,1,vaccum cleaner,blah,12 2,avi,kahlon,ramat gan,2,vaccum pump,blah,12 ============= |
30-05-17, 11:40 | # 5 |
עסק רשום [?]
|
אני רוצה לבצע חיפוש ולקבל את המקור שזה נמצא בו.
בנפרד, זה חיפוש או שם או שם. טבלאות לא צריכות להיות קשורות אחת לשניה. באתר מה שקורה אני פשוט מסמן בצ'ק בוקס כל טבלה שאני רוצה לבצע בה את החיפוש. ואז רציתי לקבל את התוצאות בדיוק כפי שהם נמצאו. Last edited by MasterNetwork; 30-05-17 at 12:18.. |
30-05-17, 14:41 | # 6 |
חבר בקהילה
|
אז תריץ שתי שאילתות ותקבל שתי תוצאות
|
30-05-17, 15:18 | # 7 | |
חבר חדש
|
ציטוט:
אם אין קשר בכלל בין הטבלאות, אז עדיף להריץ את החיפוש על כל טבלה בנפרד. לצורך העניין: 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.. |
|
30-05-17, 19:34 | # 8 |
עסק רשום [?]
|
בסדר גמור הלוגיקה וגם התחבירים. רציתי לדעת אם להשתמש בUNION זה יהיה לי הכי הגיוני.
פשוט נדאג למס' עמודות זהה. תודה רבה אחלה דיון, וחג שמח גם לכם אגב, בעקרון הטבלאות כמעט זהות לחלוטין. חוץ מטבלה אחת שהיא שונה לגמרי. החיפוש יתבצע על עמודות זהות ברוב הטבלאות. קוד:
SELECT `id` , `fname` , `lname` , `city` , 'bla1' AS `table_name` תודה רבה, בדיוק התשובות שהייתי צריך. חג שמח חברים! Last edited by MasterNetwork; 30-05-17 at 20:49.. |
04-06-17, 10:12 | # 9 |
חבר בקהילה
|
תסביר את עצמך יותר ואוכל לעזור לך
|
25-06-17, 05:28 | # 10 |
חבר בקהילה
|
בעבר גם אני נתקלתי בבעיה שרציתי להריץ 2 שאילות בבת אחת וניסיתי למצוא פיתרון. יש פקודה בשם mysqli_multi_query() שאמורה לאפשר לך לעשות את זה וניתן לראות מידע נוסף על הפקודה בעמוד הבא:
https://www.w3schools.com/php/func_m...ulti_query.asp זה היה לפני הרבה זמן וניסיתי גם לעבוד עם הפקודה אבל בסופו של דבר הגעתי למסקנה שיותר קל להשתמש ב-2 שאילתות שונות ולחבר את הנתונים למשתנה אחד. |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|