לומד php ולא מבין משהו!

darkstar

New member
לומד php ולא מבין משהו!

מישהו יכול להזביר לי במדויק את הפעולה שעושה הפונקצי mysql_query() והפונקציה mysql_fetch_array מה הן עושות ואילו ערכים כל אחת מחזירה? וכל זה בא בהקשר לקטע הקוד הבא שאמרו לי לעשות אבל לא הבנתי מה עומד מאחורי זה: $query=mysql_query("select * from halalim2") or die(mysql_error()); while(@($r=mysql_fetch_array($query))){ $fname=$r["first_name"]; $lname=$r["last_name"]; $ddate=$r["death_date"]; $bdate=$r["birth_date"]; $event=$r["event"]; ומה זה השטרודל וה $R הזה?
 

אמיר ט

New member
הבעיות...

דבר ראשון, אם משתמשים ב @ אז צריך או לפחות מומלץ להוריד את הסגרים שעשית, זה סתם מסבך את העיניינים. ה @ בעצם קודם לפונקציה לא להחזיר הודעות שגיעה, ולכן צריך לשים אותה לפני הפונקציה ! @mysql_fetch_array דבר שני, הפונקצתיה בה השתמשת מחזירה בתור מערך דו ממדי את כל הנתונים, ואתה מתיחס אליה כאילו היא מחזירה לך שורה שורה, בשביל לעשות את מה שאתה רוצה וזה יעבוד אתה צריך להשתמש ב MYSQL_FETCH_ROW ואז זה יעבוד כמו שצריך. אמיר.
 

אשכר

New member
איכסה פיכסה. הנה דוגמה נקיה יותר:

הדוגמא שכתבת נראית כמו קוד בPERL, וזאת שפה שאי אפשר לקרוא אותה, אלא רק לכתוב (write only). משהו כמו סינית למתקדמים. ועכשיו, אחרי הקללות, הנה דוגמא אחרת: (תצטרך להעתיק וליישר לשמאל את הטקסט, כי כל הדולרים והשטרודלים מתחרפנים בעברית): קודם כל, הרבה יותר נוח להוציא הכל למשתנים, כי יותר נוח להבין אחר כך, ולתקן שגיאות. $sql = "SELECT * FROM halalim"; $dbh = mysql_query($sql); עכשיו DBH הוא משתנה מיוחד, שמחזיק את המידע על התשובה של הדטהבייס. אני הולך לשאול אותו כל פעם על הרשומה הבאה: בכל סיבוב של הלולאה הפונקציה בעצם שואלת את התשובה של הדטהבייס "מה הרשומה הבאה?" ומחזירה את כל הרשומה, לתוך משתנה שנקרא $r שהוא בעצם מערך while ( $record = mysql_fetch_array($dbh) ) { $fname = $record[´first_name´]; $ddate = $record[´date´]; print "name: $fname <BR>"; print "date: $ddate <BR>"; } הלולאה תסתיים כשייגמרו כל השורות, מהתשובה כי ... ככה דברים עובדים
 
למעלה