אחת מהיכולות החשובות ביותר של טכנולוגיות צד-שרת היא שימוש במסד נתונים. במאמר זה נלמד כיצד לישלוף ולהציג הנתונים מתוך מסד נתונים מסוג MySQL בעזרת PHP.
כדי לאחסן נתונים במקום כלשהו, לרוב משתמשים במסד נתונים. הגישה לניהול מסד הנתונים נתונה רק ל admin בדרך כלל, כדי לאפשר למשתמשים ליראות את הרשומות בלי כלים שיוכלו לנהלם,ניצטרך ליכתוב קוד מסויים , שרק ישלוף ויציג אותם.
התחברות לבסיס הנתונים
|
<?php $host="localhost"; $user="root"; $password=""; $db="phones"; $con=@mysql_connect($host,$user,$password); @mysql_select_db($db); ?>
|
|
|
בקטע הקוד הראשון אנו רואים את הגדרות שרת ה-MySQL שלנו, ואת ההתחברות עצמה.
- $host = שם או כתובת השרת שלנו,אם השרת שעליו אנחנו מריצים הקוד הוא גם שרת ה-MySQL המקומי, אז לרוב זה היה localhost. אם מדובר על שרת בחברת האחסון, זה יהיה שם השרת או כתובת ה-IP, בהתאם למה שהתמיכה הטכנית תספק לנו.
- $user = שם משתמש שלנו,כדי לאפשר גישה לשרת אנחנו חייבים לציין סיסמה ושם משתמש. במקרה זה שם המשתמש הוא root.
- $password = הסיסמה שתאפשר לנו גישה למסד נתונים,אין לי סיסמה למסד לכן אני שלוח מחרוזת ריקה.
- $db = שם בסיס הנתונים שלנו שנמצא על שרת ה-MySQL.
- $con = אוביקט החיבור שלנו שמכיל את כתובת שרת ה-MySQL, שם המשתמש והסיסמה. המילה @mysql_connect היא פקודת PHP שמבצע בפועל את החיבור לבסיס הנתונים.
- @mysql_select_db גם היא פקודה של PHP, ותפקידה לגשת לבסיס הנתונים הספציפי אותו ציינו, במקרה הזה, באמצעות המשתנה $db
שליפת הנתונים
כאן אנחנו מכניסים לתוך משתנה את השאילתה שלנו, מריצים אותה באמצעות אובייקט החיבור ומכניסים את התוצאה לתוך מישתנה לו נקרא $theresult .
|
<?php $sqlquery="SELECT * FROM phoneslist"; $theresult=@mysql_query($sqlquery,$con); ?> |
|
|
הצגת הנתונים
עכשיו עלינו להציג את הנתונים ללקוח ,אבל לפני זה,אנחנו חייבים ליצור מישתנה שיכיל את הרשומות כדי שנוכל להציג אותן. נעשה זאת כך:
|
while ($recordeset=@mysql_fetch_array($theresult))
|
|
|
המישתנה $recordeset מכיל את הרשומות בתוך $theresult
כעת אנחנו מוכנים להציגת הנתונים :
|
echo "<td><center>".$recordeset["Phone"]."</center></td>"; echo "<td><center>".$recordeset["name"]."</center></td>"; echo "<td><center>".$recordeset["ID"]."</center></td>";
|
|
|
מוכר לכם? הפקודה echo מבקשת מהשרת להציג אל הדף את העמודה Phone/name/ID בתוך המשתנה $recordeset. אלו הן בעצם שמות העמודות בבסיס הנתונים שלנו.
סגירת איביקט החיבור
כמו שפתחנו את אוביקט החיבור,אנחנו צריכים לסגור אותו,למה? כדי לא לבזבז הרבה משאבי שרת. הסגירה תתבצע כך:
|
<?php mysql_close($con);?> |
|
|
הקוד בשלמותו
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
<?php $host="localhost"; $user="root"; $password=""; $db="phones"; $con=@mysql_connect($host,$user,$password); @mysql_select_db($db); $sqlquery="SELECT * FROM phoneslist"; $theresult=@mysql_query($sqlquery,$con); ?> <html> <body> <table border="1" width="25%"> <tr> <td align="center"><b>טלפון</b></td> <td align="center"><b>שם</b></td> <td align="center"><b>#</b></td> </tr> <? while ($recordeset=@mysql_fetch_array($theresult)) { echo "<tr>"; echo "<td><center>".$recordeset["Phone"]."</center></td>"; echo "<td><center>".$recordeset["name"]."</center></td>"; echo "<td><center>".$recordeset["ID"]."</center></td>"; echo "</tr>"; } ?> </TABLE> <?php mysql_close($con);?> </body> </html>
|
|
|
מקווה שהבנתם,אם יש לכם שאלות,אני מקווה שאוכל לעזור בפורום.
תגובות בפייסבוק