Jump to content

techker

Members
  • Posts

    812
  • Joined

  • Last visited

Posts posted by techker

  1. 
    
    class PS_Pagination {
    var $php_self;
    var $rows_per_page = 10; //Number of records to display per page
    var $total_rows = 0; //Total number of rows returned by the query
    var $links_per_page = 5; //Number of links to display per page
    var $append = ""; //Paremeters to append to pagination links
    var $sql = "";
    var $debug = false;
    var $conn = false;
    var $page = 1;
    var $max_pages = 0;
    var $offset = 0;
    
    /**
     * Constructor
     *
     * @param resource $connection Mysql connection link
     * @param string $sql SQL query to paginate. Example : SELECT * FROM users
     * @param integer $rows_per_page Number of records to display per page. Defaults to 10
     * @param integer $links_per_page Number of links to display per page. Defaults to 5
     * @param string $append Parameters to be appended to pagination links 
     */
    
    function PS_Pagination($connection, $sql, $rows_per_page = 10, $links_per_page = 5, $append = "") {
    	$this->conn = $connection;
    	$this->sql = $sql;
    	$this->rows_per_page = (int)$rows_per_page;
    	if (intval($links_per_page ) > 0) {
    		$this->links_per_page = (int)$links_per_page;
    	} else {
    		$this->links_per_page = 5;
    	}
    	$this->append = $append;
    	$this->php_self = htmlspecialchars($_SERVER['PHP_SELF'] );
    	if (isset($_GET['page'] )) {
    		$this->page = intval($_GET['page'] );
    	}
    }
    
    /**
     * Executes the SQL query and initializes internal variables
     *
     * @access public
     * @return resource
     */
    function paginate() {
    	//Check for valid mysql connection
    	if (! $this->conn || ! is_resource($this->conn )) {
    		if ($this->debug)
    			echo "MySQL connection missing<br />";
    		return false;
    	}
    
    	//Find total number of rows
    	$all_rs = @mysql_query($this->sql );
    	if (! $all_rs) {
    		if ($this->debug)
    			echo "SQL query failed. Check your query.<br /><br />Error Returned: " . mysql_error();
    		return false;
    	}
    	$this->total_rows = mysql_num_rows($all_rs );
    	@mysql_close($all_rs );
    
    	//Return FALSE if no rows found
    	if ($this->total_rows == 0) {
    		if ($this->debug)
    			echo "Query returned zero rows.";
    		return FALSE;
    	}
    
    	//Max number of pages
    	$this->max_pages = ceil($this->total_rows / $this->rows_per_page );
    	if ($this->links_per_page > $this->max_pages) {
    		$this->links_per_page = $this->max_pages;
    	}
    
    	//Check the page value just in case someone is trying to input an aribitrary value
    	if ($this->page > $this->max_pages || $this->page <= 0) {
    		$this->page = 1;
    	}
    
    	//Calculate Offset
    	$this->offset = $this->rows_per_page * ($this->page - 1);
    
    	//Fetch the required result set
    	$rs = @mysql_query($this->sql . " LIMIT {$this->offset}, {$this->rows_per_page}" );
    	if (! $rs) {
    		if ($this->debug)
    			echo "Pagination query failed. Check your query.<br /><br />Error Returned: " . mysql_error();
    		return false;
    	}
    	return $rs;
    }
    
    /**
     * Display the link to the first page
     *
     * @access public
     * @param string $tag Text string to be displayed as the link. Defaults to 'First'
     * @return string
     */
    function renderFirst($tag = 'Premier') {
    	if ($this->total_rows == 0)
    		return FALSE;
    
    	if ($this->page == 1) {
    		return "$tag ";
    	} else {
    		return '<a href="' . $this->php_self . '?page=1&' . $this->append . '">' . $tag . '</a> ';
    	}
    }
    
    /**
     * Display the link to the last page
     *
     * @access public
     * @param string $tag Text string to be displayed as the link. Defaults to 'Last'
     * @return string
     */
    function renderLast($tag = 'Dernier') {
    	if ($this->total_rows == 0)
    		return FALSE;
    
    	if ($this->page == $this->max_pages) {
    		return $tag;
    	} else {
    		return ' <a href="' . $this->php_self . '?page=' . $this->max_pages . '&' . $this->append . '">' . $tag . '</a>';
    	}
    }
    
    /**
     * Display the next link
     *
     * @access public
     * @param string $tag Text string to be displayed as the link. Defaults to '>>'
     * @return string
     */
    function renderNext($tag = '>>') {
    	if ($this->total_rows == 0)
    		return FALSE;
    
    	if ($this->page < $this->max_pages) {
    		return '<a href="' . $this->php_self . '?page=' . ($this->page + 1) . '&' . $this->append . '">' . $tag . '</a>';
    	} else {
    		return $tag;
    	}
    }
    
    /**
     * Display the previous link
     *
     * @access public
     * @param string $tag Text string to be displayed as the link. Defaults to '<<'
     * @return string
     */
    function renderPrev($tag = '<<') {
    	if ($this->total_rows == 0)
    		return FALSE;
    
    	if ($this->page > 1) {
    		return ' <a href="' . $this->php_self . '?page=' . ($this->page - 1) . '&' . $this->append . '">' . $tag . '</a>';
    	} else {
    		return " $tag";
    	}
    }
    
    /**
     * Display the page links
     *
     * @access public
     * @return string
     */
    function renderNav($prefix = '<span class="page_link">', $suffix = '</span>') {
    	if ($this->total_rows == 0)
    		return FALSE;
    
    	$batch = ceil($this->page / $this->links_per_page );
    	$end = $batch * $this->links_per_page;
    	if ($end == $this->page) {
    		//$end = $end + $this->links_per_page - 1;
    	//$end = $end + ceil($this->links_per_page/2);
    	}
    	if ($end > $this->max_pages) {
    		$end = $this->max_pages;
    	}
    	$start = $end - $this->links_per_page + 1;
    	$links = '';
    
    	for($i = $start; $i <= $end; $i ++) {
    		if ($i == $this->page) {
    			$links .= $prefix . " $i " . $suffix;
    		} else {
    			$links .= ' ' . $prefix . '<a href="' . $this->php_self . '?page=' . $i . '&' . $this->append . '">' . $i . '</a>' . $suffix . ' ';
    		}
    	}
    
    	return $links;
    }
    
    /**
     * Display full pagination navigation
     *
     * @access public
     * @return string
     */
    function renderFullNav() {
    	return $this->renderFirst() . ' ' . $this->renderPrev() . ' ' . $this->renderNav() . ' ' . $this->renderNext() . ' ' . $this->renderLast();
    }
    
    /**
     * Set debug mode
     *
     * @access public
     * @param bool $debug Set to TRUE to enable debug messages
     * @return void
     */
    function setDebug($debug) {
    	$this->debug = $debug;
    }
    }
    

  2. hey guys i have a pagination script that works great but when there is nothing in the table it returns an error saying querry empty..

     

    can i mod it to say nothing..

     

    if(!$conn) die("Failed to connect to database!");
    $status = mysql_select_db($db, $conn);
    if(!$status) die("Failed to select database!");
    $sql = 'SELECT * FROM Formulaire_S';
    
    /*
     * 10 = Number of rows per page
     * 5 = Number of links
     * "param1=valu1&param2=value2" = You can append your own parameters to paginations links
     */
    $pager = new PS_Pagination($conn, $sql, 4, 5, "param1=valu1&param2=value2");
    
    $pager->setDebug(true);
    $rs = $pager->paginate();
    if(!$rs) die(mysql_error());

  3. in need the Nom and Prenom

     

    first and last name.

     

    i go this but it echos onlythe Nom(first name) and searches only half of the database

     

    SELECT distinct Nom,Prenom as suggest FROM Etudiant WHERE Nom  like('" .$search . "%') And Prenom like('" .$search . "%') ORDER BY Nom

     

     

  4. hey guys i have this auto complete but it only selects one table..i need it to select 2?

     

    SELECT distinct Nom as suggest FROM Etudiant WHERE Nom like('" .$search . "%') ORDER BY Nom

     

    i need Nom and Prenom

     

    i tryed Nom,prenom but did not work..

  5. hey guys in a DB  i have multiple fields

     

     

    1 F_ID

    2 Nom

    3 Foyer

    4 Matiere

    5 Prof

    6 Motif

    7 Notes_Sortie

    8 Travail

    9 Code_P

    10 Date_Rempli

    11 Surveillant

    12 Comportement

    13 C_Notes

    14 Status

    15 Status_Date

    16 Bilan

    17 Latreve_status

    18 Heure_S

    19 User_ID

    20 Periode

     

    Now i wan't to query Foyer so it shows all the Foyer.and show at the same time how many students are in this Foyer..

     

    so my query to show all the Foyer is to add Group By Foyer.but how can i add how many students?

     

    goup By Foyer and count(Nom)

     

    cause a student is associated to a foyer.(foyer is a type of division)

     

  6. Hey guys i have a script that i made with multiple permissions..

     

    i need to add in the pages restitutions for diffrent levels..

     

     

    so i got the level

     

    $query = "SELECT * FROM users WHERE `username`='$username_from_cookie'"; 
    
    $numresults=mysql_query($query);
    $numrows=mysql_num_rows($numresults); 
    
    // get results
    $result = mysql_query($query) or die("Couldn't execute query");
    
    // now you can display the results returned
    while ($row10= mysql_fetch_array($result)) {
    
    $permissions= $row10["permissions"];
    
    echo '$permissions';
    
    }
    
    

    Now to restick im ok with like to but more then that i get confused..

     

    this shows navigation on levels of permissions..

     

    if ($row10['permissions'] == 2) {
    print "<a href=\"U.php\"><img src=\"./Icons/Users.png\" title=\"Prof\" /></a>";
    }
    else {
    print "<img src=\"./Icons/Users_o.png\"/>";
    }
    

     

    2 levels

    
    if ($row10['permissions'] == 5) {
    print "<a href=\"Prof_1.php\"><img src=\"./Icons/sec.png\" title=\"Enseignant(e)\"/></a>";
    } elseif ($row10['permissions'] == 2) {
    print "<a href=\"Prof_1.php\"><img src=\"./Icons/sec.png\" title=\"Enseignant(e)\"/></a>";
    } else {
    print "<img src=\"./Icons/sec_o.png\" title=\"Enseignant(e)\"/>";
    }
    

     

    ok so instead of have 10 lines of codes can i

     

    $row10['permissions'] == 5&2&3  ???

     

    and can i do if not permissions ==5 redirect to loggin..

    thx

  7. Hey guys i need to make a query that checks entries in the last 24 hours the 48 then 72...

     

    i got this but it show in 48 and 72 and month..

     

    $x12 = 'SELECT COUNT(*) FROM  Sortie WHERE  `Date`> NOW() - INTERVAL 48 HOUR'; 
    $result12 = mysql_query($x12) or die(mysql_error()); 
    $total_rows12 = mysql_fetch_row($result12);
    

     

    my goal is to get

     

    in the last 12h..the skips to 48h if it stay without editing and so on..

  8. Hey guy im pulling info from a database :full name(in table):john doe

     

    but i need to look in another table for information this name.

     

    the issue is that in the student table there is first and last name.

     

    how can i search in first and last name if i have a full name?

     

    i have tried the like%% and used php myadmin to try combos...

     

    so example in a form im pulling full names out of a databse. john doe

     

    need to look in another DB with(John doe) for information

     

    but the table is

    first-last-studentID-date-class..

     

     

  9. So every day there is students that get kicked out of class (remember)lol

     

    so they have this class room they go to .the teacher there inserts his name,teacher  and notes in the db.

     

    when the students gets kicked out more then 2 times by the same teacher in the same week he gets a detention and the teacher must meet the parents...

     

    So i have 2 DB

     

    DB-1 is the (Sortie) detention room info.(name-teacher-notes..)

     

    DB-2 (Suivit) Fallowup

     

    So what the script does is check the DB 1 for 2 times plus with the same teacher.

     

    so it inserts in the Db2 the teacher-Student-Date...

     

    So the goal is to work with DB2 for different possibility's..(48h Followup terms)

     

    So it works now..

     

    what im doing first is checking the recurrence's

     

    then inserting the info in the Fallowup Db

     

    the issue was it was inserting the same info all the time the page refreshed..

     

    So i added an update status of DB1 to Yes.so it can skip that entry.

     

     

     

     

     

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.