
20-01-2008, 15:40
|
|
|
|
חבר מתאריך: 15.08.06
הודעות: 1,561
|
|
אוקיי, בוא נתחיל עם כמה דברים
אתה עושה:
קוד:
while ($F = mysql_fetch_array())
ואחרכך אתה מנסה לקרוא למשתנים בתוך $F ע"י השם שלהם, אבל mysql_fetch_array מחזיר מערך לא לפי שמות, אלא לפי אינדקסים, זותומרת שכל השדות ב $F הם מספרים (0,1..) ולא שמות, כמו שאתה קורא להם.
דבר שני, בתוך הלולאה, אתה עושה עוד פעם mysql_fetch_assoc אשר מעביר את הפוינטר הפנימי של התוצאת שאילתא קדימה. מה זה אומר בעצם? כאשר מתחילה הלולאה, $F מקבל שורה מהדאטאבייס והיא אמורה לעבוד עליה. כשאתה עושה $L = mysql_fetch_assoc() באמצע, אתה בעצם מכניס ל $L את השורה אחריה.
דבר שלישי, אתה לא יכול לעשות את הדבר הזה:
קוד:
$Lev = explode(' ',$L['data']);
$Level = $Lev['34']->$Name;
הסיבה - $Lev הוא מערך של מחרוזות (כמו שexplode מחזיר) ומחרוזת היא לא אוביקט ולכן אין לה משתנים וה(חץ-$ניים) זה לא דבר חוקי לעשות.
אם המקרה שלך הוא שיש לך מחרוזת גדולה של מידע שאתה צריך את האיבר ה34 בה, אז אתה יכול לעשות משהו כזה:
קוד:
$lev = explode(' ' ,$L['data']);
$level = $lev[34];
אם התכוונת למשהו אחר, אז לא הבנתי נכון
|