Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323

    MySqli > PDO, Alternative funzioni

    Ciao, ho questo codice che ho trasformato in pdo.. (Paginazione),
    voglio sapere se è giusto .. perché è l'unica paginazione che mi permette far di tutto..oltre mille ricerche per trovare una paginazione ad ok,

    poi mi sono convertito la mia fatta in mysqli in pdo.

    codice : mysqli:
    codice:
    public function Paginazione($query, $xpage, $varq)		{
                global $db;
    			// le rendo globali
    			$this->xpage = $xpage;
    			$this->varq = $varq;
    			$this->query = trim($query);
    			
    			// pagina corrente sia get che post
    			//$this->cpage = (isset($_REQUEST[$varq])) ? (int)$_REQUEST[$varq] : 1;
    			$this->cpage = (int)($varq)>0 ? (int)$varq : 1;
    			// inizio record
    			$inizio = $xpage * ($this->cpage - 1);
    			
    			// eseguo la query per contare i record
    			$ct = $db->query($this->query) or die($db->error);
    			
    			// record totali
    			$this->tot = $ct = $ct->num_rows;
    			
    			// se ci sono record
    			if($this->tot > 0)
    			{
    				// pagine totali
    				$this->totpag = ceil($this->tot / $xpage);
    				
    				// scrivo ed eseguo la query mirata
    				$target = " LIMIT " . $inizio . ", " . $xpage;
    				$ex = $db->query($this->query . $target) or die($db->error);
    				
    				while($ft = $ex->fetch_array())
    				{
    					$record[] = $ft;
    				}
    				
    				if(empty($record))
    				{				
    				
    				}
    				else
    				{
    				$this->record = $record;
    				}
    				$ex->free_result(); 
    			}
    			else
    			{
    				$this->record = array();
    			}
    		}
    codice : pdo

    codice:
    		public function Paginazione($query, $xpage, $varq)		{
                global $db;
    			// le rendo globali
    			$this->xpage = $xpage;
    			$this->varq = $varq;
    			$this->query = trim($query);
    			
    			// pagina corrente sia get che post
    			//$this->cpage = (isset($_REQUEST[$varq])) ? (int)$_REQUEST[$varq] : 1;
    			$this->cpage = (int)($varq)>0 ? (int)$varq : 1;
    			// inizio record
    			$inizio = $xpage * ($this->cpage - 1);
    			
    			// eseguo la query per contare i record
    			$ct = $db->query($this->query) or die($db->errorInfo());
    			
    			// record totali
    			$this->tot = $ct = $ct->rowCount();
    			
    			// se ci sono record
    			if($this->tot > 0)
    			{
    				// pagine totali
    				$this->totpag = ceil($this->tot / $xpage);
    				
    				// scrivo ed eseguo la query mirata
    				$target = " LIMIT " . $inizio . ", " . $xpage;
    				$ex = $db->query($this->query . $target) or die($db->errorInfo());
    				
    				while($ft = $ex->fetch())
    				{
    					$record[] = $ft;
    				}
    				
    				if(empty($record))
    				{				
    				
    				}
    				else
    				{
    				$this->record = $record;
    				}
    				$ex->nextRowset(); 
    			}
    			else
    			{
    				$this->record = array();
    			}
    		}
    la paginazione in pdo .. non mi fa nessun errore o sbagli, ed quindi funziona come la volevo io..

    ma voglio essere giusto se era cosi la trasformazione da mysqli, a pdo.

    poi un domani imparo queste classi..

    vi ringrazio molto.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    A parte il fatto che è meglio non usare global, ma passare $db come parametro al construttore...


    1. codice:
      while($ft = $ex->fetch())
          {
              $record[] = $ft;
          }
      Puoi fare semplicemente
      codice:
      $record = $ex->fetchAll()


    1. In generale questo
      codice:
      if(empty($record))
           {               
      
      
           }
      else
          {
               $this->record = $record;
          }
      scrivilo così
      codice:
      if(!count($record))
          {
              $this->record = $record;
          }
    No

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    ok, comunque è l'unica classe che ho , in oop, poi e tutto ancora in procedurale ... quando finisco tutto lo porto in oop se mi riesce..
    perché non le ho mai capite le classi..

    poi quella paginazione nel 2001 era in mysql normale e nel 2009 lo convertita in mysqli, ed ora 2014 lo convertita in pdo..
    copletamente ho rifatto un sito ad un signore in 3 versione diverse ansi prima nel 2000 era in asp3. poi perché mi son rotto sono passato a php mysql.

    saluti e grazie mille.

  4. #4
    Quote Originariamente inviata da LedGiallo Visualizza il messaggio
    ... quando finisco tutto lo porto in oop se mi riesce..perché non le ho mai capite le classi..
    Fatti un regalo, lascia tutto così com'è!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.