Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1

    Script da integrare: paginazione + ordinamento colonne tabella

    Buon giorno a tutti,
    ho il seguente script che applicato ad una mia tabella mi fa una corretta paginazione dei risultati:
    codice:
    <?php
    	session_start();
    	session_register('id'); 
    	//Array to store validation errors
    	$errmsg_arr = array();
    	
    	//Validation error flag
    	$errflag = false;
    
    
    require "config.php";
    require "dbms.inc.php";
    require "paginazione.inc.php";
    
    $webpage = basename($_SERVER['PHP_SELF']);
    $page = (!isset($_GET['page']))? 1 : $_GET['page'];
    $result = mysql_query("select * FROM  utenti ORDER BY id ASC");
    $max_results = 10;//numero di elementi da visualizzare per pagina.
    $total_results = mysql_num_rows($result);
    $total_pages = ceil($total_results / $max_results);
    $from = (($page * $max_results) - $max_results);
    $result=mysql_query("select * FROM utenti ORDER BY data_reg DESC LIMIT $from, $max_results ");
    
    echo '
    <CENTER><table><table border="0" cellpadding="8" cellspacing="5">
    <tr>
    <td>Data inserimento</td>
    <td>Nome</td>
    <td>Cognome</td>
    <td>Segnalatore</td>
    <td>Servizio inviante</td>
    <td>Tutor</td>
    <td>Stato</td>
    <td></td>
    <td></td>
    </tr>
     
    	';
     
    while ($i = mysql_fetch_array($result))
    {
    	echo '
    <tr>
    <td>' . $i['data_reg'] . '</td>
    <td>' . $i['nome'] . '</td>
    <td>' . $i['cognome'] . '</td>
    <td>' . $i['segnalatore'] . '</td>
    <td>' . $i['servinviante'] . '</td>
    <td>' . $i['tutor'] . '</td>
    ';
    if ($i['stato']=="Assegnato SIL") {
    echo '
    <td BGCOLOR="#FF6699">' . $i['stato'] . '</td>
    ';
    }
    if ($i['stato']=="Da assegnare") {
    echo '
    <td BGCOLOR="#00FF00">' . $i['stato'] . '</td>
    ';
    }
    echo '
    <td>[img]modify.gif[/img]</td>
    <td>[img]trashcan.gif[/img]</td>
    </tr>
     
    		';
    }
     
    echo '</table></CENTER>
     
    ';
    
    echo pagination_3($total_pages, $page, $webpage);
    
    ?>
    Questo codice funziona perfettamente!

    Poi ho quest'altro, anch'esso testato, che ordina le colonne cliccando sulle intestazioni delle stesse:

    codice:
    <?php  
    
    $query2 = "select id,cognome,nome,titolo,sesso from utenti"; 
     $rs2 = mysql_query($query2) or die(mysql_error());  
    $num = mysql_num_rows($rs2);  
    
    if ($num == 0)  
        echo "<div style=\"text-align:center\">Nessun contatto presente nel comune</div>"; 
             else  
              {  
                 if(empty($_GET['ordercampo']))  
                 $_GET['ordercampo'] = "id"; 
              
                 if(empty($_GET['order']))  
                 $_GET['order'] = "asc"; 
              
                 if($_GET['order']=="asc") {$ordinaVerso = "desc";}  
                 if($_GET['order']=="desc") {$ordinaVerso = "asc";}  
                 $query2 = "select id,cognome,nome,titolo,sesso from utenti order by $_GET[ordercampo] $ordinaVerso ";
                  $rs = mysql_query($query2) or die(mysql_error());  
            ?>  
            <table border="1">  
            <tr>  
            <td align="center">Cognome</td> 
             <td align="center">Nome</td> 
             <td align="center">Sesso</td> 
              </tr>  
              <?php  
            while($results = mysql_fetch_array($rs))  
                {  
                    echo "<tr>";  
                    $id = $results['id'];  
                    echo "<td width=\"25%\">$results[cognome]</td>";  
                    echo "<td width=\"25%\">$results[nome]</td>";  
                    echo "<td width=\"25%\">$results[email]</td>";  
                    echo "</tr>";  
                } //fine ciclo while  
            } //fine else nel caso ci sia almeno un contatto nel comune  
    ?>
    Il mio problema è che vorrei fare un merge dei due in modo tale che lo script faccia entrambe le cose. Ci sto provando da due giorni ma non riesco proprio. Ho provato ad uniformare i nomi delle variabili e degli array dei due script di modo da facilitarmi la vita ma non ci riesco ugualmente. Qualcuno ha voglia di darci un'occhiata?

    Grazie in anticipo!!

    Ciao

    TP

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    puoi postare il tuo merge? così vediamo cosa c'è che non va, non credo che qualcuno si metta a mergiarlo così di suo

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Tu nel primo script fai così
    $result = mysql_query("select * FROM utenti ORDER BY id ASC");

    ovvero ordini per id, sempre e comunque.
    Rendi parametrico l'ordinamento.
    Appendi al link che richiama la pagina un parametro, ad esempio

    www.sito.it/elenco.php?ord=nome_di_una_colonna

    e trasformi la query in
    $result = mysql_query("select * FROM utenti ORDER BY ".$_GET['ord']." ASC");

  4. #4
    Questo è il mio merge che, ahimè, non funziona:

    codice:
    <?php
    	session_start();
    	session_register('id'); 
    	//Array to store validation errors
    	$errmsg_arr = array();
    	
    	//Validation error flag
    	$errflag = false;
    
    
    require "config.php";
    require "dbms.inc.php";
    require "paginazione.inc.php";
    
    $webpage = basename($_SERVER['PHP_SELF']);
    $page = (!isset($_GET['page']))? 1 : $_GET['page'];
    $result = mysql_query("select id,cognome,nome,titolo,sesso FROM  utenti ORDER BY id ASC");
    $max_results = 10;//numero di elementi da visualizzare per pagina.
    $total_results = mysql_num_rows($result);
    $total_pages = ceil($total_results / $max_results);
    $from = (($page * $max_results) - $max_results);
    
    
    if ($total_results == 0)  
        echo "<div style=\"text-align:center\">Nessun contatto presente nel comune</div>"; 
             else  
              {  
                 if(empty($_GET['ordercampo']))  
                 $_GET['ordercampo'] = "id"; 
              
                 if(empty($_GET['order']))  
                 $_GET['order'] = "asc"; 
              
                 if($_GET['order']=="asc") {$ordinaVerso = "desc";}  
                 if($_GET['order']=="desc") {$ordinaVerso = "asc";}  
                 $query2 = "select id,cognome,nome,titolo,sesso from utenti order by $_GET[ordercampo] $ordinaVerso LIMIT $from, $max_results ";
                  $rs = mysql_query($query2) or die(mysql_error());  
            ?>  
     <table border="1">  
            <tr>  
            <td align="center">Data registrazione</td> 
            <td align="center">Nome</td> 
             <td align="center">Cognome</td> 
             <td align="center">Sesso</td> 
              </tr>
     
    	';
     
    while ($i = mysql_fetch_array($result))
    {
    	echo '
    <tr>
    <td>' . $i['data_reg'] . '</td>
    <td>' . $i['nome'] . '</td>
    <td>' . $i['cognome'] . '</td>
    <td>' . $i['sesso'] . '</td>
    ';
    if ($i['stato']=="Assegnato SIL") {
    echo '
    <td BGCOLOR="#FF6699">' . $i['stato'] . '</td>
    ';
    }
    if ($i['stato']=="Da assegnare") {
    echo '
    <td BGCOLOR="#00FF00">' . $i['stato'] . '</td>
    ';
    }
    echo '
    <td>[img]modify.gif[/img]</td>
    <td>[img]trashcan.gif[/img]</td>
    </tr>
     
    		';
    }
     
    echo '</table></CENTER>
     
    ';
    
    echo pagination_3($total_pages, $page, $webpage);
    
    ?>
    Qualche idea su cosa non vada?

    Thanks!!

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Prova la mia soluzione.

  6. #6
    Originariamente inviato da Alhazred
    Prova la mia soluzione.
    Gosh...temo di non riuscire a farlo!!!! Se volessi usare il merge che ho fatto? C'è qualche errore che salta all'occhio?

  7. #7
    MAncava un'apertura di tag PHP.
    Adesso è ripulito ma non va ancora:
    codice:
    <?php
    	session_start();
    	session_register('id'); 
    	//Array to store validation errors
    	$errmsg_arr = array();
    	
    	//Validation error flag
    	$errflag = false;
    
    
    require "config.php";
    require "dbms.inc.php";
    require "paginazione.inc.php";
    
    $webpage = basename($_SERVER['PHP_SELF']);
    $page = (!isset($_GET['page']))? 1 : $_GET['page'];
    $tutti = mysql_query("select id,cognome,nome,titolo,sesso FROM  utenti ORDER BY id ASC");
    $max_results = 10;//numero di elementi da visualizzare per pagina.
    $total_results = mysql_num_rows($tutti);
    $total_pages = ceil($total_results / $max_results);
    $from = (($page * $max_results) - $max_results);
    
    
    if ($total_results == 0)  
        echo "<div style=\"text-align:center\">Nessun contatto presente nel comune</div>"; 
             else  
              {  
                 if(empty($_GET['ordercampo']))  
                 $_GET['ordercampo'] = "id"; 
              
                 if(empty($_GET['order']))  
                 $_GET['order'] = "asc"; 
              
                 if($_GET['order']=="asc") {$ordinaVerso = "desc";}  
                 if($_GET['order']=="desc") {$ordinaVerso = "asc";}  
                 $query = "select id,cognome,nome,titolo,sesso from utenti order by $_GET[ordercampo] $ordinaVerso LIMIT $from, $max_results ";
                  $result = mysql_query($query) or die(mysql_error());  
            ?>  
     <table border="1">  
            <tr>  
            <td align="center">Data registrazione</td> 
            <td align="center">Nome</td> 
             <td align="center">Cognome</td> 
             <td align="center">Sesso</td> 
              </tr>
     
    	';
     <?php
    while ($i = mysql_fetch_array($result))
    {
    	echo '
    <tr>
    <td>' . $i['data_reg'] . '</td>
    <td>' . $i['nome'] . '</td>
    <td>' . $i['cognome'] . '</td>
    <td>' . $i['sesso'] . '</td>
    ';
    if ($i['stato']=="Assegnato SIL") {
    echo '
    <td BGCOLOR="#FF6699">' . $i['stato'] . '</td>
    ';
    }
    if ($i['stato']=="Da assegnare") {
    echo '
    <td BGCOLOR="#00FF00">' . $i['stato'] . '</td>
    ';
    }
    echo '
    <td>[img]modify.gif[/img]</td>
    <td>[img]trashcan.gif[/img]</td>
    </tr>
     
    		';
    }
     
    echo '</table></CENTER>
     
    ';
    
    echo pagination_3($total_pages, $page, $webpage);
    ';
    ?>

  8. #8
    Ripulito ulteriormente il tutto, c'era un gran casino negli ECHO all'interno della costruzione dinamica della tabella. Non funziona ancora comunque. Ecco il codice nella speranza che qualcuno veda gli errori!!

    Grazie ragazzi in anticipo!

    codice:
    <?php
    	session_start();
    	session_register('id'); 
    	//Array to store validation errors
    	$errmsg_arr = array();
    	
    	//Validation error flag
    	$errflag = false;
    
    
    require "config.php";
    require "dbms.inc.php";
    require "paginazione.inc.php";
    
    $webpage = basename($_SERVER['PHP_SELF']);
    $page = (!isset($_GET['page']))? 1 : $_GET['page'];
    $tutti = mysql_query("select id,cognome,nome,titolo,sesso FROM utenti ORDER BY id ASC");
    $max_results = 10;//numero di elementi da visualizzare per pagina.
    $total_results = mysql_num_rows($tutti);
    $total_pages = ceil($total_results / $max_results);
    $from = (($page * $max_results) - $max_results);
    
    
    if ($total_results == 0)  
        echo '<div style=\"text-align:center\">Nessun contatto presente nel comune</div>'; 
             else  
              {  
                 if(empty($_GET['ordercampo']))  
                 $_GET['ordercampo'] = "id"; 
              
                 if(empty($_GET['order']))  
                 $_GET['order'] = "asc"; 
              
                 if($_GET['order']=="asc") {$ordinaVerso = "desc";}  
                 if($_GET['order']=="desc") {$ordinaVerso = "asc";}  
                 $query = "select id,cognome,nome,titolo,sesso from utenti order by $_GET[ordercampo] $ordinaVerso LIMIT $from, $max_results ";
                  $result = mysql_query($query) or die(mysql_error());  
            echo'  
     <table border="1">  
            <tr>  
            <td align="center">Data registrazione</td> 
            <td align="center">Nome</td> 
             <td align="center">Cognome</td> 
             <td align="center">Sesso</td> 
              </tr>
     
    	';
    	
    
    while ($i = mysql_fetch_array($result))
    {
    	echo '
    <tr>
    <td>' . $i['data_reg'] . '</td>
    <td>' . $i['nome'] . '</td>
    <td>' . $i['cognome'] . '</td>
    <td>' . $i['sesso'] . '</td>
    ';
    if ($i['stato']=="Assegnato SIL") {
    echo '
    <td BGCOLOR="#FF6699">' . $i['stato'] . '</td>
    ';
    }
    if ($i['stato']=="Da assegnare") {
    echo '
    <td BGCOLOR="#00FF00">' . $i['stato'] . '</td>
    ';
    }
    echo '
    <td>[img]modify.gif[/img]</td>
    <td>[img]trashcan.gif[/img]</td>
    </tr>
     
    		';
    }
     
    echo '</table></CENTER>
     
    ';
    
    echo pagination_3($total_pages, $page, $webpage);
    
    ?>

  9. #9
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Errori di che tipo? riporta tutti i malfunzionamenti, così ad occhio potrebbe sembrare corretto

  10. #10
    Sicuramente c'è qualche errore qui:
    codice:
            echo'  
     <table border="1">  
            <tr>  
            <td align="center">Data registrazione</td> 
            <td align="center">Nome</td> 
             <td align="center">Cognome</td> 
             <td align="center">Sesso</td> 
              </tr>
     
    	';

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.