שאלה בנושא UPDATE ב MYSQL

hezy44

New member
שאלה בנושא UPDATE ב MYSQL

השורה שלמטה מסרבת בתוקף לעבוד. mysql_query("UPDATE $table7 SET (email7)=($email7) ORDER BY date7 LIMIT 1"); ********* למישהו יש רעיון מה הסיבה ?
 

alex9913

New member
נסה כך

איפה שכתוב תשנה ל:
email7 = '$email7'​
ז"א תוסיף את הגרשיים הבודדים, ונראה לי שהסוגריים שם מיותרים... אולי יעזור, ואולי לא )
 

hezy44

New member
ניסית את כל האפשריות בקשר לזה

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

אמיר ט

New member
אתה מוכן להסביר בבקשה ?

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

hezy44

New member
מה יש להסביר ? כמו שכתבתי

כל דוגמאות ה UPDATE שנתקלתי בהם, מתייחסות לעדכון תוך שימוש ב WHERE ולא תוך שימוש ב LIMIT לצורך איתור השורה שאותה רוצים לעדכן. עד כמה שאיתרתי את הבעיה, היא נעוצה בחלק הימני אשר מתאר את מציאת השורה לעדכון.
 

אמיר ט

New member
עד כמה שאני מבין

אתה רוצה לעדכן רשומה אחת, והרשומה הזאת היא עם התאריך (date7) הכי קטן. למה שלא תעשה שאילתה כזאת :
UPDATE table_name SET email='$email7' WHERE date7 IN (select MIN(date7) from table_name);​
זה יעדכן לך רק את הרשומה עם התאריך הכי קטן (שזה בדיוק מה שאמורה לעשות השאילתה שלך). ד"א, יכול להיות שזה לא יעבוד, תלוי מאד בגירסאת הMYSQL שאתה משתמש בה. ועוד ד"א, ההערה הזאת נכונה גם לשימוש ב LIMIT במשפטי UPDATE אז יכול להיות שכאן הבעיה שלך.
 

אמיר ט

New member
הנה ההסבר למה שכתבתי בסוף

Starting from MySQL 3.23, you can use LIMIT row_count to restrict the scope of the UPDATE. A LIMIT clause works as follows: Before MySQL 4.0.13, LIMIT is a rows-affected restriction. The statement stops as soon as it has changed row_count rows that satisfy the WHERE clause. From 4.0.13 on, LIMIT is a rows-matched restriction. The statement stops as soon as it has found row_count rows that satisfy the WHERE clause, whether or not they actually were changed. If an UPDATE statement includes an ORDER BY clause, the rows are updated in the order specified by the clause. ORDER BY can be used from MySQL 4.0.0.​
 

hezy44

New member
תודה אמיר. הינה המסקנות

א- אכן לא מתקבל LIMIT ב- אסור להכניס ערכים (קודמים) (ולהחלפה) לסוגריים. ג= צריך להכניס סימן = לפני הערך לחיפוש.
 
למעלה