מחיקת ועריכה מdb.

barbie125

New member
מחיקת ועריכה מdb.

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

אני אשמח להסבר או לרעיון אחר לעשות את זה. תודה רבה!
 

fuckfuck2012

New member
אתה מתכוון לCHECKBOX?

אם כן, תעשה משהו כזה:

<input type="checkbox" name="foo[]" />


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

barbie125

New member
כן, שימוש בcheckbox

אני מצטער, לא בדיוק הבנתי עד הסוף.

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

האם זו הדרך הנכונה? אם כן, איך אפשר לעשות דבר כזה?

תודה רבה!
 

fuckfuck2012

New member
אני אסביר את זה טוב יותר...

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

<input type="checkbox" name="foo[ID OF THE ITEM ]" />

איפה שכתוב ID OF THE ITEM אתה מכניס את הID של אותו נתון..
אחרי שהרצת את הלולאה שיוצרת את הCHECKBOXים הקוד HTML אמור להראות משהו כזה:

<input type = "checkbox" name="foo[1]" />
<input type = "checkbox" name="foo[2]" />
<input type = "checkbox" name="foo[3]" />
<input type = "checkbox" name="foo[4]" />


בסקריפט שמקבל את הנתונים אתה תקבל מערך בשם foo (שזאת שם התיבה ).. את הID שהכנסת ( איפה שכתבת ID OF THE ITEM ) כKEY ו"on" כVALUE.
המערך שאתה תקבל להראות משהו כה:

Array ( [1] => on [2] => on [3] => on )


הבנת בערך?
 

barbie125

New member
הבדיקה

מצוין. הרבה יותר מובן - תודה רבה.
איך אני עושה את הבדיקה?
 

barbie125

New member
בדיקה +מחיקה

המטרה בסופו של דבר היא לבדוק מה סומן ולפי זה למחוק מהמסד את השורה עם הid הזהה
 

fuckfuck2012

New member
במערך שמתקבל מהסקריפט PHP שלך לא יופיעו

התיבות הלא מסומנות..
אם לא עשו צ'ק לCHECKBOX הוא לא יועבר אליך..
 

barbie125

New member
הקוד

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

barbie125

New member
עכשיו הקוד באמת :)

$q= mysql_query("SELECT * FROM News");
$r= mysql_num_rows($q);

$a=$r;
echo '<form method="post">';
echo '<table border="1" width="80%">';
while($a > 0)
{
$q= mysql_query("SELECT * FROM News WHERE id=$a");
$r = mysql_fetch_array($q);
echo "<tr>";
echo '<td>';
echo $r["ID"];
echo '</td>';
echo '<td width="180"> <b>';
echo $r["Title"];
echo "</b> </td>";
echo "<td>";
echo $r["Text"];
echo "</td><td>";
echo '<input type="checkbox" Name="foo[';
echo $r["ID"];
echo ']" value="on">';
echo "</td></tr>";

$a=$a-1;
}
echo '</table>';
echo '<input type="submit" name="submit">';
echo '</form>';

if(isset($_POST["submit"])){
\\here print the checked.

}
mysql_close();
?>
 

fuckfuck2012

New member
הסבר

איפה שכתוב \\here print the checked. תקח את הנתון foo ככה:

array_keys($_POST['foo']);


ואז אתה עובר עליהם עם לולאה..

$selectedItems = array_keys($_POST['foo']);
forach($selectedItems as $itemID)
{
echo $itemID;
}


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