הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   תכנות - מדריכים, code snippets (https://hosts.co.il/forums/forumdisplay.php?f=68)
-   -   [מדריך] PHP - שימוש ועיבוד נתונים (https://hosts.co.il/forums/showthread.php?t=21993)

BBman 17-05-06 15:38

[מדריך] PHP - שימוש ועיבוד נתונים
 
שלום לכולם.

יש ללמוד את נושא התחברות למסד נתונים+עבודה עם בסיסי נתונים/שאילתות בסיסיות לפני קריאת מדריך זה

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

הבה נשמש לנו דוגמא מערכת תגובות פשוטה, למי שיש אחת כזו או אחרת או מערכת הקשורה בתוכן יוכל להשתמש בשלו ולדלג על שלב זה , מי שלא שפשוט ישתמש בקודים הבאים.

שלב א'
ניצור הטבלאות :

id - מס' ההודעה, למטרת עיבוד הנתונים העתידיים, צריכה להיות primary index וב"נוסף" auto insertment .
name - שם השולח.
content - תוכן התגובה.

זהו , מבחינתי זה מספיק.

עכשיו ניצור את הדף new_post.html :

PHP קוד:

<html>
<
head></head>
<
title>שליחת הודעה חדשה</title>
<
body>
    <
center>    
        <
form action="post.php" method="post">
        <
input type="text" name="name">שם הכותב</input><br>
        <
textarea name="content">תוכן</input><br>
        <
input type="submit" value="submit">שם הכותב</input><br>
        </
form>
</
body>
</
html

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

שם : post.php.

PHP קוד:

<?php

include("קובץ התחברות למסד הנתונים שלכם");
    
$name    =    $_POST['name'];
    
$content    =    $_POST['content'];

    function 
insert($name,$content)
    {
        
$query    =    mysql_query("INSERT INTO `tblname` VALUES ('$name','$content')") OR die (mysql_error());
        if(
$query)
        {
            echo 
"התגובה נוספה בהצלחה";
        }
    }

    
insert($name,$content);
?>

ואחרון , דף הצגת ההתגובות : replys.php.

PHP קוד:

<?php
include("דף ההתחברות למסד הנתונים");
    
    
$query    =    mysql_query("SELECT * FROM `tblname`");
    
while(
$result    =    mysql_fetch_array($query))
{
    
$name    =    $result['name'];
    
$content    =    $result['content'];
    echo 
"$name : שם המחבר<br />$content<Br><hr size=\"1\">";
}
?>

שלב ב'

לאחר שיש לנו המערכת , ניצור את דף הצגת התגובות לעריכה, נעשה זאת בדרך הפשוטה, נקרא לו admin.php, ופשוט נכתוב את קוד הצגת התגובות בתוספת טופס שיכיל את ה-id של התגובה , על מנת שנערוך רק את התגובה המתאימה.

PHP קוד:

<?php
include("דף ההתחברות למסד הנתונים");
    
    
$query    =    mysql_query("SELECT * FROM `tblname`");
    
while(
$result    =    mysql_fetch_array($query))
{
    
$name    =    $result['name'];
    
$content    =    $result['content'];
    
$id    =    $result['id'];
    echo 
"$name : שם המחבר<br />$content<Br><hr size=\"1\"><form action=\"edit.php\" method=\"get\"><input type=\"hidden\" name=
"
id" value=$id><p><input type=\"submit\" value=\"ערוך\"></form>";
}
?>


מה שעשיתי כאן זה הוספתי משתנה שיכיל את תוכן השדה id , והוספתי טופס עם שדה מוסתר שיכיל את אותו ה-id, ושולח אותו במטודה get , הנוחה יותר לעיבוד נתונים מסוג שכזה.

לאחר מכן , ניצור את עמוד העריכה אשר אליו ישלח הטופס המכיל את ה-id :

edit.php.

PHP קוד:

<?php
include("דף ההתחברות למסד הנתונים");
    
$id    =    $_GET['id'];
    function 
edit($id)
    {
        
$query    =    mysql_query("SELECT * FROM `tblname` WHERE `id`='$id'");
        
$result    =    mysql_fetch_array($query);
        
$name    =    $result['name'];
        
$content    =    $result['content'];
        echo 
"
        <center>
        <form action=\"update.php\" method=\"post\">
        <input type=\"text\" name=\"name\" value=\"$name\"></input>
        <input type=\"hidden\" name=\"id\" value=$id></input>
        <textarea name=\"content\">$content</textarea>
        <input type=\"submit\" value=\"עדכן\"></input></form>"
;
    }
        
edit($id);
        
?>

הסבר : מה שעשיתי כאן בעצם , זה שקלטתי את ה-id דרך ה-URL בעזרת $_get , ובעזרת השאילתה select הצגתי את התגובה , לפי ה-id (בעזרת WHERE `id`='$id' , חומר בסיסי בשאילתות mysql), ולפיו הצגתי את התוכן ואת שם השולח בשדות מסויימים.

*שימו לב, גם בשביל לעדכן צריך שדה id , בדיוק כמו שעשיתי, אך הפעם נשתמש ב-post.

כעת , עדכון התגובה, ניצור דף בשם update.php , כמו שנתנו לטופס בדף העריכה אליו לשלוח את הנתונים.

PHP קוד:

<?php
include("דף ההתחברות למסד הנתונים");
    
    
$id    =    $_POST['id'];
    
$name    =    $_POST['name'];
    
$content    =    $_POST['content'];
    function 
update($id,$name,$content)
    {
        
$query    =    mysql_query("UPDATE `tblname` SET `name`='$name' , `content`='$content` WHERE `id`='$id'") or die (mysql_error());
        if(
$query)
        {
            echo 
"התגובה נערכה בהצלחה";
        }
    }
    
update($id,$name,$content);
        
?>


וכאן מה שעשיתי , קלטתי את ה-id שוב , בדף זה , ועדכנתי את התגובה התואמת ל-id בעזרת השאילתא update.

זהו ! =]

כעת , בעזרת ידע זה , תוכלו גם להוסיף עמוד מחיקת תגובות.

הדרכה :

הוסיפו טופס נוסף לעמוד ה-admin.php השולח id לעמוד delete.php בעזרת get , קלטו את ה-id והוסיפו השאילתא :

PHP קוד:

mysql_query("DELETE FROM `tblname` WHERE `id`='$id'"); 

וכן אלאה, האפשרויות כמעט בלתי מוגבלות (או שכן) , אך דבר שימושי זה, ישמשכם בעתיד, אני מבטיח.

*המדריך נכתב ללא בדיקת תקינות הקוד , במקרה של שגיאה בתו, אות וכדומה נא להודיע.

בהצלחה! מור, BBman.

eXtaZa 17-05-06 16:03

יפה!
כל הכבוד לך!

adiga000 17-05-06 16:29

תודה אחי!!!

meshuga 17-05-06 16:49

נוסף למדריכים

BlueNosE 17-05-06 18:22

HTML קוד:

        <input type=\"text\" name=\"name\" value=\"$name\"></input>
מה לעזא-

-VladK- 17-05-06 18:49

ממתי אחרי INPUT יש </input>? זה חדש! חחח כל הכבוד על ההשקעה!

BBman 17-05-06 20:02

ציטוט:

נכתב במקור על ידי BlueNosE
HTML קוד:

        <input type=\"text\" name=\"name\" value=\"$name\"></input>
מה לעזא-


חחח לגבי הסגירה של האינפוט ? תאמת לא למדתי תקניות מעולם, אני לא זוכר מה סוגרים מה לא , אבל זה לא שמנה, לגבי הסלאשים תמיד מומלץ לעבוד עם גרשיים, לכן הם שם.

sUP 17-05-06 20:17

אחלה מדריך, כל הכבוד =]

אבל סתם לידע,
בשביל לא לעשות כל הזמן סלאשים,

PHP קוד:

echo <<<html

<span class="blah">class</span> <br> <a href="link">LINK</a>

html; 


PhS 17-05-06 20:20

פשוט לעבוד עם ' במקום עם "

PHP קוד:

echo "<input type='text' name='name' />"


BBman 17-05-06 20:26

סבבה , אני כבר התרגלתי לסלאשים המעפנים , חח.
זה הכל עניין של טעם.


כל הזמנים הם GMT +2. הזמן כעת הוא 14:53.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ