Visualizzazione risultati 1 fino 13 di 13

Discussione: Lista di id troppo grande:suddivisione

  1. #1
    L'avatar di marcio
    marcio non è connesso AlterGuru 2500
    Data registrazione
    17-08-2003
    Residenza
    Palermo
    Messaggi
    3,300

    Predefinito

    Vedete questa sezione:
    http://marcio.altervista.org/program...ezione=cazzate

    ha una lista di downloads che è troppo lunga vorrei suddividerla in varie pagine,ma non capisco la query!
    come si fa a fare una query che dice di prendere i valori per esempio 50 al 70
    PS si potrebbe fare: WHERE id>=50 AND id<=70 ma ho sentito parlare di offset,qualcuno sa come fare?

  2. #2
    risorsenet non è connesso Utente giovane
    Data registrazione
    16-06-2003
    Messaggi
    30

    Predefinito

    Qui trovi una funzione che fa al caso tuo:
    http://forum.guidoz.it/viewtopic.php?t=451

    L'ho usata anche io e funziona a dovere

    bye

  3. #3
    L'avatar di marcio
    marcio non è connesso AlterGuru 2500
    Data registrazione
    17-08-2003
    Residenza
    Palermo
    Messaggi
    3,300

    Predefinito

    Citazione Originalmente inviato da risorsenet
    Qui trovi una funzione che fa al caso tuo:
    http://forum.guidoz.it/viewtopic.php?t=451

    L'ho usata anche io e funziona a dovere

    bye
    troppo complicata

  4. #4
    Guest

    Predefinito

    qualcuno ne sa uno più semplice sarebbe utile anche a me!

  5. #5
    L'avatar di lucillo
    lucillo non è connesso Utente storico
    Data registrazione
    06-11-2003
    Messaggi
    2,017

    Predefinito

    beh c'è sempre il comando LIMIT in sql ^___^

    esso fa vedere n record dal record di partenza settato^_^


    l'acqua è pei perversi e il diluvio lo provò

    Detentore del record del topic piu lungo e letto della storia di av!!!!
    ll topic 56620!!

  6. #6
    Guest

    Predefinito

    però dovrei riinserire il codice in ogni pagina ed inoltre mi dovrei creare io le varie pagine giusto?

  7. #7
    Guest

    Predefinito

    Qui trovi una funzione che fa al caso tuo:
    http://forum.guidoz.it/viewtopic.php?t=451
    ok sono andata li e pensa che mi sono anche iscritta al forum... solo che non c'è anima viva


    ho un piccolo problema:

    io ho scritto:
    <?php

    include_once("paginazione.inc");
    /* funzione per la paginazione che si trova nel forum di guidoz

    //connessione a mysql
    mysql_connect('localhost','karalisnight','*****')
    or die("Connessione non riuscita");

    //selezione del database
    mysql_select_db('my_karalisnight')
    or die("Selezione del database non riuscita");


    //sottomissione della query (come usare mysql_query())
    $query = "SELECT nome FROM elenco" ;
    $res = paging($query,6,5);

    //verifica dei risultati.. $res è un array..
    if (!$res[0]) { echo "non ci sono dati";}
    else
    {
    while($dati = mysql_fetch_array($res[0]))
    {

    echo "<br>".$dati['campo'];
    }
    }
    echo "<br>".$res[1];
    );

    /* Free result set */
    mysql_free_result($res);

    /* Close connection */
    mysql_close($link);
    ?>
    e nel file paginazione.inc che ho richiamato ho copiato e incollato quello che c'è nel forum di guidoz senza modificare una virgola... quindi sicuramente l'ORRORE è qui!! qualcuno sa dirmi dove? ... prima avevo tutto, anche il contenuto di paginazione, sulla pagina dove c'è questo codice e almeno mi apparivano una serie di pagine collegate fra di loro... (anche se vuote!!!) ora ho messo il contenuto di paginazione in un altro file e mi da una pagina completamente vuota... ma a proposito .inc che estensione è ???

  8. #8
    L'avatar di marcio
    marcio non è connesso AlterGuru 2500
    Data registrazione
    17-08-2003
    Residenza
    Palermo
    Messaggi
    3,300

    Predefinito

    Citazione Originalmente inviato da lucillo
    beh c'è sempre il comando LIMIT in sql ^___^

    esso fa vedere n record dal record di partenza settato^_^
    e come si setta il record di partenza?

  9. #9
    Guest

    Predefinito

    se ti può essere d'aiuto questo ora funziona

    <?php


    //connessione a mysql
    mysql_connect('localhost','*****','*****')
    or die("Connessione non riuscita");

    //selezione del database
    mysql_select_db('******')
    or die("Selezione del database non riuscita");


    //sottomissione della query (come usare mysql_query())
    $query = "SELECT campi della tua tabella separati da virgola FROM nome tabella da cui prelevi i campiWHERE id_tipo LIKE '%02%' ORDER BY nome del campo sul quale effetuare l'ordinamento" ;
    $res = paging($query,15,2(commento: questi numeri sono gli stessi che avrai scritto più in basso: 15=n° record x pagina, 2=n° link pagine));

    //verifica dei risultati.. $res è un array..
    if (!$res[0]) { echo "non ci sono dati";}
    else
    {
    while($dati = mysql_fetch_array($res[0]))
    {

    echo "<br>".$dati['campi della tabella da visualizzare'];
    }
    }
    echo "<br>".$res[1];


    /* Free result set */
    mysql_free_result($res);

    /* Close connection */
    mysql_close($link);
    ?>




    <?php
    function paging($query,$x_pag=inserire il n° dei record da vedere per ogni pagina,$num_links=inserire il n° dei link di pagine da visualizzare alla fine di ogni pagina es se si scrive 3 il risultato per la prima pag. sarà 1,2,3 >> ... e per la seconda << 2,3,4>> etc fino a che non ci sono più pagine es. <<10,11,12)
    {
    //conteggio i record presenti
    $righe = mysql_num_rows(mysql_query($query));
    if ($righe == 0){ return false; }

    //calcolo il numero di pagine necessarie per visualizzare i dati
    $numpages = ceil($righe/$x_pag);

    //ottengo il numero di pagina, se manca lo imposto ad 1
    $pag = isset($_GET['pag'])? $_GET['pag'] : 1;

    //imposto il primo estremo del limit
    $da = ($pag-1) * $x_pag;

    //appendo il limit alla query originaria
    $query .= " LIMIT $da,$x_pag";

    //gestisco la propagazione della query string
    $querystring = '';
    foreach($_GET as $k => $v)
    {
    if ($k != 'pag')
    {
    $querystring .= "&".$k."=".$v;
    }
    }

    //inizializzo una stringa vuota in cui appenderò l'output del menu'
    $menu = '';

    //serie di condizionali in cascata per costruire il menu'
    if($numpages <= $num_links)
    {
    for ($pagina = 1; $pagina <= $numpages; $pagina++)
    {
    if ($pagina == $pag)
    $menu .= "<a class=\"pag_selected\" href\"=?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a>& ";
    else
    $menu .= "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a>& ";
    }
    }

    //se la pag corrente è tra le prime $num_links/2 --> stampo i primi $nun_links link
    else if($pag <= ceil($num_links/2))
    {
    for ($pagina=1; $pagina<=$num_links; $pagina++)
    {
    if ($pagina == $pag)
    $menu .= "<a class=\"pag_selected\" href\"=?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a>, ";
    else
    $menu .= "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a>, ";
    }
    $menu .= "<a class=\"pag_link\" href=\"?pag={$numpages}{$querystring}\" title=\"Vai all'ultima pagina\"> >> </a>, ";
    }

    //se la pag corrente è tra le ultime $num_links/2 --> stampo gli ultimi $nun_links link
    else if($pag > ($numpages-ceil($num_links/2)))
    {
    $menu .= "<a class=\"pag_link\" href=\"?pag=1{$querystring}\" title=\"Vai alla prima pagina\"> << </a>, ";
    for ($pagina=$numpages-$num_links+1; $pagina<=$numpages; $pagina++)
    {
    if ($pagina == $pag)
    $menu .= "<a class=\"pag_selected\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a>, ";
    else
    $menu .= "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a>, ";
    }
    }

    //Altrimenti la pagina corrente è una dell centrali --> stampo i $nun_links/2 link prima ed $nun_links/2 link dopo
    else
    {
    $menu .= "<a class=\"pag_link\" href=\"?pag=1{$querystring}\" title=\"Vai alla prima pagina\"> << </a>, ";
    for ($pagina = $pag-ceil($num_links/2-1); $pagina <= $pag+ceil($num_links/2-1); $pagina++)
    {
    if ($pagina == $pag)
    $menu .= "<a class=\"pag_selected\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a>, ";
    else
    $menu .= "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a>, ";
    }
    $menu .= "<a class=\"pag_link\" href=\"?pag=$numpages\" title=\"Vai all'ultima pagina\"> >> </a> ";
    }

    //restituisco il risultato della query, e l'output del menu'
    return array(mysql_query($query),$menu);
    }
    ?>
    cambia SOLO i dati che ti ho colorato in base alle istruzioni e il gioco è fatto.
    il codice scritto in verde serve per prendere dal campo id_tipo dalla mia tabella dove ho inserito solo codici, tutti i codici 02 che secondo un array che farò corrisponderà ad una voce ad esempio ristoranti se ti serve puoi usarlo con i tuoi dati altrimenti puoi semplicemente cancellarlo, non comporta errori.

    però io ho adesso un altro problema :
    se inserisco solo un campo della mia tabella tutto ok ma se ne voglio inserire di più non mi appare niente

    es se scrivo
    $query = "SELECT nome,città FROM elenco WHERE id_tipo LIKE '%02%' ORDER BY nome" ;
    e poi
    echo "<br>".$dati['nome,città'];
    non funge più.... perchè :? :x

    AIUTOOOOOOOOOOOOOO

  10. #10
    Guest

    Predefinito

    nessuno sa come aiutarmi?????


    marcio hai provato? :D

  11. #11
    Guest

    Predefinito

    grazie lo stesso ... ho risolto
    dovevo scrivere:

    echo "<br> ".$dati['nome'];
    echo " ".$dati['indirizzo'];
    echo " ".$dati['città'];
      è lo spazio in html

    lo scrivo perchè magari c'è o ci sarà qualcuno a cui potrà servire

  12. #12
    Guest

    Predefinito

    se voglio modificare la dimensione del carattere del menu dove devo modificare il codice???
    PS il risultato della query deve avere una dimensione più grande rispetto al menu.

  13. #13
    Guest

    Predefinito

    vabbè mi rispondo da sola anche questa volta

    bisogna scrivere la formattazione su $res.[1]:
    $res[0] è la query mantre $res[1] è il menù

    esempio

    echo "<p><font size=\"2\">".$res[1];
    echo "</font>";

Regole di scrittura

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