לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

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



  #1  
ישן 22-06-2006, 08:36
צלמית המשתמש של netaneldj
  netaneldj netaneldj אינו מחובר  
 
חבר מתאריך: 01.05.06
הודעות: 7,861
Facebook profile
איך אני עושה מחיקה מרובה ?

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










קוד PHP:
 $query "SELECT * FROM feedback ORDER BY `id` DESC";
$result mysql_query ($query);
while (
$row mysql_fetch_array($result)) {
echo 
"<table width='40%' cellspacing='0' cellpadding='0' align='center' border='2' bgcolor='#e0e0e0' bordercolor='white'>";
echo 
"<tr>";
echo 
"<td width='85%'>";
echo 
"User: "$row['user'] ;
echo 
"</td>";
echo 
"<td width='15%'>";
echo 
$row['id'] ;
echo 
"<input type='checkbox' name='id' value='$row[id]'>";
echo 
"</td>";
echo 
"</tr>";
echo 
"<tr>";
echo 
"<td>";
echo 
"Name: ""<input type='text' name='name' value='$row[name]'>" ;
echo 
"<br>";
echo 
"Username:""<input type='text' name='username' value='$row[username]'>";
echo 
"</td>";
echo 
"</tr>";
echo 
"<tr>";
echo 
"<td>";
echo 
"Feedback: ""<textarea name='comment' cols='30' rows='5' dir='rtl'>" ;
echo 
$row[feedback];
echo 
"</textarea>";
echo 
"</td>";
echo 
"</tr>";
echo 
"</table>";
echo 
"<br>";
######### DELETE `feedback` ######### 
$id $row[id];
if (
$_POST[erase] == "מחק" && isset($_POST[id])) {
$query2 "DELETE FROM `feedback` WHERE id = $id";
if (
mysql_query ($query2)or die("קיימת בעיה כלשהי")) {
echo 
".נמחק בהצלחה";
echo 
"<meta http-equiv='REFRESH' content='1;URL=http://sms.hosting.lsrv.co.il/dafuk/admin_feedback.php'>";












למי שלא היה כוח לקרוא הכל הנה הסבר קטן.
עשיתי הצגה של כל הנתונים ממסד הנתונים, כאשר אני מסמן משהו זה פשוט מוחק לי הכל.
כי זה ב while וערך ה
קוד:
$row[id]
עולה , לכן השאילתה מופעלת על כל אחד ואחד מהתוצאות.
איך אני יכול לעשות שרק אם סימנתי את ה checkbox של ה id של ההודעה היא תימחק ?
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 22-06-2006, 09:23
צלמית המשתמש של netaneldj
  netaneldj netaneldj אינו מחובר  
 
חבר מתאריך: 01.05.06
הודעות: 7,861
Facebook profile
בתגובה להודעה מספר 2 שנכתבה על ידי ישראל K שמתחילה ב "תחפש כאן בפורום או/ו בבניית..."

ואי אני לא מאמין.
זה היה כמו אות משמים.
זה בדיוק מה שעשיתי, עוד לפני שקראתי את התגובה שלך, הגדרתי כמערך שמתי את זה כ foreach עשיתי as $value ושמתי WHERE id = $value , וזה נתן רק את מה שסימנתי.
פשוט גאוני ! אני בקושי מצליח להבין את מה שעשיתי בעצמי אבל לא משנה, אגב למעוניין הנה הקוד המתוקן.


קוד PHP:
 $query "SELECT * FROM feedback ORDER BY `id` DESC";
$result mysql_query ($query);
while (
$row mysql_fetch_array($result)) {
echo 
"<table width='40%' cellspacing='0' cellpadding='0' align='center' border='2' bgcolor='#e0e0e0' bordercolor='white'>";
echo 
"<tr>";
echo 
"<td width='85%'>";
echo 
"User: "$row['user'] ;
echo 
"</td>";
echo 
"<td width='15%'>";
echo 
$row['id'] ;
echo 
"<input type='checkbox' name='id[$row[id]]' value='$row[id]'>";
echo 
"</td>";
echo 
"</tr>";
echo 
"<tr>";
echo 
"<td>";
echo 
"Name: ""<input type='text' name='name' value='$row[name]'>" ;
echo 
"<br>";
echo 
"Username:""<input type='text' name='username' value='$row[username]'>";
echo 
"</td>";
echo 
"</tr>";
echo 
"<tr>";
echo 
"<td>";
echo 
"Feedback: ""<textarea name='comment' cols='30' rows='5' dir='rtl'>" ;
echo 
$row[feedback];
echo 
"</textarea>";
echo 
"</td>";
echo 
"</tr>";
echo 
"</table>";
echo 
"<br>";
}
######### DELETE `feedback` ######### 
$id $_POST[id];
if (
$_POST[erase] == "מחק" && isset($id)) {
foreach (
$id as $value) {
$query2 "DELETE FROM `feedback` WHERE id = $value LIMIT 1";
if (
mysql_query ($query2)or die("קיימת בעיה כלשהי")) {
echo 
".נמחק בהצלחה";
echo 
"<meta http-equiv='REFRESH' content='1;URL=http://sms.hosting.lsrv.co.il/dafuk/admin_feedback.php'>";
}
//End foreach
}
//if isset Cookie end
    
//if Connect End
?> 

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 22-06-2006, 11:18
צלמית המשתמש של netaneldj
  netaneldj netaneldj אינו מחובר  
 
חבר מתאריך: 01.05.06
הודעות: 7,861
Facebook profile
בעיה, אני כבר שעתיים מנסה למצוא את הבעיה...
בתגובה להודעה מספר 1 שנכתבה על ידי netaneldj שמתחילה ב "איך אני עושה מחיקה מרובה ?"

מה לעזעזל הבעיה בקוד הבא ?


קוד PHP:
<?
if (isset ($_POST[name]) && isset ($_POST[id]) && isset ($_POST[comment]) && isset ($_POST[link]) && $_POST[send] == "שלח") {
foreach ($_POST[id] as $value) {
$query2 = "SELECT * FROM `usersdownloads` WHERE `id` = '$value' ORDER BY `id` DESC";
$result2 = mysql_query ($query2);
    while ($row2 = mysql_fetch_array($result2)) {
    $name = $row2[name];
    $comment = $row2[comment];
    $picture = $row2[picture];
     $link = $row2[link];
    $feedback = $row2[feedback];
    $username = $row2[username];
$query = "INSERT INTO downloads 
(name, comment, picture, link, feedback, username) 
VALUES 
($name, $comment, $picture, $link, $feedback, $username)";
mysql_query ($query)or die("Error");
    }
}
}
?>



זה פשוט רושם Error... בבקשה תעזרו לי אני חייב את זה עד הצהריים.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #12  
ישן 23-06-2006, 08:57
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 9 שנכתבה על ידי netaneldj שמתחילה ב "בקוד הבא הכל תקין חוץ מ..."

ראשיצ, הבעיה העיקרית שנתקלתי בה:
אתה פונה לאיבר במערך כך:
קוד PHP:
 $arr[member

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

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

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

כשיש הודעות שגיאה - אל תשכח להציג לנו גם את הודעת השגיאה !
כשאתה משרש מחרוזת - אל תשכח להדפיס (echo/print) את המחרוזת הסופית כדי שנדע איך נראית המחרוזת ולעלות על הבעיה (אם תקפיד לעשות זאת אפילו לא תצטרך לחכות עד שיעזרו לך, אתה בעצמך תעלה על הבעיה במהירות).

קוד PHP:
 while($row2 mysql_fetch_array($result2))
{
    
$query =    "
                INSERT INTO downloads (
                    name,
                    comment,
                    picture,
                    link,
                    feedback,
                    username
                ) VALUES (
                    
{$row2['name']},
                    
{$row2['comment']},
                    
{$row2['picture']},
                    
{$row2['link']},
                    
{$row2['feedback']},
                    
{$row2['username']})";


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

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

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

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

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 21:47

הדף נוצר ב 0.12 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר