הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 22-10-08, 19:04   # 1
O-B
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: בבית
גיל: 35
הודעות: 1,423
שלח הודעה באמצעות ICO אל O-B

O-B לא מחובר  

[MySQL] שגיאה ב Group..

אז ככה..

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

קוד:
1111: Invalid use of group function
השאילת שאני משתמש בא ב group היא:

קוד:
select `downloads`.`id`,`downloads`.`name`,avg(`ranks`.`rank`) as `rank` from `downloads` left join `ranks` on `ranks`.`download`=`downloads`.`id` group by `downloads`.`id` order by avg(`ranks`.`rank`) desc limit 4
עזרה בבקשה..

עריכה: עוד שאלה..
האם השגיאה:

קוד:
1203: User ***** has already more than 'max_user_connections' active connections
נובעת מאי שימוש בפונקציה mysql_close()? (אם לא אז ממה?)
כי הבנתי שהחיבור למסד נסגר אוטומטית בסיום הטעינה.
__________________
בברכה עובד, מפתח אתרים.

Last edited by O-B; 22-10-08 at 19:19..
  Reply With Quote
ישן 23-10-08, 05:47   # 2
pirsomet
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Jan 2008
הודעות: 104

pirsomet לא מחובר  

ציטוט:
נכתב במקור על ידי O-B צפה בהודעה
עריכה: עוד שאלה..
האם השגיאה:

קוד:
1203: User ***** has already more than 'max_user_connections' active connections
נובעת מאי שימוש בפונקציה mysql_close()? (אם לא אז ממה?)
כי הבנתי שהחיבור למסד נסגר אוטומטית בסיום הטעינה.
בעיקרון החיבור צריך להסגר אוטומטית אבל, עד כמה שאני יודעה, מסיבות שונות לפעמים זה לא קורה.
אולי הבעיה היא בזה שאתה לא עושה ניתוק ממסד נתונים ואולי גם לא. אי אפשר להגיד כאן בוודאות.

תנסה לברר אצל חברת אחסון\מנהל השרת מה הן ההגבלות של מספר החיבורים למסד נתונים.

חוץ מזה, אם אין לך שימוש בTRANSACTIONS וLOCKS, אתה יכול להשתמש בפונקציה mysql_pconnect בזמן החיבור במקום mysql_connect. זה יפתח חיבור אחד קבוע והמערכת שלך תשתמש בחיבור זה בלי לפתוח חיבורים נוספים.
http://il2.php.net/mysql_pconnect
  Reply With Quote
ישן 23-10-08, 13:56   # 3
O-B
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: בבית
גיל: 35
הודעות: 1,423
שלח הודעה באמצעות ICO אל O-B

O-B לא מחובר  

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

תנסה לברר אצל חברת אחסון\מנהל השרת מה הן ההגבלות של מספר החיבורים למסד נתונים.

חוץ מזה, אם אין לך שימוש בTRANSACTIONS וLOCKS, אתה יכול להשתמש בפונקציה mysql_pconnect בזמן החיבור במקום mysql_connect. זה יפתח חיבור אחד קבוע והמערכת שלך תשתמש בחיבור זה בלי לפתוח חיבורים נוספים.
http://il2.php.net/mysql_pconnect
בראש העמוד יש לי
PHP קוד:
include "mysql.php" 
שבעמוד הזה יש את ההתחברות למסד ואני עובד עם pconnect.

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

וומה בקשר לשאלה הראשונה?
__________________
בברכה עובד, מפתח אתרים.
  Reply With Quote
ישן 23-10-08, 15:17   # 4
vadimg88
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
גיל: 36
הודעות: 710

vadimg88 לא מחובר  

בעקרון זה יכול להיות ככה

קוד:
include "mysql.php"  

.....


mysql_close($link);
בכל מקרה גם בלי קריאה לפונקציה לסגירת ההתחברות, PHP יעשה את זה אוטומטית ברגע שהסקריפט סיים את פעולת העיבוד שלו. כך או כך זה יסגר בסופו של דבר.

בקשר לשאלה הראשונה שלך כשמשתמשים בפונקציות בתוך שאילתות MYSQL זה יכול ליצור בעיות אם לא מגדירים את ה GROUP BY נכון במקרה שלך אתה עושה SELECT ומשתמש ב AVG ואחר כך מסדר אותם ב ORDER BY ושוב עושה AVG , למה? אפשר כבר להשתמש ב rank שהוחזר על ידי ה avg הראשון שנעשה.

זה אמור לעבוד:

קוד:
select `downloads`.`id`,`downloads`.`name`,avg(`ranks`.`rank`) as `rank` from `downloads` left join `ranks` on `ranks`.`download`=`downloads`.`id` group by `downloads`.`id` order `rank` desc limit 4
אם אתה משתמש בpconnect לא בהכרח אומר שזה פעיל בשרת. תבדוק את ההגדרות או דרך phpinfo או דרך הקובץ php.ini כדי לראות אם

mysql.allow_persistent = off

מוגדר ב on ולא off .

עוד דבר לא פחות חשוב זה שיש לך אפשרות להגדיר את כמות המקסימום של ההתחברויות למרות שאתה לא אמור לקבל שגיאה כזאת אלה אם כן יש לך כמות אדירה של משתמשים.
  Reply With Quote
ישן 23-10-08, 20:41   # 5
O-B
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: בבית
גיל: 35
הודעות: 1,423
שלח הודעה באמצעות ICO אל O-B

O-B לא מחובר  

ציטוט:
נכתב במקור על ידי vadimg88 צפה בהודעה
בעקרון זה יכול להיות ככה

קוד:
include "mysql.php"  

.....


mysql_close($link);
בכל מקרה גם בלי קריאה לפונקציה לסגירת ההתחברות, PHP יעשה את זה אוטומטית ברגע שהסקריפט סיים את פעולת העיבוד שלו. כך או כך זה יסגר בסופו של דבר.

בקשר לשאלה הראשונה שלך כשמשתמשים בפונקציות בתוך שאילתות MYSQL זה יכול ליצור בעיות אם לא מגדירים את ה GROUP BY נכון במקרה שלך אתה עושה SELECT ומשתמש ב AVG ואחר כך מסדר אותם ב ORDER BY ושוב עושה AVG , למה? אפשר כבר להשתמש ב rank שהוחזר על ידי ה avg הראשון שנעשה.

זה אמור לעבוד:

קוד:
select `downloads`.`id`,`downloads`.`name`,avg(`ranks`.`rank`) as `rank` from `downloads` left join `ranks` on `ranks`.`download`=`downloads`.`id` group by `downloads`.`id` order `rank` desc limit 4
אם אתה משתמש בpconnect לא בהכרח אומר שזה פעיל בשרת. תבדוק את ההגדרות או דרך phpinfo או דרך הקובץ php.ini כדי לראות אם

mysql.allow_persistent = off

מוגדר ב on ולא off .

עוד דבר לא פחות חשוב זה שיש לך אפשרות להגדיר את כמות המקסימום של ההתחברויות למרות שאתה לא אמור לקבל שגיאה כזאת אלה אם כן יש לך כמות אדירה של משתמשים.
תודה רבה..
עזרת לי מאוד..
__________________
בברכה עובד, מפתח אתרים.
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


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

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