הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [PHP] דרוש עזרה בסידור נתונים מתוך מסד נתונים (https://hosts.co.il/forums/showthread.php?t=78182)

THEtop 07-09-09 19:47

[PHP] דרוש עזרה בסידור נתונים מתוך מסד נתונים
 
טוב אז ככה,
יש לי מסד נתונים אחד, בתוך המסד נתונים יש 2 טבלאות, האחת טבלה של משתמשים והשנייה טבלה של תגובות.
כל אחד ואחד מהתגובות שייכות למשתמש כלשהוא, למשל יכול להיות משתמש שנניח 4 תגובות שיכות לו ויכול להיות משתמש ש-20 תגובות שיכות לו.
אני רוצה למשוך רשימה של 50 משתמשים (טבלה אחת) שהגיבו הכי הרבה (התגובות נמצאות בטבלה השנייה).
כיצד אני יכול לעשות זאת? למשוך מטבלה אחת את 50 המשתמשים שיש להם הכי הרבה תגובות (בטבלה האחרת)?
תודה לעוזרים.

SarafC 07-09-09 20:20

אפשר לעשות את זה עם שאילתא מסובכת, אבל הכי פשוט (וזה קיים בכל המערכות הגדולות) זה לפתוח עמודה בטבלה של המשתמשים, ועל כל תגובה להעלות +1.

Shay Ben Moshe 07-09-09 21:28

ציטוט:

נכתב במקור על ידי SarafC (פרסם 737664)
אפשר לעשות את זה עם שאילתא מסובכת, אבל הכי פשוט (וזה קיים בכל המערכות הגדולות) זה לפתוח עמודה בטבלה של המשתמשים, ועל כל תגובה להעלות +1.

אתה צודק לחלוטין לדעתי. זו הדרך הפשוטה והמהירה.

AlmogBaku 07-09-09 23:03

מה פתאום!!! זה מסובך ולא יעיל.

אתה עושה טבלאת משתמשים וטבלאת תגובות, ואז אתה כותב שאילתה שמוציאה את הנתונים.
משהוא כזה:
PHP קוד:

SELECT `users`.*, COUNT(`comments`.`id`) as `comments_countFROM `usersINNER JOIN `commentsON `comments`.`user_id`=`users`.`idSORT BY COUNT(`comments`.`id`) GROUP BY `comments`.`user_idLIMIT 50


Hezi & BomBas 08-09-09 09:58

ממתי פותחים עמודה לתגובות ולא טבלה? עזבו שזה מסובך ולא יעיל (כמו שאלמוג אמר מעליי)... זה לחלוטין לא מקצועי.

בכל מקרה, אם הבנתי אני חושב שזו השאילתה שאתה מחפש:
PHP קוד:

SELECT comments.*, COUNT(comments.id) as count_commenst FROM comments INNER JOIN users ON comments.member_id users.member_id ORDER BY COUNT(comments.idDESC LIMIT 050 



כל הזמנים הם GMT +2. הזמן כעת הוא 08:09.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ