Pagina 21 di 28 primaprima ... 11 19 20 21 22 23 ... ultimoultimo
Visualizzazione dei risultati da 201 a 210 su 278
  1. #201
    la funzione funziona meglio è ed è più facile da usare.... poi vedi te....

    chiami la funzione al posto di mysql_query()
    usi il primo elemento dell'array come un normalissimo valore di ritorno di mysql_query()
    stampi il secondo elemento dell'array dove ti pare

    tutto qui...

    poi se tu non sai fare le stesse cose neanche con mysql_query, è un problema tuo... e la soluzione sono i manuali

  2. #202
    Originariamente inviato da }gu|do[z]{®©
    torniamo al primo rimedio...

    dunque...
    fuori dal ciclo stampi la tabella e l'inizio della riga... poi nel ciclo la cella e la fine della riga solo se il record è dispari.. giusto? perchè parte da 0.. o cmq da un record pari se tu mostri un numero di dati pari per ogni pagina...

    Codice PHP:
    echo "<table><tr>";
    for (
    $i $da/2$i $a/2$i++)
       {
       echo 
    "<td> tutto quello che vuoi dentro la cella </td>";
       if (
    $i%!= 0)  echo "</tr>";
       }
    echo </
    table
    dovrebbe andare
    la pillola + discussa, grandissimo quidoz. io ho dovuto incolonnare x 2 i miei dati, se faccio come mi hai stampato qui mi stampa la metà dei dati settati prima. facendo così

    Codice PHP:
    echo "<table><tr>";
    for (
    $i $da$i $a$i++)
       {
       echo 
    "<td> tutto quello che vuoi dentro la cella </td>";
       if (
    $i%!= 0)  echo "</tr>";
       }
    echo </
    table
    mi esce xfetto, magari a qualcuno serve...

  3. #203
    Originariamente inviato da progalba
    la pillola + discussa, grandissimo quidoz
    nn è un segno positivo..

    Comunque.. la pillola è vecchiotta e voleva essere un esempio di come si ragiona per venire a capo di un problema un po' intricato e contorto.. ma sono stato io stesso intricato e contorto
    Con il tempo ho sviluppato una funzioncina che è molto più semplice e comoda da usare perchè ingloba tutto al suo interno e basta invocarla senza modificare quasi nulla rispetto ad una normalissima query:


    http://forum.guidoz.it/viewtopic.php?t=451




    PS: quidoz?

  4. #204
    Ciao a tutti.

    Ho creato un database di news utilizzando questa quida

    Fino a qualche mese fa non ho avuto problemi. Adesso che ho quasi 8.000 articoli inseriti mi ritrovo una paginazione mostruosa con circa 530 link (cioè tutti) per pagina.

    Cercavo qua e la un modo per minimizzare i link alle verie pagine ed ho trovato questa quida.

    Tuttavia il mio problema è che questa guida propone una soluzione del tipo:
    1 - con link "?pag=1"
    2 - con link "?pag=2"
    3 - con link "?pag=3"
    e così via.

    Mentre, seguendo lo schema proposto qui io mi ritrovo già indicizzate le seguenti pagine:
    1 - con link "?pag=0"
    2 - con link "?pag=15"
    3 - con link "?pag=30"
    ... e così via in mutltiplo di 15.

    Come posso fare per adattare questo script (di guidoz) alle mie pagine?

    Grazie anticipatamente.

  5. #205
    Utente di HTML.it L'avatar di moskitoita
    Registrato dal
    Feb 2004
    Messaggi
    1,255
    devi aver sbagliato qualcosa coi link, le due guide sono uguali, comunque a quanto ho capito basta dividere e moltiplicare per 15 quando necessario

  6. #206
    Infatti, mi riferisco sempre alla stessa guida...

    Ho provato a dividere o moltiplicare per 15 ma il casino è col comando $pagina++

    Ci sto sbattendo sopra da una settimana ma non ne ricavo nulla...

  7. #207
    dunque.. innanzitutto usa questa funzione:

    http://www.guidoz.it/forum/viewtopic.php?t=451

    che invocherai con:

    paging($query,15);

    dove 15 sarà il numero di record che vuoi mostrare in ogni pagina (così mi pare di capire che funzioni attualmente da te), ed il terzo parametro se omesso varrà 5 (i numero di link alle pagine "vicine").. altrimenti mettilo a piacere.

    In secondo luogo dovrai modificare la funzione per farla andare cmome vuoi tu...

    vediamo.. dovresti fare questo:

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

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

    in modo che parta da zero...

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

    in questo:
    //imposto il primo estremo del limit
    $da = $pag;

    in modo che il primo valore da estrarre sia uguale a quello di $pag... che però adesso sarà incrementato di 15 ogni volta in virtù della prossima modifica.... ovvero quella con cui sostituira tutti i "$pagina++" con "$pagina+$x_pag" (fallo con il find/replace di qualche editor per non scordartene nessuno) in modo che venga incrementato di 15 il valore di $pag (15 sarà contenuto in $x_pag se lo passi quando chiami la funzione, come sopra indicato)

    a questo punto dovrebbe andare come chiedi tu...

    ho fatto ad occhio, senza provare.. quindi prova tu e sappimi dire



  8. #208
    hum.. no.. niente.. così va risistemata tutta la parte di navigazione....

    prova a sistemartela una ttimo tu stesso.. non dovrebbe essere complicato.. segui il ragionamento che ho fatto io per la mia versione di funzione... ma adattala al tuo caso.. non dovresti avere grossi problemi..

  9. #209
    alla fine mi ci son messo.. non era complicato, ma mi ci sono intricato pure io con la veriabili varie.. divisioni e moltiplicazioni.. poi col sonno che c'ho oggi mi si intrecciavano gli occhi!


    Dovrebbe funzionare come vuoi tu... ho fatto un minimo di test... ma per il sonno di cui sopra non garantisco niente. L?unico problema credo sia quando l'utente modifica il valore in query string e ne mette no che non è multiplo di 15 (nel tuo caso)... i numeri delle pagine vengono fuori con la virgola...

    Però si sistema anche quello, arrotondando con floor credo... ma al momento mi si intrecciano gli occhi.. casomai ti dico meglio dopo


    Codice PHP:

    function paging($query,$x_pag=10,$num_links=5)
    {

     
    //conteggio i record presenti
     
    $resource =  mysql_query($query);
     
    $righe mysql_num_rows($resource);
     if (
    $righe == 0){ return false; }

     
    //calcolo il numero di pagine necessarie per visualizzare i dati
     
    $numpages floor($righe/$x_pag);
     
     
    //ottengo il numero di pagina, se manca lo imposto ad 0
     
    $pag = isset($_GET['pag'])? $_GET['pag'] : 0;
     
     
    //imposto il primo estremo del limit
     
     //appendo il limit alla query originaria
     
    $query .= " LIMIT $pag,$x_pag";
     
     
    //gesisco 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+1
      {
     
        for (
    $pagina 1$pagina <= $num_links$pagina++)
          {
            if ((
    $pagina-1)*$x_pag == $pag)
              
    $menu .= "<span class=\"pag_selected\">$pagina</span> ";
            else
              
    $menu .= "<a class=\"pag_link\" href=\"?pag=".($pagina-1)*$x_pag."$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/$x_pag <= floor($num_links/2))
      {
        for (
    $pagina=1$pagina<=$num_links$pagina++)
          {
            if ((
    $pagina-1)*$x_pag == $pag)
              
    $menu .= "<span class=\"pag_selected\">$pagina</span> ";
            else
              
    $menu .= "<a class=\"pag_link\" href=\"?pag=".($pagina-1)*$x_pag."$querystring\" title=\"Vai a pagina $pagina\">$pagina</a> ";
          }
        
    $menu .= "<a class=\"pag_link\" href=\"?pag=".$numpages*$x_pag."{$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/$x_pag > ($numpages-ceil($num_links/2)+1))
      {
          
    $menu .= "<a class=\"pag_link\" href=\"?pag=0{$querystring}\" title=\"Vai alla prima pagina\"> << </a> ";
        for (
    $pagina=$numpages-$num_links+1$pagina<=$numpages+1$pagina++)
          {
            if ((
    $pagina-1)*$x_pag == $pag)
              
    $menu .= "<span class=\"pag_selected\">$pagina</span> ";
            else
              
    $menu .= "<a class=\"pag_link\" href=\"?pag=".($pagina-1)*$x_pag."$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=0{$querystring}\" title=\"Vai alla prima pagina\"> << </a> ";
        for (
    $pagina = ($pag/$x_pag)-floor($num_links/2)+1$pagina <= $pag/$x_pag+ceil($num_links/2); $pagina++)
          {
            if ((
    $pagina-1)*$x_pag == $pag)
              
    $menu .= "<span class=\"pag_selected\">$pagina</span> ";
            else
              
    $menu .= "<a class=\"pag_link\" href=\"?pag=".($pagina-1)*$x_pag."$querystring\" title=\"Vai a pagina $pagina\">$pagina</a> ";
          }
        
    $menu .= "<a class=\"pag_link\" href=\"?pag=".$numpages*$x_pag."{$querystring}\" title=\"Vai all'ultima pagina\"> >> </a> ";
      }

     
    //restituisco il risultato della query, e l'output del menu'
     
    return array(mysql_query($query),$menu);

    (quota e fai copia incolla dal "sorgente")


    fammi sapere... ovviamente la invochi come ho detto sopra..

  10. #210
    Grazie mille Guidoz...
    adesso va che è una meraviglia. Ho solo inserito "pag_selected" e "pag_link" nel foglio di stile. Per il resto ho lasciato tutto così com'era e finalmente non mi ritrovo più 500 e passa link tutti in una pagina... Il menù di navigazione è perfetto.
    Grazie ancora...

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.