Visualizzazione risultati 1 fino 1 di 1

Discussione: aiuto urgente per paginazione dati

  1. #1
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito aiuto urgente per paginazione dati

    Ciao
    Ragazzi sto impazzendo.

    La funzione cerca e stampa i dati in base alle date inserite:

    Codice PHP:
    <?
    function ricerca($inizio, $fine){

    // Creo una variabile dove imposto il numero di record
    // da mostrare in ogni pagina
    $x_pag = 5;

    // Recupero il numero di pagina corrente.
    // Generalmente si utilizza una querystring
    $pag = $_GET['pag'];

    // Controllo se $pag è valorizzato...
    // ...in caso contrario gli assegno valore 1
    if (!$pag) $pag = 1;

    function
    checkData($date)
    {
    list(
    $dd,$mm,$yy)=explode("/",$date);
    if (
    $dd!="" && $mm!="" && $yy!="")
    {
    if (
    is_numeric($yy) && is_numeric($mm) && is_numeric($dd))
    {
    return
    checkdate($mm,$dd,$yy);
    }
    }
    return
    false;
    }

    //Primo imput si secondo no
    if (($inizio != '')&&($fine =='')){
    $controlloin = checkData($inizio);
    if (
    $controlloin != 1)
    {
    echo
    "<center><b>la data d'inizio inserita non è valida.</b> &nbsp;&nbsp;
    <input type=\"button\" value=\"Indietro\" onclick=\"history.back(1)\"></center>"
    ;
    }
    else {
    $tutto = "SELECT *, date_format(giorno, '%d/%m/%Y') as data_it FROM primanota where giorno >= str_to_date('$inizio', '%d/%m/%Y') ORDER BY giorno, id";
    }
    }

    elseif ((
    $inizio=='')&&($fine != '')){

    $controllofin = checkData($fine);
    if (
    $controllofin != 1)
    {
    echo
    "<center><b>la data finale inserita non è valida.</b> &nbsp;&nbsp;
    <input type=\"button\" value=\"Indietro\" onclick=\"history.back(1)\"></center>"
    ;
    }
    else {
    $tutto = "SELECT *, date_format(giorno, '%d/%m/%Y') as data_it FROM primanota where giorno <= str_to_date('$fine', '%d/%m/%Y') ORDER BY giorno, id ";
    }
    }
    //le date non sono state inserite
    elseif (($inizio=='')&&($fine==''))
    {
    echo
    "<center><b>Non hai inserito date.</b> &nbsp;&nbsp;
    <input type=\"button\" value=\"Indietro\" onclick=\"history.back(1)\"></center>"
    ;
    }

    //entrambe le date sono state inserite
    elseif (($inizio!='')&&($fine!=''))
    {
    $controlloin = checkData($inizio);
    $controllofin = checkData($fine);

    //entrambe sbagliate
    if (($controlloin != 1 )&& ($controllofin != 1))
    {
    echo
    "<center><b>Le date inserite non sono valide</b> &nbsp;&nbsp;
    <p><a href=\"ricercanote.php\">
    <img border=\"0\" src=\"stili/indietro.jpeg\"></a></p></center>"
    ;
    }
    //entrambe esatte
    elseif (($controlloin == 1 )&& ($controllofin == 1))
    {

    list(
    $giorno,$mese,$anno) = split("/",$inizio);
    $datain = mktime(0,0,0,$mese,$giorno,$anno);

    list(
    $giorno,$mese,$anno) = split("/",$fine);
    $datafin = mktime(0,0,0,$mese,$giorno,$anno);

    //se la prima è posteriore alla seconda
    if ($datain>$datafin)
    {
    echo
    "<center><b>la data d'inizio ricerca non può essere posteriore alla data di fine ricerca.</b> &nbsp;&nbsp;
    <input type=\"button\" value=\"Indietro\" onclick=\"history.back(1)\"></center>"
    ;
    }

    //ok!
    else {

    $tutto = "SELECT *, date_format(giorno, '%d/%m/%Y') as data_it FROM primanota where giorno >= str_to_date('$inizio', '%d/%m/%Y') and giorno <= str_to_date('$fine', '%d/%m/%Y') ORDER BY giorno, id";
    }
    }

    //la prima data sbagliata
    elseif ($controlloin != 1)
    {
    echo
    "<center><b>la data d'inizio inserita non è valida.</b> &nbsp;&nbsp;
    <input type=\"button\" value=\"Indietro\" onclick=\"history.back(1)\"></center>"
    ;
    }
    //la seconda data sbagliata
    elseif ($controllofin != 1)
    {
    echo
    "<center><b>la data finale inserita non è valida.</b> &nbsp;&nbsp;
    <input type=\"button\" value=\"Indietro\" onclick=\"history.back(1)\"></center>"
    ;
    }
    }

    if (isset(
    $tutto)){



    $risultato = mysql_query($tutto);
    $num_righe = mysql_num_rows($risultato);

    // Tramite una semplice operazione matematica definisco
    // il numero totale di pagine
    $all_pages = ceil($num_righe / $x_pag);
    // Calcolo da quale record iniziare
    $first = ($pag - 1) * $x_pag;
    ?>

    <div id ="mezzo2">
    <table align="center" width="85%" height="400" id="table5">
    <tr>
    <td id="row5" valign="top">

    <?
    if ($num_righe != 0)
    {
    ?>

    <table border="1" width="100%" height="47" id="table55">
    <tr>
    <td height="47" width="10%" align="center" id="row6" rowspan="2">DATA&nbsp;</td>
    <td height="47" width="30%" align="center" id="row6" rowspan="2">DESCRIZIONE</td>
    <td height="25" width="26%" align="center" id="row6" colspan="2">CASSA</td>
    <td height="25" width="26%" align="center" id="row6" colspan="2">BANCA</td>
    <td height="47" width="5%" align="center" id="row6" rowspan="2">CANC</td>
    </tr>
    <tr>
    <td height="22" width="13%" align="center" id="row6"><font color="#00FF00">ENTRATA</font></td>
    <td height="22" width="13%" align="center" id="row6"><font color="#FF5050">USCITA</font></td>
    <td height="22" width="13%" align="center" id="row6"><font color="#00FF00">ENTRATA</font></td>
    <td height="22" width="13%" align="center" id="row6"><font color="#FF5050">USCITA</font></td>
    </tr>

    <?
    // Recupero i record per la pagina corrente...
    // utilizzando LIMIT per partire da $first e contare fino a $x_pag
    $query = "SELECT *, date_format(giorno, '%d/%m/%Y') as data_it FROM primanota ORDER BY giorno, id LIMIT $first, $x_pag";
    $risultato = mysql_query($query);

    $i = 0;
    while (
    $record = mysql_fetch_array($risultato)) {
    $id = $record["id"];
    $data = $record["data_it"];
    $desc = $record["descrizione"];
    $cassain = $record["cassa_in"];
    $cassaout = $record["cassa_out"];
    $bancain = $record["banca_in"];
    $bancaout = $record["banca_out"];

    if (
    $cassain != 0.00)
    {
    $cassainvis = number_format($cassain, 2, ',', '.');
    }
    else {
    $cassainvis = "";}

    if (
    $cassaout != 0.00)
    {
    $cassaoutvis = number_format($cassaout, 2, ',', '.');
    }
    else {
    $cassaoutvis = "";}

    if (
    $bancain != 0.00)
    {
    $bancainvis = number_format($bancain, 2, ',', '.');
    }
    else {
    $bancainvis = "";}

    if (
    $bancaout != 0.00)
    {
    $bancaoutvis = number_format($bancaout, 2, ',', '.');
    }
    else {
    $bancaoutvis = "";}

    $i = (++$i % 2);
    echo
    "<tr class=alternate".$i.">
    <td height=\"54\" width=\"10%\" align=\"center\" id=\"row7\">
    $data</td>
    <td height=\"54\" width=\"30%\" align=\"left\" id=\"row7\">
    $desc</td>
    <td height=\"54\" width=\"13%\" align=\"center\" id=\"row7\">
    $cassainvis</td>
    <td height=\"54\" width=\"13%\" align=\"center\" id=\"row7\">
    $cassaoutvis</td>
    <td height=\"54\" width=\"13%\" align=\"center\" id=\"row7\">
    $bancainvis</td>
    <td height=\"54\" width=\"10%\" align=\"center\" id=\"row7\">
    $bancaoutvis</td>
    <td height=\"54\" width=\"5%\" align=\"center\" id=\"row7\"><a href=\"nota.php?task=dom_delete&id=
    $id\">
    <img border=\"0\" alt=\"Elimina Record\" src=\"stili/delete.gif\"/></a></td>
    </tr>"
    ;
    }
    ?>

    <tr>
    <td height="30" colspan="2" align="left" id="row9">Tot. Primenote: <?echo $num_righe?>
    </td>
    <td height="30" colspan="2" align="center" id="row8">
    <?
    echo $num_righe;
    // Se le pagine totali sono più di 1...
    // stampo i link per andare avanti e indietro tra le diverse pagine!
    if ($all_pages > 1){
    if (
    $pag > 1){
    echo
    "<a href=\"" . $_SERVER['PHP_SELF'] . "?pag=" . ($pag - 1) ."&task=ricerca&inizio=$inizio&fine=$fine". "\">Pag. Indietro</a>";
    echo
    "&nbsp;&nbsp;&nbsp;";
    }
    if (
    $all_pages > $pag){
    echo
    "<a href=\"" . $_SERVER['PHP_SELF'] . "?pag=" . ($pag + 1) . "&task=ricerca&inizio=$inizio&fine=$fine"."\">Pag. Avanti</a>";
    }
    }
    ?>
    </td>
    <td height="30" colspan="3" align="right" id="row9">Pagina <? echo $pag."&nbsp;di&nbsp;".$all_pages?>
    </td>
    </tr>
    </table>

    <?
    }else { echo "<center><b>Non ci sono registrazioni</b></center>";}

    ?>

    </td>
    </tr>
    </table>
    </div>
    <?
    }



    }


    ?>

    <?
    switch($_REQUEST['task']) {
    case
    'ricerca':
    ricerca($_REQUEST['inizio'], $_REQUEST['fine']);
    break;

    }
    ?>
    Il problema è che mi stampa risultati sballati e il link avanti mi riporta ad una pagina bianca.
    Avevo usato lo stesso metodo in un'altra pagina che va bene e non capisco dove sto sbagliando in questa

    Potete aiutarmi a capire per piacere dov'è l'errore?

    Grazie
    Ultima modifica di dreadnaut : 22-12-2010 alle ore 00.19.15 Motivo: tagghino <? per la colorazione

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •