- Home
- Categorie
- Coding e Sistemistica
- PHP
- Sottrazione tra risultati
-
Sottrazione tra risultati
Ciao,
devo fare questa sottrazione:
$dato = prezzo_oggi - prezzo_di 10 records prima;
Non so come richiamare dal db il secondo cioè il sottraendo ...
Consigli?
Grazie e buon lavoro
:xNik
-
Ciao nik...
penso che nessuno possa esserti di aiuto (io compreso) se non ci dai più informazioni riguardo la tabella nel db e/o parte del codice.
Posta qualcosa che ti aiutiamo
-
@nik06 said:
Ciao,
devo fare questa sottrazione:
$dato = prezzo_oggi - prezzo_di 10 records prima;
Non so come richiamare dal db il secondo cioè il sottraendo ...
Consigli?
Grazie e buon lavoro
:xNik
Secondo me dovresti fare due query:
la prima richiama i "prezzo_oggi"
la seconda i "prezzo_di 10 records prima"
Poi sottrai.
-
Sì, è quello che sto cercando di fare ma mi risulta un pò difficile scrivere tutte e due le query, la sottrazione invece è Ok.
$dato = ($prezzo_oggi - $prezzo_10 records prima);
poi la variabile $dato la inserisco per esempio in una tabella.
Se puoi aiutarmi a scrivere le query, grazie.
Nik
-
@nik06 said:
Sì, è quello che sto cercando di fare ma mi risulta un pò difficile scrivere tutte e due le query, la sottrazione invece è Ok.
Anche a me risulta difficile aiutarti se non mi dai piu informazioni.
Puoi fare cosi.
Prima query selezioni i "prezzi_oggi"
Salvi in un array $arr1
Seconda query selezioni i prezzi di 10 giorni fa
Salvi in un array $arr2
for ($i=0;$i<10;$i++)
$diff*] = $arr1*-$arr2*
-
Come faccio a selezionare il prezzo di dieci giorni fa?
Cosa va scritto nella query?
$prezzo_10giornifa = "SELECT prodotto, timeStamps, prezzo, FROM tabella WHERE prodotto = '$prodotto' ORDER BY timeStamps DESC LIMIT 10";
è così che si estrae il prezzo del decimo giorno? oppure in questo modo mi estrae solo gli ultimi dieci records, dal primo al decimo?
Nik
-
Sto provando in questo modo:
$oggiedieci = "SELECT prodotto, timeStamps, prezzo FROM tabella WHERE prodotto = '$prodotto' ORDER BY timeStamps DESC LIMIT 10";
$d_oggiedieci = $db->sql_query($oggiedieci);
$row = $db->sql_fetchrow($d_oggiedieci);
$dato_oggi = $row['prezzo'];
$row = $db->sql_fetchrow($d_oggiedieci,9,'prezzo');
$dato_dieci = $row['prezzo'];
$diff = ($dato_oggi - $dato_dieci);
$diff = number_format($diff, 3, '.', '');
if ($diff>0.0) {
$out="<font class="">+" . $diff . "</font>";
}
else if ($diff<0.0) {
$out="<font class="">. $diff . "</font>";
}
else {
$out="<font class=""> 0.00</font>";
}ma la differenza la fa tra gli ultimi due records.
Consigli su come far prendere il decimo record?
Nik
-
ogni riga della tabella è relativa ad un giorno?
Ossia:
riga 1: 2 Agosto
riga 2: 3 Agosto
riga 3: 4 Agosto
etc...
-
Ciao,
se in php hai la data come timestamp non formattato (un numero es. questo: 85947388500) allora puoi trovare la data di 10 giorni fa prendendo la data di oggi (es quel numero) e sottraendoci (864000 che risultato di (86400*10) cioè il valore di 10 gg in timestamp)
Dopodiche potresti fare una ricerca con questi valori.
-
Scusate il ritardo,
sono stato fuori.
Rispondo ad Ayrton2001:
sì, ogni riga della tabella si riferisce a un giorno.
Rispondo a federico.p:
il timestamp non è formattato, si presenta così: 20070821.
Ho fatto una cosa di questo tipo richiamando le 10 righe (mi sono fermato alla terza):
$primoedecimo = "SELECT campo1, timeStamps, campo3 FROM tabella WHERE campo1 = '$campo1' ORDER BY timeStamps DESC LIMIT 10";
$d_primoedecimo = $db->sql_query($primoedecimo);
$row = $db->sql_fetchrow($d_primoedecimo);
$dato_oggi = $row['campo3'];
$row = $db->sql_fetchrow($d_primoedecimo);
$dato_due = $row['campo3'];
$row = $db->sql_fetchrow($d_primoedecimo);
$dato_tre = $row['campo3'];e così via fino a richiamare il decimo giorno. Secondo voi si può accorciare?
$diff = ($dato_oggi - $dato_dieci);
$diff = number_format($diff, 3, '.', '');