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

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

mlnn 24-11-06 15:28

[PHP&SQL-שאלה] מחיקת פריטים
 
נגיד ויש לי טבלה עם פריטים, לכל אחד ID משלו, נניח 1-10.
ויצא ככה והחלטתי למחוק את פריט 5.

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

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

אשמח לקבל פתרונות :) תודה.

-VladK- 24-11-06 16:51

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

RS324 24-11-06 16:56

אל תשתמש ב AUTO_INCREMENT - ותעשה מיספור ידני...הרבה כאב ראש.

mlnn 24-11-06 17:32

מה זה משנה אם ידני או לא? ככה או ככה זה עולה חח =]
וגם אמור להיות הגיון במיספור הזה, אני לא יכול לשים פריט אחרון [11] במקום 5

RS324 24-11-06 17:44

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

2 רעיונות נוספים שעלו לי...
תנסה להעתיק את הטבלה בשלמותה ותצור טבלה חדשה נגיד temptable
עם אותו מידע בדיוק
ואז תמחק את הטבלה ואז תעתיק שוב לשם המקורי (אפשר לעשות את הכל דרך MYSQL)
אבל שוב זה לא יעיל

הרעיון השני... תנסה להשתמש ב REPLACE

עוד רעיון..אתה יכול להשתמש ב TIME עבור ה ID..

mlnn 24-11-06 18:21

אממ הלעתיק לא נשמע לי טוב חח.
נראה לי עדיף שהוא יסדר את זה לפי הID שבטבלה, ואת הID שאני מקבל מהשתמש אני עושה LIMIT.
תודה רבה :)

DCB 24-11-06 20:17

פשוט לדעתי
אם המשתמש נכנס ל:
index.php?id=5
והרגע מחקת את 5
אז תיצור תנאי, שאם לא נמצא מידע בשורה "5" אז:
PHP קוד:

header("Location: index.php?id=".$_GET['id']-1); 

ואז גם אם 4 מחוק הוא ימשיך לרוץ עד שיעצור...

או שפשוט, אם לא נמצאו נתונים, תן למשתמש הודעה שהכתבה נמחקה (או מה שזה לא יהיה)

hi_sorie 24-11-06 20:25

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

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

mlnn 24-11-06 20:42

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


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

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