Visualizzazione dei risultati da 1 a 4 su 4

Discussione: PHP PAginazione mssql

  1. #1

    PHP PAginazione mssql

    Ciao a tutti sto cercando di fare una paginazione con PHP e SQL server, però ho dei problemi. Con Mysql si usa il limit, ed in mssq si può usare un top, però trovo dei problemi :

    1) la prima pagina è vuota mentre dalla 2 in poi altre riesco a paginare con i dati estratti
    2) Se uso una tabella tutto ok se voglio usare la query con delle inner join inizio ad avere dei problemi.
    questo è il codice.

    Query con una tabella però non riesco a visulizzare la prima pagina vengono fuori tutti i numeri per i records trovati, ma quando clicco sulla pagian 1, non mi tira fuori nessun dato:

    select * from (
    select top 10 emp_id,lname,fname from (
    select top 30 emp_id,lname,fname
    from employee
    order by lname asc
    ) as newtbl order by lname desc
    ) as newtbl2 order by lname asc

    Codice PHP:

    <?

    mssql_connect("APPLICATION", "sa", "samsung2004") or die("Connection Error");
    mssql_select_db("SAMA2");
    // exit;
    // connessione al database


    // esecuzione prima query
    $count = mssql_query("SELECT COUNT(id) FROM persone");
    $res_count = mssql_fetch_row($count);

    // numero totale di records
    $tot_records = $res_count[0];

    // risultati per pagina(secondo parametro di LIMIT)
    $per_page = 5;

    // numero totale di pagine
    $tot_pages = ceil($tot_records / $per_page);

    // pagina corrente
    @$current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];

    // primo parametro di LIMIT
    $primo = ($current_page - 1) * $per_page;

    echo "<div align=\"center\">\n<table>\n";

    // esecuzione seconda query con LIMIT
    $query_limit = mssql_query("
    SELECT * FROM( SELECT top $per_page id,descr1 from(
    SELECT top $primo id, descr1
    from persone
    order by descr1 asc
    ) as newtbl order by descr1 desc
    ) as newtbl2 order by descr1 asc");

    //echo $query_limit . "
    ";
    //exit;
    while($results = mssql_fetch_array($query_limit)) {

    if(isset($results['id']))
    {

    $id= $results['id'];

    }

    if(isset($results['descr1']))
    {
    $descr = $results['descr1'];
    }
    echo " <tr>\n <td>";
    echo "<a href=\"page.php?id=" . $id . "\">" . $descr . "</a>
    ";
    echo "</td>\n </tr>\n";
    }

    // includiamo uno dei files contenenti la paginazione, commentate l'altro ovviamente
    //include("paginazione1.php");
    include("paginazione1.php");

    // in questa cella inseriamo la paginazione
    echo " <tr>\n <td height=\"50\" valign=\"bottom\" align=\"center\">$paginazione</td>\n";

    echo " </tr>\n</table>\n</div>";

    mssql_close();

    ?>

    2) Se voglo usare un'altra tabella iniziano i guai questa è la query che vorrei usare con quel metodo:

    SELECT PERSONE.*, CLIENTI.*
    FROM PERSONE,CLIENTI
    WHERE PERSONE.ID = CLIENTI.IDPERSONA AND ISCLI=-1

    Grazie

    Max

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    110
    I nomi delle due tabelle sono univoci? Se usi la query separatamente
    non hai problemi ma se il risultato è una nuova tabella... fai una prova con un paio di campi (usando AS)
    Ciao
    Marco

  3. #3
    io ho provato così ma mi dice errore vicino a From
    SELECT Persone.*,clienti* From (
    SELECT TOP 10 * FROM (
    SELECT TOP 10 *
    FROM Persone,clienti
    ) AS foo
    ) AS baz

    Tu intendevi così?

  4. #4
    Scusa è così :

    SELECT Persone.*,clienti.* From (
    SELECT TOP 10 * FROM (
    SELECT TOP 10 * FROM Persone,clienti ORDER BY ID ASC
    ) AS foo
    ) AS baz
    ma non va lo stesso

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.