![]() |
שגיאה ב foreach
רושם לי שגיאה בזה :
קוד:
foreach($_POST['name'] as $name) { |
מה השגיאה?
|
אתה לא הבנת איך משתמשים בforeach כנראה.
מטרת הלולאה היא לעבור על מערך, מה שאתה עשית זה פשוט רצית להציב במשתנה כל ערך של _POST. בשביל לעשות דבר כזה, פשוט היית צריך לעשות ככה: קוד:
לדוגמא: קוד:
|
כמו שעשיתי זה המטרה של זה . כמו שאת עשית זה סה"כ מערך אחד
יש לי טופס שהשמות של כל שדה זה מערך אני רוצה להפוך את כל המערכים למשתנים ולהכניס את זה לבסיס נתונים כמו שעשיתי פה : קוד:
רק שהקוד הזה לא עובד .. אבל הבנתם כביכול את המטרה... אז איך אני עושה את זה ? |
שוב אתה לא מבין, המטרה של foreach זה לא לשים איבר של מערך בתוך משנה, אלא לעבור על כל המערך וכל פעם להתייחס לאיבר הנוכחי.
אם אתה רוצה להפוך את איברי המערך למשתנים, יש לך 2 דרכים: 1. הקצרה יותר - להשתמש בextract (פחות מומלץ מכוון שאם יש לך מחלקה למשל DB ויש לך איבר $_POST['DB'] יהיו בעיות). מה שהפונקציה עושה היא הופכת כל איבר במערך למשתנה עם שם האיבר וערכו, כלומר: קוד:
$arr = array( 'name' => 'dvir', 'age' => 17 ); קוד:
$name = $_POST['name']; |
בוא אני ינסה להסביר לך מחדש
זה הטופס כן : קוד:
echo "<tr><td class=\"righttd\"><select name=\"name[$i]\">"; בשביל זה צריך foreach שיבודד את המערכים למשתנה וכל פעם יכניס. ניסיתי לעשות כמו בקוד שרשמתי למעלה לא עובד. יש קוד אחר שיכניס לי את כל הנתונים שנכנסים פה למערך ? |
כפיר, צר לי איך דביר דובר אמת..
בתוך המשתנה $_POST['name'] אין מערך. יש מחרוזת רגילה. אלא אם עשית משהו אחר, ותצטרך להראות את שאר הקוד. בתוך הforeach אתה שם מערך, ומה שאתה שמת זה מחרוזת. |
עכשיו תגידו לי שאסור לשים $_POST ב foreach תגידו אתם עושים צחוק איזה מחרוזת ?
הסברתי בצורה מפורטת מה אני צריך , יש לי טופס שהשמות של השדות בטופס הם מערכים מה שאני צריך שהנתון בכל אחד מתא במערך יכנס למקום המדויק שלו במסד נתונים כמו שעשיתי. איך אני עושה את זה |
איך השמות של השדות בטופס יכולים להיות מערך?
ו $_POST אתה כן יכול לשים בforeach אבל $_POST["name"] אתה לא יכול.. |
מחייה שפת ה PHP וואלה יופי . זה לא פעם ראשונה שאני משתמש ב foreach ואני אומר לך שכן אפשר לשים $_POST[name] בתוך foreach וזה כן עובד. אבל פה פשוט זה לא עובד לי כי שמתי foreach בתוך foreach אז מה שאני מחפש זה שיטה אחרת.
בד"כ שעשיתי את זה עבדתי רק עם foreach אחד אז זה עבד. |
כל הזמנים הם GMT +2. הזמן כעת הוא 07:41. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ