salve a tutti , io con le classi , non ho dimestichezza , e siccome che mi serviva mettere una classe per lo smistamento dei dati estratti dal database ,
ne ho scaricato una dal sito phpclasses.org .
Io i dati li estraggo tramite una funzione , poi richiamando la funzione nel files dove c ' e il template con un foreach prelevo le arie chiavi, che a sua volta stamperanno il valore..
ho provato in tanti modi ad applicare la classe , ma! se con il require_once richiamo nuovamente la classe mi da un errore fatal errore , adesso qual cuno mi potrebbe aiutare a capire ? il files dove c'è il template si chiama adminstaff.php , e li richiamo la funzione che estrae i dati,
Codice PHP:
function GetStaff()
{
global $dbcore;
global $settings ;
$sql = mysql_query("select t. * , gs. id_groups ,gs. nome_group from tech t left join grouptech gs on t. groupid = gs. id_groups order by t. staffid asc ") or die(mysql_error());
$return = array();
while ($row = mysql_fetch_assoc($sql))
{
$return[] = $row;
}
return $return;
}
nella pagina del template richiamando la funzione faccio
Codice PHP:
if (GetStaff())
{
$staff = GetStaff();
foreach($staff as $tech){
echo'QUIC E LA TABELLA CON I DATI' .$tech['nome'];
}
}
adesso dovrei implementare la classe......
io la posto postandola cosi come l ho scaricata magari sarà utile a qual' cuno
files esempio.php
Codice PHP:
//pager example
include('class.pager.php');
$total = 128; //this value should arrive from some database query, like "select count(id) from table_you_want_to_page"
$perpage = 15; //number of results to be shown per page
$query_string = "class.pager.example.php?"; // current file..
$pager = new pager($total, $perpage, $query_string); //building a pager
echo "Pager example: Dividing {$pager->num_results} results into {$pager->page_list_size} pages showing {$pager->per_page} results per page
";
$pg = $pager->page; //getting active page
echo "
Active page " . $pg;
echo "
Page list: ";
echo $pager->getButPrev($pg); // get PREVIOUS button
if($pager->getButPrev($pg)) echo $pager->separator; //show a default seperator between PREVIOUS button and page list IF previous button is visible
$range = 4; //set the range of page button list
echo $pager->getButList($range); //display page buttons.. 1 2 3 4 5 etc
if($pager->getButNext($pg)) echo $pager->separator; //show a default seperator between page list and NEXT button IF next button is visible
echo $pager->getButNext($pg); //get NEXT button
echo "
";
echo $pager->getRangeInfo(); // print "showing results x - y of z"
//some design tuning!
$pager->but_prev = "<a href=\"{query_string}&page={page}\">[b]<< ({page})[/b]</a>";
$pager->but_next = "<a href=\"{query_string}&page={page}\">[b]({page}) >>[/b]</a>";
$pager->but_page = "<a href=\"{query_string}&page={page}\">[Page: {page}]</a>";
$pager->but_page_this = "[Active page: {page}]";
$pager->separator = ".";
$pager->range_display = "You see results: {from} to {to} out of {total}";
//now redraw..
echo "
Retuned Page list: ";
echo $pager->getButPrev($pg);
if($pager->getButPrev($pg)) echo $pager->separator;
echo $pager->getButList(6);
if($pager->getButNext($pg)) echo $pager->separator;
echo $pager->getButNext($pg);
echo "
";
echo $pager->getRangeInfo();
echo "
Extra info:
";
for($i = 1; $i <= $pager->page_list_size; $i++){
echo "Page " . $i;
echo " -> Offset in db query: ";
echo $pager->getPageFrom($i);
echo "
";
}
//so, if you are in page 4, you should request results in database limited from $pager->getPageFrom(4), and running for $pager->page_size in length..
e questa e la classe : class.pager.php
Codice PHP:
/**
* Pager class
* For doing the page-related math and generating page links (prev 1 2 3 4 5 next etc. ).
*
* @package Pager
* @author spyefex <tomas@netatbiz.com>
* @version 1.0
* @copyright (c)2004, Net@Biz
*/
class pager {
/**
* Number of results to show per one page
* @var int
*/
var $per_page;
/**
* Currently active page
* @var int
*/
var $page;
/**
* Page text in query string
* @var string
*/
var $page_identifier;
/**
* NEXT button html code template
* "{query_string}" and "{page}" will be automatically replaced by the appropriate values
* @var string
*/
var $but_next = "<a href=\"{query_string}&page={page}\">next</a>";
/**
* PREVIOUS button html code template
* "{query_string}" and "{page}" will be automatically replaced by the appropriate values
* @var string
*/
var $but_prev = "<a href=\"{query_string}&page={page}\">prev</a>";
/**
* Page ( ie.: 1, 2, 3, or 4, etc. ) button html code template
* "{query_string}" and "{page}" will be automatically replaced by the appropriate values
* @var string
*/
var $but_page = "<a href=\"{query_string}&page={page}\">{page}</a>";
/**
* Currently active page button html code template
* "{query_string}" and "{page}" will be automatically replaced by the appropriate values
* @var string
*/
var $but_page_this = "[b]{page}[/b]";
/**
* Separator template
* Will be included among page buttons in page list
* @var string
*/
var $separator = " - ";
/**
* Range display template
* "{from}", "{to}" and "{total}" will be automatically replaced by the appropriate values
* @var string
*/
var $range_display = "Showing results {from} - {to} of {total} ";
/**
* Total number of results
* @var int
*/
var $num_results;
/**
* Number of pages currently available
* @var int
*/
var $page_list_size;
/**
* Initial query string for use in button links
* Including "file.php?" (Ie.: "index.php?location=heaven")
* @var string
*/
var $query_string;
/**
* Pager initialization
*
* @param int $num_results total number of results ( you should get this from database before constructing the pager object )
* @param int $per_page number of results to display in one page
* @param string $query_string initial query string ( if you are using this pager to display search results, $query_string should arrive dynamically according to search query )
* @param string $page_id page identifier variable in query string (ie.: "pg");
*/
function pager($num_results, $per_page = 10, $query_string = '', $page_id = "page") {
$this->page = isset( $_REQUEST[$page_id] )? $_REQUEST[$page_id] : 1;
$this->page_identifier = $page_id;
$this->per_page = $per_page;
$this->num_results = $num_results;
$this->query_string = $query_string;
$this->page_list_size = @ceil( $num_results / $per_page );
}
/**
* Gets the result offset for a page.
* NOTICE: If you want to use this function to
* show the logically correct value for output in html (Ie.: "showing results 1 - 10"),
* you should increase the result of this function by 1 (because in real life results
* start from 1, not from 0)
*
* @param int $page the page you want to get the offset for
* @returns int
*/
function getPageFrom($page) {
if($page <= 0) return 0;
if($page > $this->page_list_size) return 0;
$result = ($page-1) * $this->per_page;
$result = ($result >= $this->num_results) ? ($this->num_results - 1) : $result;
return $result;
}
/**
* Gets the tail value of results shown in a page.
* NOTICE: Do NOT use the results of
* this function in database query, it's for outputting the range only.
* (Ie.: "showing results 1 - 10")
*
* @param int $page the page you want to get the tail for
* @returns int
*/
function getPageTo($page) {
if($page <= 0) return 0;
if($page > $this->page_list_size) return 0;
$result = ($page-1) * $this->per_page + $this->per_page;
$result = ($result >= $this->num_results) ? $this->num_results : $result;
return $result;
}
/**
* Generates the NEXT button html code from the predefined template
* (check initial vars for more information)
*
* @param int $page the page you want to get the NEXT button for ( usually the active page )
* @returns string
*/
function getButNext($page) {
$page++;
if($page > $this->page_list_size) return "";
if($page < 1) return "";
$temp = ereg_replace("{query_string}", $this->query_string, $this->but_next);
$result = ereg_replace("{page}", (string)$page, $temp);
return $result;
}
/**
* Generates the PREVIOUS button html code from the predefined template
* (check initial vars for more information)
*
* @param int $page the page you want to get the PREVIOUS button for ( usually the active page )
* @returns string
*/
function getButPrev($page) {
$page--;
if($page < 1) return "";
if($page > $this->page_list_size) return "";
$temp = ereg_replace("{query_string}", $this->query_string, $this->but_prev);
$result = ereg_replace("{page}", (string)$page, $temp);
return $result;
}
/**
* Generates the PAGE button html code from the predefined templates
* (check initial vars for more information)
*
* @param int $page the page you want to get the PAGE button for
* @returns string
*/
function getButPage($page) {
if($page < 1) return "";
if($page > $this->page_list_size) return "";
$source = ($page == $this->page) ? $this->but_page_this : $this->but_page;
$temp = ereg_replace("{query_string}", $this->query_string, $source);
$result = ereg_replace("{page}", (string)$page, $temp);
return $result;
}
/**
* Generates the Google style PAGE button list html code from the predefined templates
* (ie.: "1 - 2 - 3 - 4 - 5", check initial vars for more information)
*
* @param int $range number of page buttons to be shown before and after tbe current page
* @returns string
*/
function getButList($range = 9) {
$range++;
unset($result);
for($i = ($this->page - $range); $i <= ($this->page + $range); $i++) {
if($this->page < $range) {
$result .= $this->getButPage($i);
if ($i == $range) break;
}
else $result .= $this->getButPage($i);
if($this->getButPage($i+1) && $result && $i < $this->page + $range)
$result .= $this->separator;
}
return $result;
}
/**
* Generates the result range information text from the predefined template
* (ie.: "Displaying 1 - 3 of 24", check initial vars for more information)
*
* @returns string
*/
function getRangeInfo() {
$from = $this->getPageFrom($this->page) + 1;
$to = $this->getPageTo($this->page);
$temp = ereg_replace("{from}", (string)$from, $this->range_display);
$temp = ereg_replace("{to}", (string)$to, $temp);
$result = ereg_replace("{total}", (string)$this->num_results, $temp);
return $result;
}
}