Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    75

    Visualizzare dati estratti db in modo sequenziale

    Salve, ho dei dati in un db mysql. Taldi dati sono aggiornati settimanalmente, quindi ho una cosa del genere:

    tabella dati:

    id
    settimana
    dati1
    dati2
    etc..

    Nel campo settimana mi ritrovo la settimana in modo numerico es. 18,19,20,21,22 ecc..

    Fino ad ora estraggo e visualizzo i dati in una tabella in modo verticale, con un while, ora io vorrei visualizzarli in orizzontale, come potrei fare? Ho fatto alcune prove ma il risultato è disastroso. Ecco quello che utilizzo ora:

    Codice PHP:
    Query estrazione dati */
    $sql "SELECT * FROM dati_tb WHERE settimana between '$primo_parametro' and '$secondo_parametro' and cod_cliente = '$codice_cliente' ORDER BY  cod_cliente, settimana ASC ";
    $res mysql_query($sql);
    echo 
    '<div class="panel panel-primary">  <div class="panel-heading">Settimana Inizio:   '.$primo_parametro.'   -   '.'Settimana Finale:   '.$secondo_parametro.'</div>  <div class="panel-body"><table class="table table-condensed table-striped table-hover"><tr>    <th>Codice Cliente</th>    <th>Nome</th>    <th>Vendite</th>    <th>Settimana</th></tr>    ';while ($row mysql_fetch_array($res)){echo '<tr><td>' $row['cod_cliente'] . '</td><td>' $row['nome'] . '</td><td>' $row['vendite'] . '</td><td>' $row['settimana'] . '</td></tr><tr></tr>';}echo '</table>  </div></div>'
    Ultima modifica di bivio_08; 18-07-2015 a 19:39

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    75
    Aggiungo una nota
    I dati mi vengono visualizzati in questo modo:

    Codice Cliente Nome sett. Vendite
    569 Mario Rossi 20 € 1.000,00
    569 Mario Rossi 21 € 500,00
    569 Mario Rossi 22 € 1.500,00
    256 Luca Verde 20 € 750,00
    256 Luca Verde 21 € 0
    256 Luca Verde 22 € 2.000,00

    Io invece vorrei una cosa del genere:

    Codice Cliente Nome 20 21 22
    569 Mario Rossi € 1.000,00 € 500,00 € 1.500,00
    256 Luca Verde € 750,00 € 0 € 2.000,00

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Premetto che i campi della tua tabella si chiamano idcliente, nome, settimana, vendite.
    La tabelle deve essere ordinata per idcliente e settimana ASC, proprio come hai fatto.

    Lo script gestisce anche i "buchi" nelle settimane. Per esempio un cliente che non ordina sempre qualcosa ogni settimana.


    Codice PHP:
    <?php
    $sql 
    "SELECT idcliente,nome,settimana,vendite FROM dati_tb WHERE settimana between '$primo_parametro' ".
           
    "and '$secondo_parametro' and cod_cliente = '$codice_cliente' ORDER BY  cod_cliente, settimana ASC ";
    ...
        
    $array         = array();
    $sav_idcliente = -1;
    $index         0;
    $min_settimana 99;
    $max_settimana 0;
    while (list(
    $idcliente,$nome,$settimana,$vendite ) = mysql_fetch_array($res)) {
     if (
    $settimana $min_settimana) {$min_settimana $settimana;} 
     if (
    $settimana $max_settimana) {$max_settimana $settimana;}
     
     if (
    $sav_idcliente != $idcliente) {
      
    $index++; 
      
    $sav_idcliente              $idcliente;
     
    $array[$index]['idcliente'] = $idcliente;
     
    $array[$index]['nome']      = $nome;
     }
     
    $array[$index][$settimana]   = $vendite;
    }
    ?>
    <table summary="" border="1">
      <th>Codice cliente</th>
     <th>Nome</th><?php
     
    for ($i=$min_settimana;$i<=$max_settimana;$i++) {?>
     <th><?php print $i?></th><?php
     

      foreach (
    $array as $key => $sub_array) {?>
     <tr>
      <td><?php print $sub_array['idcliente']; ?></td>
      <td><?php print $sub_array['nome']; ?></td><?php
      
    for ($i=$min_settimana;$i<=$max_settimana;$i++) {
        if (! isset(
    $sub_array[$i])) {?>
        <td>0</td><?php
       
    } else {?>
        <td><?php print $sub_array[$i]; ?></td><?php
       
    }
      }
    ?>
     </tr><?php
      
    }?>
    </table>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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.