mysql_fetch_assoc
(PHP 4 >= 4.0.3, PHP 5, PECL mysql:1.0)
mysql_fetch_assoc — משיכת שורת תוצאה כמערך אסוציאטיבי
תיאור
מחזירה מערך אסוציאטיבי מהשורה הנמשכת, או FALSE אם אין יותר שורות
mysql_fetch_assoc() הינה זהה לקריאה ל mysql_fetch_array() עם MYSQL_ASSOC בתור הפרמטר האופציונלי השני. היא מחזירה רק מערך אסוציאטיבי. זוהי הדרך שבה mysql_fetch_array() פעלה במקור. אם אתם צריכים גם את האינדקס המספרי וגם את האסוציאטיבי של המערך, עליכם להשתמש בפונקציה mysql_fetch_array().
אם שניים או יותר מהטורים של התוצאה הם בעלי אותו שם שדה, הטור האחרון הוא זה שיקבל עדיפות. כדי לגשת אל הטור(ים) האחר(ים) עם אותו השם, עליכם לגשת אל התוצאה עם אינדקס מספרי, או להוסיף שם alias. ראו את הדוגמא בפונקציה mysql_fetch_array() עבור תיאור לגבי שמות alias.
דבר חשוב שיש לציין הוא ששימוש ב mysql_fetch_assoc() אינו איטי משמעותית משימוש ב mysql_fetch_row(), ובאותו הזמן מוסיף ערך משמעותי.
Note: שמות השדות המוחזרים ע"י פונקציה זאת הם רגישים לגודל האותיות
Example#1 דוגמא מורחבת של mysql_fetch_assoc()
<?php
$conn = mysql_connect("localhost", "mysql_user", "mysql_password");
if (!$conn) {
echo "כשלון בחיבור למסד הנתונים: " . mysql_error();
exit;
}
if (!mysql_select_db("mydbname")) {
echo "כשלון בבחירת מסד הנתונים: " . mysql_error();
exit;
}
$sql = "SELECT id as userid, fullname, userstatus
FROM sometable
WHERE userstatus = 1";
$result = mysql_query($sql);
if (!$result) {
echo "כשלון בהרצת השאילתא ($sql) ממסד הנתונים: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "לא נמצאו שורות, אין מה להדפיס, ולכן תהיה יציאה אוטומטית מהפונקציה";
exit;
}
// כל עוד שורה נוספת של מידע קיימת, הכנס אותה ב $row כמערך אסוציאטיבי
// הערה: אם אתם מצפים רק לשורה אחת, אין צורך להשתמש בלולאה
// הערה: אם תשתמשו ב extract($row); בתוך הלולאה הבאה, אתם תיצרו את
// $userid, $fullname ואת $userstatus
while ($row = mysql_fetch_assoc($result)) {
echo $row["userid"];
echo $row["fullname"];
echo $row["userstatus"];
}
mysql_free_result($result);
?>
ראה גם mysql_fetch_row(), mysql_fetch_array(), mysql_query(), ו mysql_error().