Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [problema]Estrapolazione dati da db

    ciao a tutti
    ho un problemino

    allora, io ho un database fatto in questo modo:
    codice:
    id|nome_modello|inizio_lotto|fine_lotto|data
    id --> chiave primaria (int)
    nome_modello --> nome del modello di una certa macchina
    inizio_lotto --> il numero di serie della prima macchina che compone il lotto
    fine_lotto --> l'ultimo numero di serie della macchina che completa il lotto
    data --> data (mm/aa)

    dentro il db è cosi

    codice:
    -------------------------------------------------------------
     id | nome_modello | inizio_lotto   | fine_lotto |   data   |
    -------------------------------------------------------------
      1 | macchina_1   |       1        |    100     |  04/05   |
      2 | macchina_2   |       1        |     50     |  05/05   |
      3 | macchina_3   |       1        |     75     |  07/05   |
      4 | macchina_3   |      76        |     98     |  12/05   |
      5 | macchina_1   |     101        |    130     |  01/06   |
      6 | macchina_2   |      51        |    125     |  03/06   |
      7 | macchina_1   |     131        |    170     |  03/06   |
      8 | macchina_3   |      99        |    145     |  07/06   |
      9 | macchina_1   |     171        |    199     |  10/06   |
     10 | macchina_2   |     126        |    140     |  01/07   |
    -------------------------------------------------------------
    da questo db io vorrei calcolare il totale per ogni modello di macchina
    e stampare una tabella cosi

    codice:
       modello  |  tot  |
    --------------------
     macchina_1 |  200
     macchina_2 |  375
     macchina_3 |  158
    --------------------
    e cosi via per ogni modello di macchina.

    L'unica cosa che ero riuscito a fare era calcolare il numero di macchine presenti in ogni lotto facendo Tot_lotto = fine_lotto - inizio_lotto + 1

    ora per mi servirebbe distinguere e avere un totale per ogni modello di macchina anzi che solo di lotto.
    qualcuno sa aiutarmi? vi scongiuro ^^

    spero possiate aiutarmi
    e grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    prova così ma nn garantisco...

    Codice PHP:
    $total=0;
    $query=mysql_query("SELECT inizio_lotto - fine_lotto AS differenza FROM tabella WHERE nome_modello = 'macchina_1'");
    while (
    $res=mysql_fetch_assoc($query))
      {
      
    $total+=str_replace("-","",$res['differenza']);
      }
    echo 
    $total
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    il fatto è che io ho dato un esempio di 3 macchine
    e mi servirebbe un qualkosa di dinamico che riconosca da solo i vari modelli che possono 3 o mille ma che io non sono obbligato a sapere per fare lo script
    non so se riesco a spiegarmi.

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    intanto provalo su un modello, così vedi se ti gestisce correttamente le operazioni.

    in un secondo momento penserai a renderla indipendente dal numero di macchine presenti

    una cosa alla volta

    pio magari qualche guru del forum ti farà la query completa a botta singola...

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

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5
    Codice PHP:
    $total 0;
    $query mysql_query("SELECT fine_lotto - inizio_lotto + 1 AS differenza FROM tabella WHERE nome_modello = 'MODELLO'");
            while (
    $res = @mysql_fetch_assoc($query))
            {
                
    $total += str_replace("-","",$res['differenza']);
            }
            echo 
    $total
    ok ho fatto una piccola modifica cioè ho invertito fine ed inizio in quanto il numero di fine_lotto è sempre maggiore a quello di inizio e poi ho aggiunto il + 1 perchè in una sottrazione del genere se no gli estremi non vengono mai inclusi.

    ora come posso renderla indipendente??
    ciao e grazie




  6. #6
    ce l'ho fatta
    o almeno mi pare


    Codice PHP:
    <?php
            $qmod 
    = @mysql_query("SELECT DISTINCT modello FROM tabella");
            while (
    $ris = @mysql_fetch_assoc($qmod))
            { 
                
                 
    $total 0;
                 
    $query = @mysql_query("SELECT fine_lotto - inizio_lotto + 1 AS differenza FROM tabella2 WHERE nome_modello = '".$ris['modello']."'");
                 while (
    $res = @mysql_fetch_assoc($query))
                 {
                     
    $total += str_replace("-","",$res['differenza']);
                 }
                 echo 
    '<tr align="center" bgcolor="#ccff99"><td>'.$ris['modello'].'</td><td>';
        
                 echo 
    $total.'</td></tr>';
           }
    ?>
    devo controllare che i risultati siano giusti ma ad un primo sguardo mi pare di si
    ciao a tutti e grazie doc.

  7. #7
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:
    <?php
            $model_list 
    mysql_query("SELECT modello FROM tabella GROUP BY modello") or die(mysql_error());
            while (
    $modello mysql_fetch_assoc($model_list))
            {
                
                 
    $total 0;
                 
    $riga mysql_query("SELECT fine_lotto - inizio_lotto + 1 AS differenza FROM tabella2 WHERE nome_modello = '{$modello['modello']}'") or die(mysql_error());
                 while (
    $val_riga mysql_fetch_assoc($riga))
                 {
                  
    $total += str_replace("-","",$val_riga['differenza']);
                 }
                 
    mysql_free_result($riga);
                 echo 
    '<tr align="center" bgcolor="#ccff99"><td>'.$modello['modello'].'</td><td>';
        
                 echo 
    $total.'</td></tr>';
           }
           
    mysql_free_result($model_list);
    ?>
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.