מדריך לבניית מערכת חדשות ב-PHP

‏ • 21 באוקטובר, 2003

*המדריך הזה נועד למשתמשים בעלי רקע בסיסי ב-MySQL ויודעים כיצד ליצור בסיס נתונים חדש.

בתור התחלה נבנה בסיס נתונים חדש ובו טבלה חדשה בשם news. בטבלה ניצור שלושה שדות:


  • id מספור אוטומטי (auto_increment)
  • subject מסוג טקסט (text) ושלא יהיה ריק (NOTNULL)
  • content מסוג טקסט (text) ושלא יהיה ריק (NOTNULL)
הצלחתם? יופי בואו נמשיך..

נעבור לשלב כתיבת הקבצים. נצטרך שלושה קבצים שונים:


  • קובץ הזנת רשומה חדשה
  • קובץ שיקלוט את הנתונים מהטופס ויכניס אותם לבסיס הנתונים
  • קובץ שיציג את החדשות בסדר עולה

הזנת רשומה חדשה

כך ייראה הטופס:










1
2
3
4
5
6
7
8
9
10
11
12
13
14  








<html dir=rtl>
<head>
<title>הוספת חדשות</title>
</head>
<body>
<form action="add_news.php" method="post">
כתבה: <br> <input type="text" name="subject" size="30">
<br>
תוכן: <br> <textarea rows="7" cols="25" name="content"></textarea>
<br>
<input type="submit" name="submit" value="שלח!">
</form>
</body>
</html>


בנינו פה טופס שנשלח ל-add_news.php בשיטת post, בעל שני שדות – כותרת ותוכן.
בקובץ זה זה נכניס את הנתונים למסד הנתונים..
בשורה השניה אנו נבדוק אם הטופס אכן נשלח – אם לא, נחזיר את המשתמש חזרה לטופס.. במידה וכן נשלח נציב את המשתנים שהתקבלו מן הטופס במשתנים נוחים יותר, נתחבר לבסיס הנתונים ולאחר מכן נכניס את הרשומה.











1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22  








<?php

if (!isset($_POST['submit'])) // אם לא נשלח הטופס אז..
{
    header("location: form.htm");
}
else
{
    // הצבת משתנים
    $subject = $_POST['subject'];
    $content = $_POST['content'];

    //התחברות לבסיס נתונים
    mysql_connect('localhost','user','password') or die("ERROR: ".mysql_error());
    mysql_select_db('news') or die("ERROR: ".mysql_error()); // החלף את שם בסיס הנתונים בשם שקבעת
    
    //הכנסת נתונים
    mysql_query("INSERT INTO 'news'('subject','content') VALUES('$subject','$content')") or die("ERROR: ".mysql_error());
    echo("הכתבה נוספה בהצלחה לבסיס הנתונים");
}

?>



תצוגת החדשות

בדף זה אנו נתחבר לבסיס הנתונים ונשלוף את כל החדשות שקיימות במסד הנתונים (אם קיימות).
ראשית, כמו בדף הקודם, נתחבר לבסיס הנתונים שלנו. לאחר מכן נשלוף את החדשות ונציב אותן במשתנה $result. 
לאחר מכן אנו נשתמש בלולאת while כדי להציג את כל החדשות.










1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20  








<?php

mysql_connect('localhost','user','password');
mysql_select_db('news'); // החלף את השם של בסיס הנתונים בשם שאתה קבעת
$result = mysql_query("SELECT * FROM 'news' ORDER BY 'id' DESC");

// הצגת הכתבות
while ($row=mysql_fetch_array($result))
{
    echo ("<table width="600" cellpadding="2" cellspacing="2 border=1"> ");
    echo ("<tr> ");
    echo ("<td bgcolor="gray" width="100%">" . $x['subject'] . "</td> ");
    echo ("</tr> ");
    echo ("<td bgcolor="white" width="100%">" . $x['content'] . "</td> ");
    echo ("</tr> ");
    echo ("</table> ");
    echo ("<br>");
}

?>


זה הכל.. מאד פשוט ומאד שימושי. כמובן שתוכלו להוסיף דברים אחרים לדוגמא: 1. דף אדמין שבו תוכלו לערוך ולמחוק חדשות 2. להוסיף סמיילים בעזרת הפונקציה str_replace 3. בדף השלישי יש את השורה של התוכן שנראה ככה:










1
  








echo ("<td bgcolor="white" width="100%">" . $x['content'] . "</td> ");


אם ברצונכם להציג את האנטרים שהתבצעו בטופס אתם יכולים להוסיף לפני הסוגרים את הפונקציה nl2br(); וזה אמור להראות כך:










1  








echo (nl2br("<td bgcolor="white" width="100%">" . $x['content'] . "</td> "));


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

תגיות: ,

תגובות בפייסבוק