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

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



  #1  
ישן 22-12-2006, 21:55
צלמית המשתמש של netaneldj
  netaneldj netaneldj אינו מחובר  
 
חבר מתאריך: 01.05.06
הודעות: 7,861
Facebook profile
מערך בתוך מערך בלי $?

טוב נו לא שתקתי

משהו שאני ממש ממש מתקשה להבין.

ובכן, בניתי טבלה עם כל משתמשי האתר, ליד כל איש יש תיבת סימון שבנויה כך:





קוד PHP:
 <input type="checkbox" name="id[$users[id]]" value="{$users['id']}/> 




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

אז ככה: ההמשך הוא כזה:



קוד PHP:
 foreach ($_POST['id'] as $id) {

$res mysql_query("SELECT * FROM `users` WHERE `id` = {$id}");
$row mysql_fetch_array($res); 
if (!
mysql_query("INSERT INTO `banned` (`ip`, `username`) VALUES ('{$row['ip']}', '{$row['username']}')")) {
echo 
mysql_error();
}
 






הסבר: בישביל לאפשר סימון של יותר מאיש אחד, יצרתי מערך בתוך השם של תיבת הסימון.
מה שאני לא מבין זה שהמערך בלי $ לפני, ז"א שיוצא (במקרה ש ה ID שווה ל 4) :




קוד PHP:
 $_POST[id[4]] 



לולאת ה foreach עוברת על זה, ומזהה את id כמערך? לי נראה כאילו זה רק מערך אחד עם פרמטר בתוכו שהוא
קוד PHP:
 id[4
למה לולאת ה foreach מזהה את זה כמערך בתוך מערך למרות שב id אין סימן $ לפניו?

אם אני יוצא שוב טיפש, בבקשה אל תענו לי, זה בא לי בגלים. אולי יעבור מחר...
תודה מראש...
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 23-12-2006, 11:35
  Fixxxer Fixxxer אינו מחובר  
 
חבר מתאריך: 21.09.02
הודעות: 408
בתגובה להודעה מספר 1 שנכתבה על ידי netaneldj שמתחילה ב "מערך בתוך מערך בלי $?"

הייתי קצת עצלן לקרוא את שאר התגובות אז אני מתנצל אם אני סתם חוזר על דברים שאנשים אחרים כבר כתבו.
כאשר אתה רושם בשם השדה בטופס:
קוד:
name="id[]"

PHP אוטומטית מזהה את הקלט כמערך. במקרה שלך אתה עשית אותו הדבר, עם ההבדל הקטן שהחלטת מראש איזה אינדקס אתה נותן לאותו שדה בטופס.
עכשיו, בקשר לשאלה שלך, מה שנוצר לך פה הוא מערך דו מימדי, וזה גם היה פועל מצויין אני רק לא מבין איך לעזאזל בילבלת שם את כל הקוד ע"י כך שהתייחסת ל id כאל מחרוזת.
אתה שולח את הטופס לפי שיטת POST, כאשר בתוך הטופס ישנו מערך id. מה שקורה הוא שהמערך id נכנס לתוך המערך POST, ולכן איך אתה מצפה שיהיו לו סימון של משתמש לפניו? id החליף תפקיד(וזה משהו שאתה צריך להבין בכלל על מערכים דו-מימדיים ומעלה/מערך בתוך מערך), במקום שהוא יהיו שם משתנה, עכשיו הוא אינדקס במערך אחר. הערך שלו הוא עדיין מערך אחר (אני מקווה שאני מנסח את זה מספיק ברור), לכן הקריאה הנכונה של הדבר הייתה צריכה להתבצע ככה:
קוד PHP:
 $_POST['id'][4

ולא לפי הדוגמא שאתה נתת.

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

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

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

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

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



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

הדף נוצר ב 0.06 שניות עם 11 שאילתות

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

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