select diversa in base alla tabella

Ho un problema che non so come risolvere!

Ho 6 tabelle pippo1, pippo2, pippo3, pippo4, pippo5, pippo6

Devo aggiungere i totali nell'ultima riga (ma a volte il totale non è solo una somma ma una formula)

ad esempio per la tabella pippo1 il totale della colonna mele sarà (totalemele/totalepere)

Non sono molto pratica è questa è l''unica soluzione ch ho trovato (se me ne sapete dire una più veloce sarebbe ancora meglio)

//sum mele
$query = "SELECT SUM(mele) tot FROM [$azienda]";
$queryexe = mssql_query($query); 
$row2 = mssql_fetch_assoc($queryexe); 
$totmele = $row2['tot'];   
########################
//sum pere
$query = "SELECT SUM(pere) tot FROM [$azienda]";
$queryexe = mssql_query($query); 
$row2 = mssql_fetch_assoc($queryexe); 
$totpere = $row2['tot'];   
########################
// divisione melepere
$melepere = $totmele / $totpere;

//$azienda è il nome della tabella che scelgo da combobox

Il totale della colonna mele sarà diverso in base al nome della tabella

per la tabella pippo1 e pippo3 il totale della  colonna "mele" lo devo ottenere con la  formula (totalemele+totalepere)

per la tabella pippo2 e pippo6 il totale della colonna "mele" lo devo ottenere con la  formula(tototalemele / totalepere)

per la tabella pippo4 il totale della colonna "mele" lo devo ottenere con la  formula (totalemele+totalepere)/(totale meloni)

per la tabella pippo5 il totale della colonna "mele" lo devo ottenere con la  formula (totalemele/totalepere)*(totale fragole)

Il mio vero problema che non so come gestire l'if

dovrebbe essere qualcosa del tipo

se la tabella è pippo1 o pippo 3

fai la select(totalemele+totalepere)

se la tabella è pippo2 e pippo6

fai la select(tototalemele / totalepere)

se la tabella è pippo4

fai la select(totalemele+totalepere)/(totale meloni)

se la tabella è pippo5

fai la select(totalemele/totalepere)*(totale fragole)

Posto un pò di codice per farvi capire come estraevo i campi della tabella

//faccio apparire nel combobox le tabelle che mi interessano (in realtà nel db ne ho più di 6 ma estraggo solo quelle che mi interessano)
$sql = "SELECT name FROM sysobjects WHERE xtype = 'U' AND name LIKE 'pippo%' ORDER BY name";

// CODICE COMBOBOX

<td width="450px"bgcolor="silver"><font face="Arial,sans-serif" color=black><font style="font size=13"><form name="nome" method="post" action="testtz2.php"><br />
<b>Select Account: </b> <select name="nome" onChange="submit()">
<option value=""></option>

//codice con cui decido quali colonne estrarre dalla tabella
if(isset($_POST['nome'])) {
   $azienda = $_POST['nome'];
   if($azienda == "pippo"){
       $sql = "SELECT Queue, mele,pere, banane ,fragole 
       from [$azienda]";
    }else if($azienda == "pluto"){
        $sql = "SELECT Queue, mele,pere, banane ,fragole, angurie, meloni 
       from [$azienda]";
    }else{
       $sql = "";
       echo "errore nella definizione del nome azienda";
   }
}

Spero di che abbiate capito il problema e di avervi dato tutte le informazioni necessarie per potermi aiutare

grazie Lid

inviato 8 anni fa
lid
lid
1
X 0 X

A prima vista mi sembra che tu abbia seguito la strada più corretta e non vedo altre alternative.

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Bè questo mi rassicura un pò  :)

il problema è che non so creare  l'if :-[

se la tabella è pippo1 o pippo 3

fai la select(totalemele+totalepere)

se la tabella è pippo2 e pippo6

fai la select(tototalemele / totalepere)

se la tabella è pippo4

fai la select(totalemele+totalepere)/(totale meloni)

se la tabella è pippo5

fai la select(totalemele/totalepere)*(totale fragole)

(la select riesco a farla, o meglio sto studiando per farla, ma proprio tutto il codice per l'if non so come crearlo

risposto 8 anni fa
lid
lid
1
modificato 8 anni fa
X 0 X

ma l'ultimo blocco di codice che hai riportato non fa più o meno una cosa simile?

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Avevo fatto la domanda e scritto la soluzione senza rendermene conto? sono proprio un'utonta!

Ora ci provo e vedo se funziona!

Grazie  :)

risposto 8 anni fa
lid
lid
1
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda