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

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

ViPeRt 27-04-06 13:40

שאלה בקשר לשאילתה ב MYSQL
 
אז ככה יש לי טבלה של הצבעות שמורכבת מ:
id
user_id
date
time
ip

עכשיו כל הצבעה נשמר במסד ובשביל לדעת לכל משתמש כמה הצבעות יש אני עושה
PHP קוד:

SELECT count(idFROM `votesWHERE `user_id` = 'מספר' 

מה שאני צריך זה לדעת איך אני לוקח למי יש הכי הרבה הצבעות...

תודה לעוזרים.

4ior 27-04-06 14:04

איפה זה מה שמשתמש הצביעה? id?
תנסה את זה..סתם עשיתי משהו עכשיו
PHP קוד:


$sql 
"SELECT * FROM 'votes'";
while(
$row=mysql_fetch_array($sql)){
$id=['id'];
    if(
$id>0&&isset($y)){
        if(
$y>$id){
            
$y=$id;    
        }
    }
    else{
    
$y=0;
    }



meshuga 27-04-06 14:07

חשבתי על משהו..תנסה את זה:
PHP קוד:

SELECT `user_idFROM `votesGROUP BY `user_idORDER BY Count(`id`) DESC LIMIT 0,

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


עריכה:
ערכתי את השאילתה אז תנסה שוב.

ViPeRt 27-04-06 14:08

אתה לא הבנת אותי...
כל הצבעה הוא בעצם שורה בטבלה
נגיד שיש 2 שורות עם user_id = 1
זה אומר שלמשתמש 1 הצביעו פעמיים...

עכשיו לפי זה איך אני מוצא את המשתמש שקיבל הכי הרבה הצבעות.

meshuga 27-04-06 14:11

ציטוט:

נכתב במקור על ידי ViPeRt
אתה לא הבנת אותי...
כל הצבעה הוא בעצם שורה בטבלה
נגיד שיש 2 שורות עם user_id = 1
זה אומר שלמשתמש 1 הצביעו פעמיים...

עכשיו לפי זה איך אני מוצא את המשתמש שקיבל הכי הרבה הצבעות.

תסתכל על מה שכתבתי, בסוף בדקתי בACCESS וזה עובד....לפחות שם זה עובד.
ומה שאני הבאתי מוציא לך את הuser_id.

ViPeRt 27-04-06 14:25

ציטוט:

נכתב במקור על ידי meshuga
חשבתי על משהו..תנסה את זה:
PHP קוד:

SELECT `user_idFROM `votesGROUP BY `user_idORDER BY Count(`id`) DESC LIMIT 0,

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


עריכה:
ערכתי את השאילתה אז תנסה שוב.

אררור:

PHP קוד:

[b]Error[/b]
 
SQL query
SELECT `user_id
FROM `votes
GROUP BY `user_id
ORDER BY Count( `id` ) DESC 
LIMIT 0 

MySQL said

#1111 - Invalid use of group function 


meshuga 27-04-06 14:25

ציטוט:

נכתב במקור על ידי ViPeRt
אררור:

PHP קוד:

[b]Error[/b]
 
SQL query
SELECT `user_id
FROM `votes
GROUP BY `user_id
ORDER BY Count( `id` ) DESC 
LIMIT 0 

MySQL said

#1111 - Invalid use of group function 


איזה מסד אתה משתמש?

ViPeRt 27-04-06 14:35

MySQL - 4.0.26-standard

meshuga 27-04-06 14:36

ציטוט:

נכתב במקור על ידי ViPeRt
MySQL - 4.0.26-standard

:\....
אני יחכה שיהיה לי שרת....כי כרגע אין לי.....למרות שאני לא רואה סיבה למה זה לא מצליח.

4ior 27-04-06 14:52

PHP קוד:

SELECT `user_idFROM `votesORDER BY `idDESC LIMIT 0,


LosNir 27-04-06 16:44

PHP קוד:

$q "SELECT * FROM votes WHERE id='$id'";
$i 0
while(
$a mysql_fetch_array($q))
{
$i++
}
echo 
"סך הכל רשומות במסד: $i"

תהנה :)

Eye-Soft 27-04-06 18:02

ציטוט:

נכתב במקור על ידי LosNir
PHP קוד:

$q "SELECT * FROM votes WHERE id='$id'";
$i 0
while(
$a mysql_fetch_array($q))
{
$i++
}
echo 
"סך הכל רשומות במסד: $i"

תהנה :)

קודם, זה לא יעבוד, כי הוא לא יודע מה הID בעל ההכי הרבה... :\
חוץ מזה שזאתי הדרך ההכי פחות יעילה לספור שורות... אפשר לעשות fetch_rows... אני לא יודע PHP ואני יודע את זה :|
או יותר פשוט, אפשר לשלוף את הערך count(id)

תעשה
את הרעיון שנאמר פה עם הCount וה Group By (אני חושב שהוא נאמר פה :\).

דרך אגב, ישנה דרך יותר יעילה בתת שאילתות, אבל מכיוון שאף אחד לא העלה אותה פה ומכיוון שאני מבין שרמת הSQL שלך לא בשמיים, אני לא אסבך אותך סתם עם עוד מידע לעכל.

שיהיה לך בהצלחה :)

meshuga 28-04-06 09:38

או קי חבוב, אמרתי לך שאני יתעמק בזה שיהיה לי שרת...אז הוא חזר....קח:
PHP קוד:

SELECT `user_id`,COUNT(`id`) AS `countFROM `votesGROUP BY `user_idORDER BY `countDESC LIMIT 0,


ViPeRt 28-04-06 22:39

ציטוט:

נכתב במקור על ידי meshuga
או קי חבוב, אמרתי לך שאני יתעמק בזה שיהיה לי שרת...אז הוא חזר....קח:
PHP קוד:

SELECT `user_id`,COUNT(`id`) AS `countFROM `votesGROUP BY `user_idORDER BY `countDESC LIMIT 0,


תודה רבה שי.
מצאתי משהו אחר שעובד:

PHP קוד:

SELECT `user_id` , countid FROM `votesGROUP BY `user_idORDER BY `count( id )DESC LIMIT 1 


meshuga 28-04-06 22:52

ציטוט:

נכתב במקור על ידי ViPeRt
תודה רבה שי.
מצאתי משהו אחר שעובד:

PHP קוד:

SELECT `user_id` , countid FROM `votesGROUP BY `user_idORDER BY `count( id )DESC LIMIT 1 


זה אותו דבר יא שמן ;P ...רק שאני עשיתי את count( id ) בתור count בשביל שזה יזהה את זה בשאילתא...אתה עטפת את count( id ) ב-` ;)...
לא משנה, העיקר שהצלחת:]


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

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