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

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

CodeX 29-10-08 13:33

[שאלה] שליפה ממסד בצורה שונה
 
יש לי בעיה, אני רוצה לשלוף מהמסד משהו כזה:
שיסדר את המסד לפי התא "mid" (אני יודע ORDER BY),
אבל אז אני רוצה לגרום לו שהערך ש"mid" שנרשם הכי הרבה בתאים נוספים,
ישלף.

הכוונה:
נגיד ויש לי טבלה כזאת

MID | IP
80.0.0.0.0 | 24
81.0.0.0.0 | 24
80.0.0.0.0 | 23
81.0.0.0.0 | 23
82.0.0.0.0 | 23
80.0.0.0.0 | 11
80.0.0.0.0 | 10

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


בוא נגיד שאני רוצה לעשות בלוק "הצפיות החמות", ולסדר תסיקורים בסדר עולה לפי הצפיות.


אשמח לעזרה, ואני לא בטוח שניתן לעשות את זה דרך SQL, אולי צריך גם שילוב של לולאה או משהו בPHP?

vadimg88 29-10-08 13:41

לא יודע אם לזה התכוונת אבל נראה לי זה מה שתוכל לעשות:

http://www.tizag.com/mysqlTutorial/mysqlsum.php

CodeX 29-10-08 13:57

ניסיתי לעשות את זה אבל לא הלך לי =\

PHP קוד:

$query11 mysql_query("SELECT * FROM Thanks ORDER BY sum(mid)") or exit(mysql_error()); 
$row11 mysql_fetch_array($query11);
$mid11 $row11['mid'];
$query2 mysql_query("SELECT * FROM Contect WHERE id='$mid11' ORDER BY id LIMIT 0,2") or exit(mysql_error()); 
while(
$row2 mysql_fetch_array($query2)) 
// 10
$t $row2['Title'];
$id $row2['id'];
$cate $row2['cid'];
$msg $row2['Msg'];
$msg strip_tags($msg);
$start=0;
$length=220;
$msg substr($msg,$start,$length); 
if(
$cate == 1) {$cate "משחקים";}
elseif(
$cate == 2) {$cate "תוכנות";}
elseif(
$cate == 3) {$cate "סדרות";}
elseif(
$cate == 4) {$cate "סרטים";}
elseif(
$cate == 5) {$cate "מוזיקה";}
echo<<<END
            <li><font style="font-size: 9pt"><a href="index.php?page=$id" ONMOUSEOVER="popup('<b>קטגוריה:</b> $cate<br><b>תקציר: </b>$msg..')"; ONMOUSEOUT="kill()">$t</a></font></li>
END;


חישבתי את הסכום של MID, שלפתי אותו ודרכו ניסיתי להציג את הID של הסיקור.
עכשיו שאני חושב על זה, זה חישב את כל הטור של MID ואני רוצה שהוא יחשב רק את איפה שMID שווה לעצמו (יענו כמו למעלה, ש 23 יש 3 פעמים, 24 יש פעמיים, 11 יש פעם אחת ו10 יש פעם אחת, מסובך =\

daMn 29-10-08 14:44

השאילתא שלך צריכה להראות ככה, תנסה, אגב עשיתי שזה יסדר לפי המספר הכי גדול לקטן אתה יכול לשנות כרצונך.
PHP קוד:

SELECT `MID`, COUNT(MIDFROM `tableGROUP BY `MIDORDER BY COUNT(MIDDESC 


vadimg88 29-10-08 14:47

עריכה לא חשוב. <_<


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

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