View Single Post
ישן 16-02-15, 18:39   # 1
Tyler
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Jul 2013
הודעות: 417

Tyler לא מחובר  

מחיקת נתונים זהים בטבלה במסד + הוספת נתונים לשורה זהה

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

כל פעם שהמשתמש מתחבר הcode שלו משתנה אבל הuser נשאר זהה. זה יוצר לי מצב שהמסד שלי נראה ככה:

user: test
code: blablah
email: test@domain.com

user:test
code:123132
email: test@domain.com

user:test
code:987654331
email: test@domain.com

בקיצור, המון rows עם נתונים זהים.

עכשיו לשאלה שלי, כמו שאמרתי יש כבר המון נתונים זהים במסד, יש דרך פשוט למחוק את כל הrows בטבלה שיש להן לדוגמא אותו ID? חשבתי לעשות delete from table where user=x אבל זה לא שיש רק USER אחד עם מספר נתונים, יש המון יוזרים עם נתונים זהים.

יש דרך אז למחוק את כל הrows שיש במקביל להן עוד rows עם אותו ערך בuser?

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

PHP קוד:
"INSERT INTO logs (user, code, email) VALUES('$user', '$code', '$email')"
אני משנה ל
PHP קוד:
"INSERT INTO logs (user, code, email) VALUES('$user', '$code', '$email') ON DUPLICATE KEY UPDATE code = '$code'"
ובמקביל מגדיר את ערך הemail וuser במסד בתור unique.

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

נכון?
__________________
facebook api, js, cpa, cpl, $$$
--------------------
שלח לי הודעה פרטית.
  Reply With Quote