עבור לתוכן

צריך עזרה בעדכון טבלה באמצעות checkboxlist

Featured Replies

פורסם

שלום.

יש לי בדף checkboxlist שמציג רשימת ערוצים,

המשתמש מסמן באיזה ערוצים הוא רוצה שהמאמר שלו יעודכן(מספר המאמר ידוע

למשל כמאמר מס' 1). כאשר הוא לוחץ על submit אני עובר על הערוצים שנבחרו

וצריך לעדכן בטבלה ב database כאשר בכל שורה מופיע מספר המאמר מול אחד

הערוצים שנבחרו

(many to many).

כמובן שצריך לבדוק האם המאמר מעודכן מקודם על ערוצים אחרים שלא נבחרו

עכשיו ולעדכן זאת.

יש למישהו מושג איך עושים את זה? :-\

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

תודה :D

פורסם

תחזיק טבלה שיהיו בה 2 עמודות:

1) קוד מאמר (מספרי, מקושר לקוד מאמר בטבלת המאמרים)

2) קוד ערוץ (מספרי, מקושר לקוד הערוץ מטבלת הערוצים)

שהמפתח הראשי יהיה השילוב של השניים.

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

וכדי לבדוק באילו ערוצים מאמר מסויים נמצא, אתה תריץ שאילתא שתבחר את כל הערוצים עם קוד המאמר המסויים.

נגיד שהטבלה תראה כך:

קוד מאמר - קוד ערוץ

1 - 2

1 - 5

2 - 1

4 - 1

1 - 7

פורסם
  • מחבר

תודה :D

אבל התכוונתי למשהו אחר, דוגמא:

נגיד ואדם עושה כתבה, והוא צריך לבחור באילו ערוצים לפרסם את הכתבה, אז יש לו לדוגמא 3 ceckboxs, ערוץ חדשות ספורט וכלכלה.

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

תודה שוב :P

פורסם

אם אתה יודע באילו קודים של ערוצים הוא בחר, אז שים אותם במערך, ואז רוץ על כל אברי המערך, ועל כל אחד מהם צור שאילתת sql.

הכוונה שלי היא שתיצור משהו כזה:

strSql = ""
nArticle = 1
for (nIndex = 0; nIndex < arrChannels.length; nIndex++)
{
strSql = strSql + "INSERET INTO tblArticleInChannel VALUES ('" + nArticle + "', '" + arrChannels[nIndex] + "'); "
}

המשתנה nArticle מכיל בתוכו את קוד המאמר (אמרת שהוא נתון), והמערך arrChannels מכיל את הקודים של הערוצים שהוא בחר.

הלולאה בעצם רצה על כל התאים במערך (בעצם על כל הערוצים שהוא בחר), וכותבת את השאילתת sql המתאימה.

אחרי הריצה של הלולאה, פשוט תריץ את strSql בתוך מסד הנתונים, וזה.

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

** עריכה **

לא שמתי לב ששאלת גם איך לעדכן.

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

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

ז"א, בהתחלה להריץ את השאילתא

DELETE * FROM tblArticleInChannel WHERE ArticleCode = article_code

ואז להריץ שוב את הלולאה שהצעתי מקודם.

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

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים