Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129

    Impostare dati estratti

    salve,
    ho un problema che non so risolvere...
    con delle query mi sono estratto dei dati dal database e li ho visualizzati con dei cicli... nel primo caso ho un ciclo while e nell'altro un $i , $i ++ ....
    cosí facendo con un echo stampo a video tutti i risultati estratti.

    Il problema č nell'impaginazione grafica di questi dati....

    Io con l'echo mi ritrovo a modificare solamente la parte di codice che sará uguale per ogni riga estratta, per esempio: <table><tr><td>$nome</td><td>$telefono</td></tr></table>

    che mi stampa:
    Giovanni 6589542
    Marco 45688126
    Luca 526526854
    maria 25862264

    Perķ io voglio che la lista estratta si alterni sopra due colonne, in questo caso...

    Giovanni 6589542 Marco 45688126
    Luca 526526854 maria 25862264

    Coma faccio?
    Grazie

  2. #2
    In qusto modo ti fa la paginazione in due colonne:
    Codice PHP:
      $result=//risultato della query
        
    while($row=mysql_fetch_array($result))
    {

       
    $nome[]=$row['nome'];
        
    $cognome[]=$row['telefono'];
    }
     
    $table="<table  width='200'border='1'>";
        
    $num_rows=ceil(count($nome)/3);

         
    $a=0;


       for(
    $i=0;$i<$num_rows;$i++)
       {

         
    $table.="<tr>";
        for(
    $k=0;$k<2;$k++)
        {
          
    $a++;
    if(@
    $nome[$a-1]==null)
        {

          
    $table.="<td width='33%'>&nbsp</td>";
        }
    else{
          
    $table.="<td width='33%' >".$nome[$a-1]." ".$cognome[$a-1]."</td>";

         }
          }
       
    $table.="</tr>";

         }




    $table.="</table>";
    echo 
    $table?> 

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    ciao E.d.i....
    innanzitutto grazie della risposta,
    ho visto il codice da te creato e a dire la veritá mi perdo sul ragionamento.
    Prima di usarlo e provare a farlo funzionare mi piacerebbe capirlo...

    perchč usi $num_rows=ceil(count($nome)/3); ?
    come mai 2 contatori?
    come č stato strutturato?

    non ho capito teoricamente come funziona... (ovviamente come vedi sono alle basi, sto apprendendo... )

    grazie

  4. #4
    $num_rows=ceil(count($nome)/3);
    Infatti hai ragione! c'e' 3 perche' io lo avevo provato a tre colonne,nel tuo caso va messo il 2...

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    Grazie...
    perfetto, funziona!!!
    se non ti disturbo mi potresti spiegare il funzionamento...
    ci sono alcuni passaggi che non capisco dato che non conosco le funzioni usate.

    come ad esepio...
    - perchč abbiamo usato nel cicli while le vabili con [] come ad esempio $nome[]= e non $nome= ?
    se ho intuito bene č per poi usare $nome[$a-1]... perķ non capisco come...

    - a che serve il . e @ davanti alle variabili ? (come ad esempio .$id[$a-1]. e anche @$id) ?

    - in generale ho intuito il ragionamento teorico, perķ ho molto dubbi...
    in poche parole chiuso il cilo while contiamo quanti volte č stato estratto il valore $nome e lo dividiamo per quante colonne vogliamo...
    iniziamo con il primo cilo for... e se i risultati sono piú di 0 si va avanti con il conteggio... stampiamo cosi tanti tr quante sono le righe...
    con il secondo ciclo for (($k=0;$k<2;$k++)) gli diciamo che se č minore di 2 deve andare avanti, altrimenti no...perchč?!?! Poi dopo mi perdo...
    Se sbaglio in qualcosa e puoi aiutare a capire ti ringrazio...

    E scusami se sono domande banali, perķ sono agli inizi e ci sono molte cose che non conosco... grazie

  6. #6
    $nome[] č un'array che viene popolato nel ciclo di tutti i valori del campo "nome".
    il "." non č altro che l'operatore di concatenazione fra stringhe.La "@" serve per non far apparire un eventuale messaggio di errore.
    Ho usato questo ragionamento con array fuori dal while,ma sarebbe stato possibile realizzare cio anche dentro il while...
    Cmq prima di arrivare a questo punto ti consiglio di non sottovalutare le basi del php.
    Il concetto e l'uso dell'operatore di concatenazione "." č di grande importanza nel php...

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    se studio BENE il manuale di php di html.it pensi che posso crearmi delle buone basi?
    quele manuale online mi consigli?
    Grazie

  8. #8
    Intanto puoi cominciare con questa:
    http://php.html.it/guide/leggi/99/guida-php-di-base/
    ma nche seguire il manuale ufficiale:
    http://www.php.net/manual/en/

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    grazie mille...
    questione di giorni e mi ci mettero seriamente!

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    rieccomi...
    sono riuscito a far funzionare il codice che mi hai passato, perķ ho il segente problema, che comunque non c'entra con il codice ma bensí č un problema di impostazione html... perķ potresti aiutarmi...

    In poche parole io per impaginare dentro il <td> i risultati della query ho inserito un <table> e una struttura in modo da sistemare graficamente gli i dati estratti!
    Il problema č che per internet explorer 7 tutto va bene e funziona... perķ per explorer 8, firefox, e cmq tutti i navigadori aggiornati, la tabella mi sale sproporzionata... č come se non mi leggesse gli height dei <tr> e l'altezza della tabella fa di testa sua!!!
    Secondo me non tengo presente alcuni valori che devo impostare nelle tabelle e quindi non ne sono capace per le ultime versioni dei navigatori!
    (tra l'altro in explorer, affianco all'icona che permette di aggiornare, mi spunta l'icona di pagina con errori e autocorrezione per i nuovi navigatori)...
    Adesso posto il codice...


    $table="<table width='900' border='0' cellpadding='3'>";
    $num_righe=ceil(count($id)/2);
    $a=0;


    for($i=0;$i<$num_righe;$i++)
    {

    $table.="<tr>";
    for($k=0;$k<2;$k++)
    {
    $a++;
    if(@$id[$a-1]==null)
    {

    $table.="<td></td>";
    }
    else{
    $table.="<td>
    <table border='1' background='imagenes/fondolocutor.png' width='445' border='0'>
    <tr><td width='50'></td><td><p class='titulotabla'><font color='#686363'>" .$id[$a-1]." - </font><font color='#4997ab'>".$nombre[$a-1]."</font></p></td>
    <tr>
    <td><table width='445'>
    <td width='50'>[img]imglocutores/".$foto[$a-1]."[/img]</td>
    <td>
    <table>
    <tr>
    <td><p class='texttabla'>".$texto[$a-1]."</p>
    </td>
    </tr>
    <tr>
    <td><p class='titulotabla'><font color='#4997ab'>RANGO:</font><font color='#686363'> ".$rango[$a-1]."</font></p></td></tr>
    </table>
    </td>
    <td>
    FLASH
    </td></tr>
    </table>
    </td></tr></table>
    </td>
    ";

    }
    }
    $table.="</tr>";

    }
    $table.="</table>";

    echo $table;

    ?>


    Puoi aiutarmi... o chiunque possa... a sapere dove e cosa sbaglio??? Grazie

    PS:tra poco iniziero a studiarmi i manuali GRAZIE

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 © 2024 vBulletin Solutions, Inc. All rights reserved.