http://www.iranphp.net 1عنوان مقاله : نمایش چند صفحه ای اطلاعاتنگارنده : آرش میکائیلیarash@iranphp.net تاریخ نگارش : آدرس پست الکترونیک: …….…………http://www.iranphp.net 2نمایش چند صفحه ای اطلاعات :تصمیم استفاده شده اما این روش را بکار برد DataBase با توجه به مطالب مطرح شده در انجمن این سایت و جالب بودن بحث صفحه به صفحه نمایش دادن اطلاعات نتیجه شده از جستجو درMySQL گرفتم که مقاله ای در این خصوص تهیه کنم و امیدوارم که این مطالب مورد استفاده دوستان قرار بگیرد.در این مقاله از. DataBase می توان با هر: LIMIT جزءرا در خود داشته باشیم DataBase کلید حل مشکل ماست ، به وسیله این جزء است که ما می توانیم سطرهای مورد نظر خود از Select در عبارت LIMIT جزء. Queryبا یک آرگومان استفاده شود تعداد جواب به آن LIMIT به دو شکل به کار می رود با یک آرگومان و یا با دو آرگومان ،این آرگومانها عدد هستند ، اگر LIMITعدد محدود می شود :SELECT * FROM table LIMIT 5با دو آرگومان استفاده شود آرگومان اول مشخص کننده سطرها از LIMIT را در جواب بر می گرداند ،اما اگر Table در این حالت ٥ سطر اول Select عبارتSQL سطر آغازین است و آرگومان دوم تعداد سطرهایی را که باید برگردانده شوند را مشخص می کند ، البته باید به این نکته توجه کرد که در.( صفر ( ٠) شروع می شوند نه از یک ( ١SELECT * FROM table LIMIT 5, 5را برمی گرداند مشکل نیست ولی برای اینکه به هدف مطرح شده در این مقاله نیل کنیم لازم است که چگونگی عملکرد آن را درک کنید . DataBase سطرهای ٦ تا ١٠ از SQL این عبارت. LIMIT کار با جزء: $start گام اول متغیراستفاده استفاده کنیم . اما سوال این است که چگونه متوجه DataBase در اینجا می دانیم که از چه چیزی باید برای بدست آوردن سطرهای مورد نظر خود از$start استفده می کنیم و این متغیر را از صفحه ای به صفحه دیگر می فرستیم کنیم یا به عبارت دیگر از کدام سطر باید شروع کنیم ؟ پاسخ خیلی روشن است ما از یک متغیر به نام LIMIT می شویم که از کجا باید.می کنیم : PHP حال که روش کار مشخص شده شروع به نوشتن کد در<? $query ?> php= "SELECT * FROM table LIMIT " . $start . ", 10";می کند می نویسیم و یا با شرطی چک می کنیم که اگر قبلا مقداری به آن داده نشده ما مقدار آن را صفر می کنیم لازم است برای این کار از کدی شبیه به کد زیر استفاده می کنیم . اما برای مشخص select باشد را start را از جایی که مساوی مقدار table سطر از query ماست و این 10 query این شکلURL دو راه وجود دارد(در هنگامی که اولین ١٠ سطر را بازیافت می کنیم ) یا آن را در start کردن مقدار:<? phpif ?> (!isset($start)) $start = 0;به صورت خودکار صفر خواهد شد $start حالا وقتی کسی صفحه ما را مشاهده کند مقدار: Previous و Next های Link ساختنhttp://www.iranphp.net 3داریم که به ما می گوید از کجا شروع کنیم و از طرفی start خیلی ساده است اگر آنچه را که تا اینجا انجام داده ایم مرور کنید می بینید که ما متغیری به نامNext هست یا نه سطر باشد و ما در صفحه پنجم از است و ما سطرهای ٥٠ تا ٦٠ را در جواب داریم پس صفحه قبل باید سطرهای ۴۰ تا ٥٠ را نشان دهد یعنی می دانیم که در هر مرحله چند سطر را در جواب بر می گردانیم با توجه به این اطلاعات در هر مرحله می توانیم مشخص کنیم که آیا نیازی به. Previous وLIMIT) مان دریافت می کنیم (بدون استفاده از 63 query برای مثال فرض کنید که کل سطرهایی که ما در جواب از$stat= جواب باشیم در این حالت 50نیز صادق است . Next نیاز داریم همین مطلب برای Previous برای صفحه قبل بزرگتر از صفر می شود پس به $start است .چون $stat=40این کار را با تکه کد زیر انجام می دهیم <? phpif ($start > 0)echo "<a href=" . $PHP_SELF . "?start=" . ($start - 10) .">Previous</a><BR>n";if ($numrows > ($start + 10))echo ?> "<a href=" . $PHP_SELF . "?start=" . ($start + 10) .">Next</a><BR>n";حال ما تمام قسمتهایی را که نیاز داشتیم ایجاد کردیم و وقت آن رسیده که تمام این قسمتها را در کنار هم قرار دهیم :<? phpif (!isset($start)) $start = 0;$query = "SELECT * FROM table LIMIT " . $start . ", 10";//do database connection $result //display data //this code was wrong, I did not have the second query. // need another query to get the total amount of rows in our table = mysql_query($query); //you should do error checking$query = "SELECT count(*) as count FROM table";$result = mysql_query($query);$row = mysql_fetch_array($result);$numrows = $row['count'];if ($start > 0)echo "<a href=" . $PHP_SELF . "?start=" . ($start - 10) . ">Previous</a><BR>n";if ($numrows > ($start + 10))echo ?> "<a href=" . $PHP_SELF . "?start=" . ($start + 10) . ">Next</a><BR>n";امیدوارم که این تو ضیحات ایده کلی را به شما برای این کار داده باشد ، و بتوانید این مطالب را برای کارهای خود استفاده کنید. |