- Home
- Categorie
- Coding e Sistemistica
- Coding
- Sottrazione tra risultati
- 
							
							
							
							
							
Sottrazione tra risultatiCiao, 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, '.', '');