المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : تقسيم النتائح من برمجتى



walid_8281500
03-23-2009, 04:41 AM
السلام عليكم ورحمة الله وبركاتة
هذا الكلاس ولا يكتمل الا بانتقاداتكم وشكرا لكم



<?php

/**
* @author PHP&MYSQL PrOgRAmMeR EsLAm AhMeD KaNDeL
* @copyright 2008
* @email science20012003@hotmail.com
* @creat time: 2:51 Date 25-6-2008
*/

class page_spilt
{

var $pagename = 'page'; // اسم الصفحة حيث يرسل مع الكويرى استرنج
var $last = "Last"; // كلمة ظهور اخر نتيجة يمكن استخدام مثلا وسم صورة سهم
var $next = ">>"; // التالى وايضا يمكن استخدام وثم سهم مفعل مثلا
var $perv = "<<"; // السابق نفس الشئ
var $frst = "First"; // الاول
var $lastdiable = ""; // يمكن وضع كلمة اى كلمة ويمكن مثلا استخدام سهم غير مفعل
var $nextdiable = ""; // نفس الشئ التالى غير المفعل
var $pervdiable = ""; // السابق غير المفعل
var $frstdiable = ""; // الاول غير المفعل
var $resperonetime = 8; // عدد النتائج المطلوب ظهروها فى المرة الواحدة

////////////////////////////////////////////////////////////////////
/* لا تعدل اى شئ بعد هذا السطر */
var $pageNumber = 1;
var $totalresnumber;
var $rsfrom;
var $rsto;
var $querystring = ""; // example id=1&e=2&r=5 // هذا المتغير لاسال اشياء اخرى مع الاستعلام
var $SQLquerystring;
var $totalpages;


function page_spilt($query, $page = "")
{
$page = intval($page);
if (empty($page))
$page = 1;
$this->pageNumber = $page; #################
$this->SQLquerystring = $query;
$query = $this->query($query);
$this->totalresnumber = mysql_num_rows($query); #################
$this->totalpages = ceil($this->totalresnumber / $this->resperonetime);
}

function get_results()
{
if (empty($this->SQLquerystring))
return false;
$limit = ($this->pageNumber - 1) * $this->resperonetime;
$this->rsfrom = $limit + 1;
$this->rsto = $this->rsfrom + $this->resperonetime-1;
if($this->rsto>$this->totalresnumber) $this->rsto=$this->totalresnumber;
$SQL = $this->SQLquerystring . " LIMIT " . $limit . "," . $this->resperonetime;
$rs = $this->select($SQL);
if (is_array($rs))
return $rs;
else
return false;
}

function get_numbers()
{
$URl = empty($this->querystring) ? $_SERVER["PHP_SELF"] . "?" . $this->pagename .
"=" : $_SERVER["PHP_SELF"] . "?" . $this->querystring . "&" . $this->pagename .
"=";
if ($this->pageNumber == 1) {
$pagecounter[$this->frstdiable] = "";
$pagecounter[$this->pervdiable] = "";
} else {
$pagecounter[$this->frst] = $URl . "1";
$pagecounter[$this->perv] = $URl . ($this->pageNumber - 1);
}
for ($i = 1; $i <= $this->totalpages; $i++) {
$pagecounter[$i] = $URl . $i;
}

if ($this->pageNumber == $this->totalpages) {
$pagecounter[$this->lastdiable] = "";
$pagecounter[$this->nextdiable] = "";
} else {
$pagecounter[$this->next] = $URl . ($this->pageNumber + 1);
$pagecounter[$this->last] = $URl . $this->totalpages;
}
return $pagecounter;
}

//Function for sql query
function print_error($sql)
{
$message = '<p align="left" dir="ltr">MySQL Error ' . mysql_errno();
$message .= '<BR />SQL: ' . $sql;
$message .= '<BR />MySQL said: ' . mysql_error() . '</p>';
echo $message;
}

//function used to query db
function query($sql)
{
//echo $sql."<BR />\n";
$rs = mysql_query($sql);
if (!$rs) {
$this->print_error($sql);
}
return $rs;
}

//function will return array of selected data
function select($sql)
{
$rs = $this->query($sql);
if (!$rs) {
return;
}

@$num_rows = mysql_numrows($rs);

if (($rs) && ($num_rows > 0)) {

$data_array = array();
while ($row = mysql_fetch_row($rs)) {
$data_array[] = $row;
}
// Free the result
mysql_free_result($rs);

return $data_array;
} else {
return false;
}
}
}

?>

وهذا مثال



<?php

/**
* @author PHP&MYSQL PrOgRAmMeR EsLAm AhMeD KaNDeL
* @copyright 2008
* @email science20012003@hotmail.com
* @creat time: 3:53 Date 25-6-2008
*/
require_once 'spilt_sql_result.class.php';
/* Connecting, selecting data**** */
$db_link = mysql_connect("localhost", "root", "123456");
if (!$db_link) {
die("Could not connect: " . mysql_error());
}
mysql_select_db("test_db") or die("Could not select data****");

/* Performing SQL query */
$split = new page_spilt("SELECT * FROM `test_table`", $_GET["page"]);
$rs = $split->get_results();
if (is_array($rs)) {
foreach ($rs as $key => $value) {
echo $rs[$key][0] . " " . $rs[$key][1] . " " . $rs[$key][2] . "<br>";
}
//$split->querystring="r=2&d=3"; Just example
$rs = $split->get_numbers(); // يمكن وضع الارقام فى قائمة منسدلة
foreach ($rs as $key => $value) {
if (empty($value))
echo $key . "&nbsp;&nbsp;";
else
echo "<a href=\"$value\">$key</a>&nbsp;&nbsp;";
}
echo "<br />results from ".$split->rsfrom." to ".$split->rsto." Total:".$split->totalresnumber;
} else {
echo "No result";
}
/* Closing connection */
mysql_close($db_link);


?>

المثال كامل فى المرفقات