Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 22
  1. #11
    Originariamente inviato da Filippo_CL
    Adesso mi trovo in una situazione di stallo.
    Col codice che vedete sotto riesco ad ottenere l'impaginazione, ma praticamente a causa del while i dati vengono stampati a video uno sopra l'altro, nella mia niubbiagine non capisco dove sta l'errore.
    Codice PHP:
    $query="SELECT * FROM tabella WHERE (
    localita = 'milano'
    OR localita = 'palermo'"
    ;

    $risultato=mysql_query($query);
    while (
    $row mysql_fetch_array($risultato)) 
    {    
    for (
    $n=1;$n <=60$n++)
      {
    if (
    $row["elemento$n"]==&& $row["argomento$n"]==0.0)  
                            eval (
    "\$par$n = 'qualcosa';");
    elseif (
    $row["elemento$n"]>&& $row["argomento$n"]<=10 && $row["testo$n"]==0.0)
                            eval (
    "\$par$n = 'qualcosa';"); 

    if (
    $row['localita']=="milano")
            {eval (
    "\$parmi$n = \$par$n;");}
            elseif (
    $row['localita']=="palermo")
            {eval (
    "\$parpa$n =\$par$n;");}
    }
    $pagina = isset($_GET['pag']) ? (int)$_GET['pag'] : 1;

    if (
    $row["dato"]=="0")
    {
    if (
    $pagina<=3)
    {
    echo 
    "<div id='mi'>$parmi50</div>",
    "<div id='pa'>$parpa50</div>";
    }
    elseif (
    $pagina>3)
    {
    echo 
    "<div id='mi'>$parmi52</div>",
    "<div id='pa'>$parpa52</div>";
    }
    }
    else
    {echo 
    "nessun dato";}


    Nessuna idea?

  2. #12
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    probabilmente perchè sono stati inseriti così... se non specifichi un ordinamento il db te li presenta nudi e crudi così come li trova quindi ti conviene usare

    SELECT * FROM tabella WHERE (
    localita = 'milano'
    OR localita = 'palermo' ORDER BY campo


    inoltre puoi specificare ASC (1,2,3,4,5,6) oppure DESC (6,5,4,3,2,1)

    SELECT * FROM tabella WHERE (
    localita = 'milano'
    OR localita = 'palermo' ORDER BY campo ASC

    l' ordinamento avviene anche in base a piu campi sia numeri che strighe

    SELECT * FROM tabella WHERE (
    localita = 'milano'
    OR localita = 'palermo' ORDER BY nome,eta

    fai delle prove

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #13
    Intanto ancora grazie

    Mettendo order mi da errore, ma in ogni caso credo che il problema stia nella posizione del while o comunque nel while in generale.
    Col while messo in questo modo ho una visualizzazione corretta ma ripetuta tante volte quante sono $row = mysql_fetch_array($risultato) (nel mio caso 28), quindi ad esempio se su schermo devo avere "palermo", succede che ho "palermo" ripetuto 28 volte uno sopra l'altro (lo vedo visualizzando il sorgente della pagina dal browser). Se invece limito l'azione del while alla parte di codice sottostante non visualizzo nulla.
    Codice PHP:
    while ($row mysql_fetch_array($risultato))
    {    
    for (
    $n=1;$n <=60$n++)
      {
    if (
    $row["elemento$n"]==&& $row["argomento$n"]==0.0)  
                            eval (
    "\$par$n = 'qualcosa';");
    elseif (
    $row["elemento$n"]>&& $row["argomento$n"]<=10 && $row["testo$n"]==0.0)
                            eval (
    "\$par$n = 'qualcosa';");

    if (
    $row['localita']=="milano")
            {eval (
    "\$parmi$n = \$par$n;");}
            elseif (
    $row['localita']=="palermo")
            {eval (
    "\$parpa$n =\$par$n;");}



  4. #14
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    non credo di aver capito benissimo... :master:
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #15
    Originariamente inviato da dottwatson
    non credo di aver capito benissimo... :master:
    Non sono stato molto chiaro...

    Col codice di cui sopra ottengo:
    milano
    palermo
    milano
    palermo
    milano
    palermo
    etc etc ogni città ripetuta tante volte quante sono le righe estratte con la query dal database (nel mio caso 28).
    Io invece vorrei ottenere:
    Milano
    Palermo
    Ogni città ripetuta una sola volta.

  6. #16
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    ok sei stato chiaro

    SELECT * FROM tabella WHERE (
    localita = 'milano'
    OR localita = 'palermo' GROUP BY localita



    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  7. #17
    Mi da questo errore:

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result

  8. #18
    volendo potrebbe usare un DISTINCT sulla località

    una cosa tipo
    SELECT DISTINCT localita, altri_campi_da_estrarre FROM tabella WHERE
    localita = 'milano'
    OR localita = 'palermo'

    ---

    ti da errore per via della parentesi ( toglila che funziona pure in quel modo
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  9. #19
    Si, l'errore era dovuto ad una mia distrazione, ma anche mettendo ORDER o GROUP il risultato non cambia, mi ritrovo sempre le città ripetute.

  10. #20
    Originariamente inviato da Filippo_CL
    Si, l'errore era dovuto ad una mia distrazione, ma anche mettendo ORDER o GROUP il risultato non cambia, mi ritrovo sempre le città ripetute.
    usando il GROUP BY o il DISTINCT ragruppi o (pseudo) elimini i doppioni, quindi se non funziona in entrambi i modi c'è qualche problema da qualche altra parte, probabilmente nella tabella dei dati
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

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.