Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466

    [MySQL/PHP] Estrarre dati da db e stamparli su + tabelle HTML

    Mi spiego meglio.

    Ho una tabella così fatta:

    Tabella(chiave,campo1,campo2,campo3,campo4)

    Questa tabella contiene diversi dati.

    Supponiamo che io faccia un interrogazione simile al DB:

    SELECT camp1, campo2, campo3, campo4 FROM Tabella WHERE chiave=12

    Mi vengono restituite 43 righe.

    Io vorrei che i risultati mi venissero visulaizzati in tre tabelle HTML, la prima di 20 righe, la seocnda di 20 righe e la terza di 3 righe.

    Ho trovano una soluzione ma è troppo cervellotica in quanto prima con un while ($row=mysql_fetch_array(query)) faccio stampare tutti i risultati in dei campi hidden e poi con una funzione ad hoc ed una marea dicicli for spezzetto il tutto e lo tabellizzo.

    Mi suggerite una soluzione + intelligente?

    Grazie, Mc

  2. #2
    le tre tabelle devono stare nella stessa pagina o suddivise in più pagine?

    Se rispondi la seconda prova a dare un'occhiata a questo ottimo articolo: Paginazione di dati; oppure guarda anche questa ottima pillola: Gestire le paginazioni

    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Devono stare nella stessa pagina.

    Cia, Mc

  4. #4
    allora non capisco una cosa...che senso ha suddividere i dati così se tanto stanno nella stessa pagina? :master:

    comunque lo puoi fare facendo tre cicli diversi nelle posizioni in cui vuoi che ti vengano stampate le tre tabelle. Un ciclo ti stampa i primi 20 record, un secondo i secondi etc...

    Puoi gestire i tre cicli in modo indipendente con mysql_fetch_row()

    bye
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    probabilmente c'è qualcosa di più elegante, comunque:


    Codice PHP:
    $quanti=count($array);
    $i=1;
    echo 
    "<table>\n";
    foreach(
    $array as $k => $v )
    {
        echo 
    "\t<tr>\n";

        echo 
    "\t\t<td>\n";
        echo 
    "\t\t\t{$v}\n";
        echo 
    "\t\t</td>\n";

        echo 
    "\t</tr>\n";
        
        if(
    $i==$quanti)
            echo 
    "</table>\n";
        elseif((
    $i%20)==0)
        {
            echo 
    "</table>\n";
            echo 
    "
    \n"
    ;
            echo 
    "<table>\n";
        }

        
    $i++;

    qua ho usato un foreach su $array ma è intuibile come si può modificare

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Per prima cosa grazie a tutti.

    Ho bisogno di suddividere su + tabelle perchè devoimpaginare il tutto in modo che quando si stampa ogni tabella venga stampata su di un A4.

    Alla fine ho risolto così:

    Codice PHP:
    $i=0;
        while(
    $row_item=mysql_fetch_array($result_item))
        {
            if (
    fmod($i,20)!=0
            {
                echo
    "<TR>
                     <TD>[B]
    $row_item[0][/B]</TD>
                    <TD>[B]
    $row_item[1][/B]</TD>
                    <TD>[B]
    $row_item[2][/B]</TD>
                    <TD>[B]
    $row_item[3][/B]</TD>
                    <TD>[B]
    $row_item[4][/B]</TD>
                    <TD>[B]
    $row_item[5][/B]</TD>
                 "
    ;
                 echo
    "</TR>";
                 
    $i++;
                 if (
    fmod($i,20)==0
                 {
                    echo
    "</TABLE>

    ;
                 }
            }
            else
            {
                echo
    "<TABLE border=\"1\">";
                 echo
    "
                     <TD>[B]Campo 1[/B]</TD>
                    <TD>[B]Campo 2[/B]</TD>
                    <TD>[B]Campo 3[/B]</TD>
                    <TD>[B]Campo 4[/B]</TD>
                    <TD>[B]Campo 5[/B]</TD>
                    <TD>[B]Campo 6[/B]</TD>
                 "
    ;
                 echo
    "</TR>";
                echo
    "<TR>
                     <TD>
    $row_item[0]</TD>
                    <TD>
    $row_item[1]</TD>
                    <TD>
    $row_item[2]</TD>
                    <TD>
    $row_item[3]</TD>
                    <TD>
    $row_item[4]</TD>
                    <TD>
    $row_item[5]</TD>
                 "
    ;
                 echo
    "</TR>";
                 
    $i++;
            }
        } 
    Ovviamente la cosa più sensata è inserire il valore 20 all' interno diuna variabile in modo che lo si possa poi modificare a piacimentpo in base alle proprie esigenze.

    Che ne pensate?

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Ora provo anche ilmetodo di Eyescream che ringrazio.

    Ciao; Mc

  8. #8
    Originariamente inviato da mchorney
    Per prima cosa grazie a tutti.

    Ho bisogno di suddividere su + tabelle perchè devoimpaginare il tutto in modo che quando si stampa ogni tabella venga stampata su di un A4.

    Alla fine ho risolto così:

    Codice PHP:
    $i=0;
        while(
    $row_item=mysql_fetch_array($result_item))
        {
            if (
    fmod($i,20)!=0
            {
                echo
    "<TR>
                     <TD>[B]
    $row_item[0][/B]</TD>
                    <TD>[B]
    $row_item[1][/B]</TD>
                    <TD>[B]
    $row_item[2][/B]</TD>
                    <TD>[B]
    $row_item[3][/B]</TD>
                    <TD>[B]
    $row_item[4][/B]</TD>
                    <TD>[B]
    $row_item[5][/B]</TD>
                 "
    ;
                 echo
    "</TR>";
                 
    $i++;
                 if (
    fmod($i,20)==0
                 {
                    echo
    "</TABLE>

    ;
                 }
            }
            else
            {
                echo
    "<TABLE border=\"1\">";
                 echo
    "
                     <TD>[B]Campo 1[/B]</TD>
                    <TD>[B]Campo 2[/B]</TD>
                    <TD>[B]Campo 3[/B]</TD>
                    <TD>[B]Campo 4[/B]</TD>
                    <TD>[B]Campo 5[/B]</TD>
                    <TD>[B]Campo 6[/B]</TD>
                 "
    ;
                 echo
    "</TR>";
                echo
    "<TR>
                     <TD>
    $row_item[0]</TD>
                    <TD>
    $row_item[1]</TD>
                    <TD>
    $row_item[2]</TD>
                    <TD>
    $row_item[3]</TD>
                    <TD>
    $row_item[4]</TD>
                    <TD>
    $row_item[5]</TD>
                 "
    ;
                 echo
    "</TR>";
                 
    $i++;
            }
        } 
    Ovviamente la cosa più sensata è inserire il valore 20 all' interno diuna variabile in modo che lo si possa poi modificare a piacimentpo in base alle proprie esigenze.

    Che ne pensate?
    It's ok. Avevo letto prima di uscire e ti avrei proposto questa stessa soluzione. Uso di if/elseif...


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Grazie piero, sei sempre gentile.

    E' da un po' che manco dal forum ma lo sviluppo di questa applicazione mi ha risucchiato in laboratorio, per fortuna che ho quasi finito.

    Ciao, Mc

  10. #10
    Ciao ragazzi,
    ho un problema simile a quello precedentemente discusso.

    Ho una tabella nel db con 4 campi:

    Id - Id categoria - Testo domanda - Tag associato

    Per ottenere i dati faccio la mia bella select : SELECT * from Nome_tab

    Ora: mettiamo il caso che io voglia stampare le prime sei domande di questa tabella senza dover ritoccare l'sql ma scrivendo in php. Come potrei fare?
    Stavo provando con un ciclo for ma non ci sono ancora riuscito.

    Penso si tratti di un for annidato al while($row=mysql_fetch_assoc($q)) dove per $q si intende appunto la query al db.

    Sapreste dirmi come posso fare? Grazie mille per il vostro aiuto.

    Andrea

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.