
14-11-2008, 15:42
|
|
|
|
חבר מתאריך: 04.09.08
הודעות: 50
|
|
|
אני בטוח שאפשר לייעל, אבל לא בטוח איך..
שלום.
במהלך התכנות שלי נתקלתי בבעיה כזאת:
אני רוצה למחוק שורה מטבלה מסויימת ובו בזמן לעדכן מספר לא מוגבל של שורות בטבלה אחרת.
אני אתן דוגמא בסיסית שדומה מאוד למה שאני צריך לעשות [הדוגמא תהיה למחיקת הודעה ראשית, לעדכן את כמות ההודעות של אותו משתמש, למחוק את התגובות ולעדכן את כמות ההודעות למשתמשים שהגיבו] למה שהייתי עושה בעבר ואני בטוח שאפשר לייעל ובהרבה:
קוד PHP:
$query = mysql_query("SELECT uid FROM messages WHERE id=".$id); //Get the uid field from the thread mysql_query("DELETE FROM messages WHERE id=".$id); //Delete the thread $g = mysql_fetch_assoc($query); mysql_query("UPDATE users SET msgnum=msgnum-1 WHERE id=".$g['uid']); //Update the "users" table according to the uid specified $query = mysql_query("SELECT uid FROM messages WHERE parent_id=".$id); while($g = mysql_fetch_assoc($query)) { mysql_query("UPDATE users SET msgnum=msgnum-1 WHERE id=".$g['uid']); //Update the "users" table according to the uid specified mysql_query("DELETE FROM messages WHERE id=".$g['uid']); //Delete the comment }
איך אפשר לייעל את זה [מבחינת PHP וגם מבחינת SQL]?
שמעתי משהו על IN שאולי יכול לעזור..
תודה רבה 
|