לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 30-12-2007, 15:42
צלמית המשתמש של בן אור
  בן אור בן אור אינו מחובר  
 
חבר מתאריך: 24.02.05
הודעות: 17,595
שלח הודעה דרך ICQ אל בן אור שלח הודעה דרך MSN אל בן אור Facebook profile Follow me...
קבלת השדות שבהן אחד הערכים מופיע גם בטבלה אחרת

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

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


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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 30-12-2007, 16:29
צלמית המשתמש של בן אור
  בן אור בן אור אינו מחובר  
 
חבר מתאריך: 24.02.05
הודעות: 17,595
שלח הודעה דרך ICQ אל בן אור שלח הודעה דרך MSN אל בן אור Facebook profile Follow me...
בתגובה להודעה מספר 2 שנכתבה על ידי DCD שמתחילה ב "לגי שאלה ראשונה, JOIN יעזור..."

תודה רבה אך יש לי בעיה
קוד PHP:
 UPDATE 'message' SET views=views+1 WHERE tim='1199027605' 
מחזיר לי שגיאה
שמות השדות נכונים והערך 1199027605 קיים

השגיאה שאני מקבל מ phpMyAdmin היא
ציטוט:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''message' SET views=views+1 WHERE tim='1199027605'' at line 1


גירסאת ה mySql שלי היא 4.1.22

אני עכשיו מנסה להפעיל את הבדיקה הראשונה אבל אני צריך להכין את ה php של זה

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


נערך לאחרונה ע"י בן אור בתאריך 30-12-2007 בשעה 16:36.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #6  
ישן 31-12-2007, 22:24
  DCD DCD אינו מחובר  
 
חבר מתאריך: 17.05.05
הודעות: 7,321
בתגובה להודעה מספר 5 שנכתבה על ידי בן אור שמתחילה ב "תודה רבה פועל, איפה התו `..."

ציטוט:
תודה רבה פועל, איפה התו ` נמצא במקלדת? זאת פעם ראשונה שאני יודע שיש הבדל בינו לבין '

נראה לי שבאנגלית קוראים לזה backtick (גרש אחורי)
הכפתור להפעלתו ממוקם משמאל למספר 1 במקלדת, מעל לכפתור ה-TAB ומתחת לכפתור ה-ESC.

יש לקבוע את הסמן לאנגלית (ltr) כדי שתוכל לראות את ה-backtick במקום שיופיע לך נקודה-פסיק ( ; )

ציטוט:
ואני עדיין צריך לגלות מה השדה האחרון שנוצר בשדה ה where


אני מניח שאתה מתכוון לשדה tim, כאשר השדה הזה הוא מסוג INT, וכל ערך שאתה מכניס הוא גדול יותר מכל הערכים שכבר נמצאים.
לכן מה שאפשר לעשות זה להיעזר בתת-שאילתא שתשלוף ערך אחד בלבד, את הערך הגבוה ביותר:
קוד:
UPDATE message SET views=views+1 WHERE tim=(SELECT tim FROM message ORDER BY tim DESC LIMIT 1)
או בצורה פשוטה יותר:
קוד:
UPDATE message SET views=views+1 WHERE tim=MAX(tim)


ציטוט:
אתה מכיר אתר עם הסברים לנושא? גוגל לא עוזר לי כול כך

הסברים לאיזה נושא?
בפורום בניית אתרים פירסמתי מקורות שונים לכל מיני שפות... תבדוק אולי שם יש.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #8  
ישן 01-01-2008, 19:15
צלמית המשתמש של בן אור
  בן אור בן אור אינו מחובר  
 
חבר מתאריך: 24.02.05
הודעות: 17,595
שלח הודעה דרך ICQ אל בן אור שלח הודעה דרך MSN אל בן אור Facebook profile Follow me...
בתגובה להודעה מספר 6 שנכתבה על ידי DCD שמתחילה ב "[QUOTE]תודה רבה פועל, איפה..."

תודה רבה

עכשיו הגעתי ל
קוד PHP:
 UPDATE message SET views=views+1 WHERE tim=(SELECT tim ORDER BY tim DESC LIMIT 1


קיבלתי שגיאה בשימוש עם max
ובקוד הראשון שציינת קיבלתי שגיאה על ה from אז מחקתי אותו ועכשיו זה מעדכן את כל השדות בטבלה

התכוונתי בדיוק לאתר סגנון http://www.w3schools.com/sql/default.asp ללימוד הנושא, אני עכשיו עובר עליו

עריכה:
לאחר עוד קצת עבודה הגעתי ל
קוד PHP:
 UPDATE `messageSET `views`=`views`+1 WHERE `tim`=(SELECT MAX(`tim`))LIMIT 1 
אך עדיין כל השדות מושפעים, אם כי הוא כותב שרק שדה אחד מושפע
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.


נערך לאחרונה ע"י בן אור בתאריך 01-01-2008 בשעה 19:19.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #9  
ישן 02-01-2008, 06:36
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 8 שנכתבה על ידי בן אור שמתחילה ב "תודה רבה עכשיו הגעתי..."

1. כפי שכבר נכתב פה כמה פעמים, יש באג בשימוש עם MAX בשאילתת משנה של שאילתת עדכון (אויל זה כבר טופל בגירסאות עדכניות, אתה מוזמן לבדוק באתר הרשמי, נשמח לשמוע).
2. התחביר האחרון שלך שגוי, שאילתת המשנה שלך לא כתובה בשלימותה [ואם היא תכתב כראוי, אתה עלול לקבל שגיאה, כפי שציינתי בהערה הקודמת]. בשורה התחתונה, היא צפויה לפעול תמיד על הרשומה הראשונה בלבד, בלי שום קשר לתנאי.
3. אם הבנתי טוב מה אתה רוצה לבצע, בגלל הבאג שלא מאפשר ששאילתת משנה של שאילתת עדכון תפעל על אותה טבלה, אין אפשרות לבצע זאת בשאילתה אחת, אלא נדרשים שתי שאילתות נפרדות.


היות ומחוסר זמן לא עקבתי אחר כל ההודעות באשכול זה, תעדכן היכן אתה אוחז כעת, מה אתה בעצם צריך לבצע כעת ואשתדל להשיב.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #12  
ישן 02-01-2008, 20:38
צלמית המשתמש של בן אור
  בן אור בן אור אינו מחובר  
 
חבר מתאריך: 24.02.05
הודעות: 17,595
שלח הודעה דרך ICQ אל בן אור שלח הודעה דרך MSN אל בן אור Facebook profile Follow me...
בתגובה להודעה מספר 11 שנכתבה על ידי DCD שמתחילה ב "כנראה הבעיה היא בגלל שלא..."

ציטוט:
#1093 - You can't specify target table 'message' for update in FROM clause


ניסיתי להוריד את ה from בשאילתה הפנימית (ואת כל מה שהולך איתו) והשגיאה היא
ציטוט:
#1054 - Unknown column 'm.tim' in 'field list'

אז שיניתי את כל ה mים ל ms והשאילתה שמתקבלת תקינה אך היא משפיע על כל השדות אז הוספתי LIMIT 1 לשאילתה החיצונית
ואז היא שינתה את התא האחרון בטבלה (התא עם הזמן הכי ישן)
ניסיתי לשנות את המיון ל ASC ולא היה הבדל

השאילתה שמשנה את התא האחרון היא
קוד PHP:
 UPDATE message ms SET ms.views=ms.views+1 WHERE ms.tim=(SELECT ms.tim ORDER BY ms.tim ASC LIMIT 1LIMIT 1 
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 22:32

הדף נוצר ב 0.07 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר