![]() |
קישור בין טבלאות במסד SQL
היי,
נניח שיש לי 2 טבלאות כרגע. אחת בנויה ככה: איידי, שם משתמש, בעלים. השניה בנויה ככה: איידי, שם משתמש, מספר כלשהו. האיידי לא חופפים בשתי הטבלאות. בעלים - זה STRING כלשהו. מה שאני רוצה לעשות: לקחת את כל השמות משתמשים שיש להם את אותם הבעלים מהטבלה הראשונה, ולחבר את כל המספרים שלהם מהטבלה השניה. לדוגמא: טבלה א': 1, אמיר, אלון 2, סתיו, חיים 3, מוחמד, אלון 4, אסף, חיים טבלה 2: 5, אמיר, 50 19, סתיו, 20 12, מוחמד, 16 55, אסף, 80 אני רוצה לקחת את אמיר ומוחמד (שלשניהם אותם בעלים) ולחבר את המספרים שלהם, כדי שייצא 66. או לקחת את סתיו ואסף שלשניהם אותם בעלים ולחבר את המספרים שלהם, כדי שייצא 100. למישהו יש רעיונות איך לעשות כזה דבר? |
לשלוף את כל השדות מטבלה א
להכניס את זה למערך בצורה הבאה : אלון -> אמיר, מוחמד. חיים -> סתיו, אסף. מפה לעשות foreach לכל מערך לפי key ו value להריץ את כל הפריטים מהמערכים בטלבה מספר 2 במסד ולאגור נתונים עבודה כל רשומה במערך. אם תרצה עזרה עם הקוד תפנה אלי... |
ציטוט:
אוקי, נגיד ואני רוצה לשלוף את כל המשתמשים של אלון. אז אני עושה: קוד:
$sql = mysql_query("SELECT name FROM a WHERE owner='alon'"); |
PHP קוד:
אלון -> מוחמד, אבי שרון. חיים -> סתיו, נתי, חי, אבדול. מפה מה שנשאר לך לרוץ על כל מערך ולתת לו טוטאל לפי המשתמשים. תאכלס למען היעילות קוד הייתי מציע לך לעשות את זה עם JOIN ולגמור הכל בשאילתא 1. |
שכחת לשלוף את owner בשאילתה,
ולא עושים $row[name], עושים $row['name']; |
ציטוט:
לגבי הראשון נכון ... העתקתי את השאילתא שלו פשוט ... צריך להוסיף * וזה ישלוף הכל. לגבי השני אתה מוזמן לנסות, תראה שזה עובד. |
תודה לשניכם בכל מקרה,
החלטתי שאין טעם להחזיק בשתי טבלאות שונות ואיחדתי את הטבלאות לטבלה אחת. אחר כך עשיתי ככה בשביל לעשות מה שרציתי: קוד:
$result = "select sum(count) as counter from table where bealim='admin' group by bealim"; |
כל הזמנים הם GMT +2. הזמן כעת הוא 18:44. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ