معهد دعم اتش فى اى بى اس لحلول الويب - Powered by vBulletin


 
 
النتائج 1 إلى 2 من 2

الموضوع: استخدام الجداول لأظهار البيانات - Using Tables to Display Data

  1. #1
    أدارى
    الصورة الرمزية HVIPS4


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 6
    الدولة: Cairo
    المشاركات: 1,979
    HVIPS4 غير متواجد حالياً

    استخدام الجداول لأظهار البيانات - Using Tables to Display Data


    Using Tables to Display Data

    استخدام الجداول لأظهار البيانات

    اعتقد بأنكم قادرون على تسخير الـphp مع MySQL لأنتاج صفحات داينميكية
    ولكن ماذا لو كان لدينا العديد من الصفوف ونريد اظهارها؟ستحتاج الى القليل من آليات العمل
    ليقدر زائرك على قراءة بيانات موقعك بسهولة وكذلك ستحتاج ان تكون جميلة ,عصرية,سهلة,مرتبة.
    وستستطيع عمل ذلك كله بأستخدام الجداول.

    بهذا الفصل سنتناول عدة امور منها:
    * بناء الجداول لوضع البيانات بها
    * انشاء الصفوف الرأسية اوتوماتيكيا
    * تأهيل الجداول ووضع نتائج الـ MySQL query بها
    * جعل المخرجات سهلة للزائر او المستخدم


    لنبدأ على مشيئة الرحمن :

    * بناء الجداول:
    قبل ان يكون بأستطاعتك ترتيب بياناتك عليك اولا بتجهيز البنية والصفوف وشكل الجداول.

    مثال1: تعريف رأس الجدول.
    1- قم بفتح برنامج تحرير الملفات المفضل لديك واكتب به الكود التالي :

    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي

    2- احفظ الملف بأسم table1.php وقم بفتحه بالمتصفح.
    ثم انظر الى النتيجة ^^

    تذكر بأن ما قمت بعملة موجود بدروس سابقه ولن يتم شرحة حتى لا نضيع الوقت^^

    الان اصبح بأمكاننا انشاء الجدول ولكننا يجب ان نملئ هذا الجدول بالبيانات من قاعدة بياناتنا..

    * تأهيل الجدول:
    مثال2:
    1- قم بفتح ملف جديد وسمية table2.php وضع به الكودات التاليه:

    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي

    قم بحفظ الملف وجربه بالمتصفح وانظر للذي قمنا به ^^

    سأقم الان بشرح ما جاء بالمثال السابق وبعض النقاط المهمه ^^

    * اولا قمنا بعمل اتصال بقاعدة البيانات وقمنا بعمل SELECT لثلاث حقول من جدول movie
    * ثانيا عن طريق الدالة mysql_num_rows ووضع الـresult بداخلها احضرنا عدد الاعمدة
    التي قمنا بحضارها.
    * ثالثا عدلنا على راس الجدول واسميناه movie_header
    * رابعا قمنا بتعريف متغير جديد واسميناه movie_details ومن ثم قمنا بعمل جملة تكرار
    واحضرنا من خلالها بعض المتغيرات من قاعدة البيانات
    * ومن ثم اضفنا على movie_details المتغيرات التي احضرناها من دالة التكرار
    * نلاحظ بوجود movie_details .= <<<EOD لاحظ وجود نقطه بعد اشارة المساواة
    ووظيفة هذه النقطة هي اكمل وضع البيانات داخل المتغير انظر بعد اغلاق دالة التكرار
    قمنا بوضع

    كود PHP:
                           $movie_details .=<<<EOD 
    <tr
    <
    td>&nbsp;</td
    </
    tr
    <
    tr
    <
    td>Total :$num_movies Movies</td
    </
    tr
    EOD
    وهذا يعني اننا كلما اردنا وضع شيء مكمل لبيانات متغير ما نستطيع ذلك بوضع نقطه بعد اسم المتغير

    * في دالة التكرار بالسطر الاول اخبرنا البرنامج بأن يضع القيم من الحقل movie_name بداخل
    متغير اسميناه $movie_name وفي بقية الاسطر قامت بعمل نفس الشيء.
    * ومن ثم قمنا بتعريف متغير اسميناه movie_footer واغلقنا به الجدول
    * وبعدها قمنا بتعريف movie وادخلنا به قيم المتغيرات الثلاث التي انشأناها في الملف
    * ومن ثم قمنا بطباعتها^^

    سهلة جدا وكل امر من الاوامر التي مرت في هذا الملف نعرفها ونعرف كيفية استخدامها ^^

    لكن لاحظ بعد انشاء الجدول بأن movie Director و
    movie Leadactor قد ظهروا على شكل ارقام
    وهذا ليس مستحسن فكيف سيعرف الزائر على ماذا تدل هذه الارقام
    لنقم اذن بعمل التغيرات التالية على الملف table2.php ولنظهر اسماء المنتجين والممثلين ^^

    مثال3: تطوير الجدول (Link the Tabled together)
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي

    كما تلاحظون قمنا بأضافة دالتين واحده لأحضار leadactor والاخرى لأحضار diractor
    وهذه الدوال تساعدنا على احضار ما نريد من قاعدة البيانات بدون تغير query الاصلية ^^

    الا تلاحظون بأن الصفحة ثابته اعني ميته ما فيها حركة صح طيب شنو رايكم نضيفلها شوية حركات ^^

    Who's the Master?
    لنقم ببعض التعديلات على ما قمنا به في المثال السابق بوضع بعض الروابط لأسماء الافلام
    وعرض صفحة مخصصه لكل فيلم ولنرى من هو الاب ومن هو الابن في هذه الصفحات ^^

    مثال4: Adding Links to the Table (اضافة الروابط للجدول)
    افتح ملف table2.php وقم بعمل التغيرات التالية على الملف (لن اقم بوضع الكود كامل
    ولكن سأقم بوضع علامة تبين التغير الذي قمنا به في الملف )
    تأكد بأن تقوم بحفظ الملف بأسم table3.php اي انك لم تقم بالتعديل على الملف table2.php
    ولكن قمت بالتعديل عليه وحفظه بأسم أخر


    افتح الملف الان بالمتصفح (table3.php) ستلاحظ بانك قمت بأضافة روابط على اسماء الافلام
    اول شيء قمنا به هو استدعاء movie_id ومن ثم قمنا بوضعه داخل عبارة التكرار
    وبعد ذلك قمنا بعمل بعض التغيرات بلغة html لأضافة الرابط الى اسماء الافلام .^^ رائعه صح ^^
    قم الان بتمرير الماوس على هذه اللنكات سترى بشريط الحالة بأنه قد تم انشاء رابط تلقائيا.
    هذه الصفحة ستسمى بالصفحة الاب والصفحة التي سنذهب لها بعد الضغط على الرابط تسمى الابن ^^

    قبل الذهاب لصنع الصفحة الابن علينا اولا بعمل تحديث لقاعدة بياناتنا واضافة بعض الامور مثل السعر مثلا..

    مثال5: Adding Data to the Table (اضافة البيانات للجدول)
    1- افتح محرر الملفات الذي تعمل عليه وقم بفتح ملف جديد وسمية alter_movie.php
    وقم بوضع الاكواد التالية بداخلة ^^

    قم الان بفتح الملف بالمتصفح وانظر للناتج ^^

    اولا قمنا بعمل ALTER TABLE اي اننا قمنا بتعديل بسيط على صفوف الجدول movie
    واضفنا له ثلاثة صفوف وهي
    movie_running_time
    movie_cost
    movie_takings
    ومن ثم قمنا بعمل UPDATE للاعمدة ووضعنا بها البيانات التي اردناها لهذه الاعمدة.

    لنقم الان بالذهاب الى الصفحة الابن ولنقم بتسميتها movie_details.php

    مثال6: Calculating Movie Takings (حساب الربح والخسارة من الفيلم)
    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي

    سأقم الان بشرح ما سبق بتفصيل قليل ..
    1- قمنا بالاتصال بقاعدة البيانات كما نفعل دائما.
    2- قمنا بأنشاء دالة لحساب الربح والخسارة وادخلنا لها متغيرين

    كود PHP:
                           function calc_differences($taking$cost
    3- وبهذه العملية الحسابية قمنا بحساب الفرق بين السعر والايرادات

    كود PHP:
                           $difference $taking $cost
    4- بهذه العبارة الشرطية قمنا اولا بالتأكد من ناتج العملية الحسابية بأنه اقل من صفر
    وهذا يعني ان هناك خسارة بمقدار معين
    ولكن لاحظوا وجود substr وهذه عبارة عن دالة تقوم بحذف اول حرف نقوم بكتابتة
    فهنا مثلا سيوضع بداخل المتغير $difference عدد ويمكن لهذا العدد ان يكون سالبا
    وهذا متوقع لأنه سيكون اقل من الرقم صفر ولهذا فأن هذه الدالة وضعت لنقم بحذف اشارة السالب
    لأننا لا يمكن ان نقول هنالك خاسرة مثلا 1000- ناقص الف دولار صح ^^

    كود PHP:
                               if ($difference ) { 
            
    $difference substr($difference1); 
            
    $font_color 'red'
            
    $profit_or_loss "$" $difference "m"
    سأقوم بشرح بعض دوال الـ String في درس منفصل ان شاء الله ^^

    وبأخر الملف قمنا بوضع return لأخراج ما نريد من هذه الدالة واقفلنا الدالة....

    لنقم الان بأكمال ما بدأنا به ...

    مثال7: Displaying the New Informatin (اظهار المعلومات الجديدة)
    1- قم بفتح ملف movie_details.php وقم بوضع الكود التالي قبل <? وسم اغلاق الملف

    وقم بحفظ الملف ولكن لا تشغلة الحين اصبر شوي

    ملاحظات: لاحظ وجود $_GET['movie_id] في عبارة WHERE هذا المتغير قد اتى من الرابط
    في ملف table3.php
    لاحظ ايضا انك قمت بأضافة $movie_table_heading لأضافة بعض الحقول للمعلومات التي لديك
    لاحظ انك قد قمت بأضافة عبارة التكرار while من ملف table3.php ايضا ولكن بأضافة بعض المتغيرات

    لتقم الان بأخراج المطلوب من الملف الذي قمنا بأنشاءه ونضف عليه بعض الكودات
    في نهاية الملف الذي قمنا بكتابته اي بعد السطر 84 تقريبا بالصور في ملف movie_details.php

    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي

    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي

    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي



    قم بفتح الملف table3.php واضغط على اي رابط من الثلاث روابط

    وانظر الى نتيجة عملك ^^ شي حلو صح ^^

    انتهى درسنا لهذا اليوم وامل من الله العلي العزيز ان اكون قد وفقت في طرح الدرس

    وفي ايصال المعلومات لكم وان تكونوا قد استفدتم واستمتعتم

    وان شاء الله ما يكون في اي نقطة مو واضحه عندكم بأذن الله

    وبالنسبة للتطبيق ان شاء الله بيكون بعد هذه المشاركة بقليل

    والله ولي التوفيق

  2. #2
    أدارى
    الصورة الرمزية HVIPS4


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 6
    الدولة: Cairo
    المشاركات: 1,979
    HVIPS4 غير متواجد حالياً

    رد: استخدام الجداول لأظهار البيانات - Using Tables to Display Data


    السلام عليكم ورحمة الله

    اخواني هذه المشاركة تعتبر مكمل لما سبق حتى نختم بها وحدتنا الثالثة بأذن الله

    وننتقل الى شيء جديد ,

    قمنا بهذا الدرس بأظهار بعض المعلومات على شكل جدول وقمنا بعمل عملية حسابية وما الى ذلك

    والان سأقوم بوضع بعض الامور لتزيد من ديناميكية موقعنا وهو بعض الردود او التعليقات على الافلام مثلا..


    اولا قم بفتح ملف جديد وضع به الكود التالي :


    <?php
    $connect
    = mysql_connect("localhost","root","")
    or die(
    mysql_error());
    mysql_select_db("moviesite")
    or die(
    mysql_error());

    //انشاء جدول جديد
    $reviews = "CREATE TABLE reviews (
    review_movie_id int(11) NOT NULL,
    review_date date NOT NULL ,
    review_name varchar(255) NOT NULL,
    review_reviewer_name varchar(255) NOT NULL,
    review_comment varchar(255) NOT NULL,
    review_rating int(11) NOT NULL default 0,
    KEY (review_movie_id)
    )"
    ;

    $results = mysql_query($reviews)
    or die(
    mysql_error());

    //ملئ الجدول السابق بالبيانات
    $insert = "INSERT INTO reviews
    (review_movie_id, review_date, review_name,
    review_reviewer_name, review_comment, review_rating)
    VALUES
    ('1', '2003-08-02', 'This movie rocks!',
    'John Doe','I thought this was a great movie even though
    my girlfriend made me see it against my will.' ,'4'),
    ('1','2003-08-01','An okay movie',
    'Billy Bob','This was an okay movie. I liked Eraserhead
    better.','2'),
    ('1','2003-08-10','Woo hoo!',
    'Peppermint Patty','Wish I\'d have seen it sooner!','5'),
    ('2','2003-08-01','My favorite movie',
    'Marvin Marian','I didn\'t wear my flair to the movie but
    I loved it anyway.','5'),
    ('3','2003-08-01','An awesome time',
    'George B.','I liked this movie, even though I thought it
    was an informational video from our travel agent.','3')"
    ;

    $insert_results = mysql_query($insert)
    or die(
    mysql_error());
    echo
    "تمت العملية بنجاح";
    ?>
    احفظة بأسم createreviews.php وقم بفتحه بالمتصفح

    ثم افتح ملف movie_details.php وقم بعمل التعديلات التي ستراها بالملف بالاسفل


    <?php
    $link
    = mysql_connect("localhost","root","")
    or die(
    mysql_error());
    mysql_select_db("moviesite")
    or die (
    mysql_error());

    /* Function to calculate if a movie made a profit,
    loss or broke even */
    function calculate_differences($takings, $cost) {
    $difference = $takings - $cost;

    if (
    $difference < 0) {
    $difference = substr($difference, 1);
    $font_color = 'red';
    $profit_or_loss = "$" . $difference . "m";
    } elseif (
    $difference > 0) {
    $font_color ='green';
    $profit_or_loss = "$" . $difference . "m";
    } else {
    $font_color = 'blue';
    $profit_or_loss = "Broke even";
    }
    return
    "<font color=\"$font_color\">" . $profit_or_loss . "</font>";
    }

    /* Function to get the director's name from the people table */
    function get_diractor() {
    global
    $movie_diractor;
    global
    $diractor;

    $query_d = "SELECT people_fullname " .
    "FROM people " .
    "WHERE people_id='$movie_diractor'";
    $results_d = mysql_query($query_d)
    or die(
    mysql_error());
    $row_d = mysql_fetch_array($results_d);
    extract($row_d);
    $diractor = $people_fullname;
    }


    /* Function to get the lead actor's name from the people table */
    function get_leadactor() {
    global
    $movie_leadactor;
    global
    $leadactor;

    $query_a = "SELECT people_fullname " .
    "FROM people " .
    "WHERE people_id='$movie_leadactor'";
    $results_a = mysql_query($query_a)
    or die(
    mysql_error());
    $row_a = mysql_fetch_array($results_a);
    extract($row_a);
    $leadactor = $people_fullname;
    }

    $movie_query = "SELECT * FROM movie " .
    "WHERE movie_id ='" . $_GET['movie_id'] . "'";

    $movie_result = mysql_query($movie_query, $link)
    or die(
    mysql_error());

    $movie_table_headings=<<<EOD
    <tr>
    <th>Movie Title</th>
    <th>Year of Release</th>
    <th>Movie diractor</th>
    <th>Movie Lead Actor</th>
    <th>Movie Running Time</th>
    <th>Movie Health</th>
    </tr>
    EOD;

    $review_table_headings=<<<EOD
    <tr>
    <th>Date of Review</th>
    <th>Review Title</th>
    <th>Reviewer Name</th>
    <th>Movie Review Comments</th>
    <th>Rating</th>
    </tr>
    EOD;

    $review_query = "SELECT * FROM reviews " .
    "WHERE review_movie_id ='" . $_GET['movie_id'] . "' " .
    "ORDER BY review_date DESC";

    $review_result = mysql_query($review_query, $link)
    or die(
    mysql_error());

    while(
    $review_row = mysql_fetch_array($review_result)) {
    $review_flag =1;
    $review_title[] = $review_row['review_name'];
    $reviewer_name[] = ucwords($review_row['review_reviewer_name']);
    $review[] = $review_row['review_comment'];
    $review_date[] = $review_row['review_date'];
    $review_rating[] = generate_ratings($review_row['review_rating']);
    }

    $i = 0;
    $review_details = '';
    while (
    $i<sizeof($review)) {
    $review_details .=<<<EOD
    <tr>
    <td width="15%" valign="top" align="center">$review_date
    [$i]</td>
    <td width="15%" valign="top">$review_title
    [$i]</td>
    <td width="10%" valign="top">$reviewer_name
    [$i]</td>
    <td width="50%" valign="top">$review
    [$i]</td>
    <td width="10%" valign="top" align="center">$review_rating
    [$i]</td>
    </tr>
    EOD;
    $i++;
    }

    while (
    $row = mysql_fetch_array($movie_result)) {
    $movie_name = $row['movie_name'];
    $movie_diractor = $row['movie_diractor'];
    $movie_leadactor = $row['movie_leadactor'];
    $movie_year = $row['movie_year'];
    $movie_running_time = $row['movie_running_time']." mins";
    $movie_takings = $row['movie_takings'];
    $movie_cost = $row['movie_cost'];

    //get diractor's name from people table
    get_diractor();

    //get lead actor's name from people table
    get_leadactor();

    }

    $movie_health = calculate_differences($movie_takings, $movie_cost);
    $page_start =<<<EOD
    <html>
    <head>
    <title>Details and Reviews for: $movie_name</title>
    </head>
    <body>
    EOD;

    $movie_details =<<<EOD
    <table width="70%" border="0" cellspacing="2"
    cellpadding="2" align="center">
    <tr>
    <th colspan="6"><u><h2>$movie_name: Details</h2></u></th>
    </tr>
    $movie_table_headings
    <tr>
    <td width="33%" align="center">$movie_name</td>
    <td align="center">$movie_year</td>
    <td align="center">$diractor</td>
    <td align="center">$leadactor</td>
    <td align="center">$movie_running_time</td>
    <td>$movie_health</td>
    </tr>
    </table>
    <br>
    <br>
    EOD;

    if (
    $review_flag) {
    $movie_details .=<<<EOD
    <table width="95%" border="0" cellspacing="2"
    cellpadding="20" align="center">
    $review_table_headings
    $review_details
    </table>
    EOD;
    }

    $page_end =<<<EOD
    </body>
    </html>
    EOD;
    $detailed_movie_info =<<<EOD
    $page_start
    $movie_details
    $page_end
    EOD;

    echo
    $detailed_movie_info;
    mysql_close();

    function
    generate_ratings($review_rating) {
    $movie_rating = '';
    for(
    $i=0; $i<$review_rating; $i++) {
    $movie_rating .= "<img src=\"thumbsup.gif\">&nbsp;";
    }
    return
    $movie_rating;
    }

    ?>
    سأفتح لكم المجال بالأستفسار حتى اجد من يسأل ولن اشرح اي كلمة الا عندما ارى منكم استفسارات

    واذا في اي شي استصعب عليكم بشرحة مو مشكلة ^^

    ساعدتكم وحطيت الملف حتى تقدروا تاخذوه للي يقولون عنه طويل مع انه بنصحكم

    انكم تكتبونه بنفسكم بدون مترجعون لهذا الملف ^^

 

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •