• 0
ahmednet_0001

درس بسيط لتقسيم بيانات الجدول الى عدة صفحات

سؤال

السلام عليكم تعلمت درس جديد من خلال بحثى على الانترنت واحببت اضيفة

والدرس هو تقسيم بيانات جدول على عدة صفحات

ونبدأ مباشرة فى الدرس

اولا ناسس الاتصال بقاعدة البيانات فى ملف من منصل conf.php

<?php

$mysql_hostname = "localhost";

$mysql_user = "root";

$mysql_password = "";

$mysql_database = "test";

$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password)

or die("Opps some thing went wrong");

mysql_select_db($mysql_database, $bd) or die("Opps some thing went wrong");

?

>

ببساطة يتم الاعلان عن المتغيرات اللازمة للاتصال بقاعدة البيانات ومن ثم المتغير bd الذى يحمل الاتصال .

والان الملف الرئيسى وليكن اسمة nav.phph

<?php

include("config.php");

if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; };

$start_from = ($page-1) * 10;

اولا تم تضمين ملف الاتصال

ومن ثم نختبر المتغير page الذى سوف يتم تمريرة من خلال رابط لاحق ونضع بقيمتة او نضععة 1 اذا كان فى بداية التشغيل اخر يحمل قيمة بداية عرض السجلات اعتماد على المتغير page

ثم

$sql = "SELECT * FROM countries ORDER BY name ASC LIMIT $start_from,10";

جملة select بيانات الجدول مرتبة حسب الاسم ونستخدم الجملة LIMT والتى تاخذ متغيرين بداية العرض و عدد السجلات

ثم عرض البيانات داخل جدول html بسيط هكذا

$rs_result = mysql_query ($sql)or die(mysql_error());

echo "<table border='1' width='100%' style='border: 3px double #FF0000'>";

echo "<tr style='color: #000000; border: 3px double #0000FF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px; background-color: #00FFFF'> <th>Name</th><th>ID</th> ";

echo " </tr>";

// keeps getting the next row until there are no more to get

while($row = mysql_fetch_assoc($rs_result))

{

echo "<tr style='color: #000000; border: 3px double #0000FF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px; background-color: #CCFFFF'>";

echo "<td align='center'>" . $row['name'] . "</td>";

echo "<td align='center'>" . $row['id'] . "</td>";

echo "</tr>";

}

echo "</table>";

ثم

$sql = "SELECT COUNT(name) FROM countries";

$rs_result = mysql_query($sql);

$row = mysql_fetch_row($rs_result);

$total_records = $row[0];

$total_pages = ceil($total_records / 10);

for ($i=1; $i<=$total_pages; $i++) {

echo "<a href='nav.php?page=".$i."'>".$i."</a> ";

};

?>

استخدمنا select count لمعرفة عدد سجلا الجدول وتم وضعها داخل متغير row

ثم المتغير total_page لمعرفة عدد الصفحات ثم جملة for وداخلها الرابط الخاص بالتنقل بيت الصفحات اعتمادا على المتغير page الذى يتم اختباره فى بداية الصفحة

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

اتمنى لكم التوفيق

<?php

include("config.php");

if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; };

$start_from = ($page-1) * 10;

$sql = "SELECT * FROM countries ORDER BY name ASC LIMIT $start_from,10";

$rs_result = mysql_query ($sql)or die(mysql_error());

echo "<table border='1' width='100%' style='border: 3px double #FF0000'>";

echo "<tr style='color: #000000; border: 3px double #0000FF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px; background-color: #00FFFF'> <th>Name</th><th>ID</th> ";

echo " </tr>";

// keeps getting the next row until there are no more to get

while($row = mysql_fetch_assoc($rs_result))

{

echo "<tr style='color: #000000; border: 3px double #0000FF; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px; background-color: #CCFFFF'>";

echo "<td align='center'>" . $row['name'] . "</td>";

echo "<td align='center'>" . $row['id'] . "</td>";

echo "</tr>";

}

echo "</table>";

$sql = "SELECT COUNT(name) FROM countries";

$rs_result = mysql_query($sql);

$row = mysql_fetch_row($rs_result);

$total_records = $row[0];

$total_pages = ceil($total_records / 10);

for ($i=1; $i<=$total_pages; $i++) {

echo "<a href='nav.php?page=".$i."'>".$i."</a> ";

};

?>

ملحوظة يجب تغير اسماء الجدول والحقول على حسب قاعدة البيانات الخاصة بك مرفق ملف sql به الجدول المستخدم وكذلك ملف php

وهذة صورة لنتائج الكود

navh.gif

table split.rar

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

2 إجابة على هذا السؤال .

  • 0

شكرا ً اخي الكريم على مجهودك بس ياحبذا لو تنسق الموضوع حتى يكون اسهل للقارئ :happy:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ان شاء الله فى المرة القادمة سيكون افضل هذة اول مشاركة لة كدرس وارجو من الله التوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .