Operazioni tra record

danilob

Utente Attivo
3 Feb 2007
124
0
0
ciao vorrei calcolare la differenza tra due numeri inseriti in date diverse:

esempio:
data | PESO
__________________
15/11/2011 |peso: 70

15/12/2011 | peso: 65

vorrei calcolare la diffrenza tra il peso delle due date

Grazie per l'aiuto
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
se le date sono uniche, cioè se NON hai ad esempio

data | PESO
__________________
15/11/2011 |peso: 70
15/11/2011 | peso 150
15/12/2011 | peso: 65

fai la solita select
PHP:
<?php
//...
$ris=mysql_query("SELECT peso FROM tabella WHERE data ='$data_1' OR data='$data_2' ORDER BY data");
while($riga=mysql_fetch_assoc($ris)){
	$peso[]=$riga['peso'];
}
$dif=$peso[0]-$peso[1];
echo "differenza peso: $dif kg";
//...
?>

dimenticavo piccolo dubbio:
non è che nel campo peso ci "sia peso: 65" ?
 

danilob

Utente Attivo
3 Feb 2007
124
0
0
re

grazie ma non mi è chiara una cosa: le variabili $data1 $data due io non le ho definite! Io vorrei in automatico la differenza tra gli ultimi due pesi inseriti..
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
vorrei calcolare la differenza tra due numeri inseriti in date diverse:

grazie ma non mi è chiara una cosa: le variabili $data1 $data due io non le ho definite! Io vorrei in automatico la differenza tra gli ultimi due pesi inseriti..
tra quello che hai chiesto nel primo post e quello nel secondo c'è un po' di differenza

se vuoi la differenza del peso tra due date devi valorizzare in qualche modo le due date
nel secondo fare la select order by data desc limit 2 e quindi prelevare i due valori, il primo è relativo alla data più recente il secondo alla precedente.

stai attento però a come hai inserito le date (formato) perche puo capitarti che 15/01/1900 risulti più vecchia di 10/01/2011, se hai inserito le date in formato timestamp o date non dovresti avere problemi
 

danilob

Utente Attivo
3 Feb 2007
124
0
0
re

grazie moltissme funziona...

Ultima cosa se volessi specificare con il segno + o -.

Esempio +9 kg rispetto alla precedente o -9kg rispetto alla precedente..
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
il segno - lo ritorna sempre se vuoi anche il segno + , potresti farti questa funzione o simile

PHP:
<?php 
function segno($d){ 
    $segno="";//se == 0 ritorna senza segno
	if( $d > 0 ){$segno="+";}elseif( $d < 0 ){$segno="-";}
	return $segno.$d;
} 
//....
echo segno($dif)
?>
o se vuoi anche calcolarti la differenza
PHP:
<?php 
function segno($n_1, $n_2){ 
    $segno="";//se == 0 ritorna senza segno
	$d=$n_1-$n2;
	if( $d > 0 ){$segno="+";}elseif( $d < 0 ){$segno="-";}
	return $segno.$d;
} 
//....
echo segno($peso_1,$peso_2)
?>
 

danilob

Utente Attivo
3 Feb 2007
124
0
0
grazie

grazie sei veramente un grande...

Vorri chiederti un'altra cosa..... Nelle relazioni molti a molti sono in difficolta nella scrittura del codice php di inserimento nella 3 tabella. Faccio un esempio concreto:

Ipotesi di databse in cui voglio registrare le preferenze sportive dei contatti:

TABELLA CONTATTI

ID| COGNOME| NOME | INDIRIZZO
1 | BALDI | ANDREA | PIAZZA CARDUCCI
2 | ROSSI | FULVIO | VIA MARCONI 7

TABELLA SPORT

SPORT| Nome esteso
1 | Calcio
2 | Tennis

TABBELA DI APPOGGIO

ID|SPORT
1 | 1
2 |2



$query ="INSERT INTO Tabella_CONTATTI Set

COGNOME='$cognome',
NOME = '$nome',
INDIRIZZO='$indirizzo'";

poi non riesco a andare avanti.........


grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
non capisco molto bene quello che vuoi fare.
dimmi se sbaglio.
inserisci il "contatto" (es. 1 | BALDI | ...) che è interessato a uno sport (es. 2 | Tennis)
nella tabella "appoggio" voi inserire l'id del contatto e quello dello sport in modo da vedere che BALDI è interessato al Tennis? cioe (come ai detto) creare un collegamento tra contatto e sport?
se è così, secondo me, devi intanto modificare la tabella appoggio in
id | id_sport | id_contatto
poi immagino che i dati del contatto tu li inserisca tramite un form (giusto?), nel form, quando inserisci il contatto scegli anche a quale sport è interessato?
se è così, scelto lo sport (potresti mettere una <select> che preleva i dati dalla tabella sport) ne trasmetti l'id, poi
dopo l'insert del contatto metti
PHP:
//...
$id_sport_scelto="non so come lo prelevi";// tramite un $_POST ??

$query ="INSERT INTO Tabella_CONTATTI.........";
mysql_query($query);
$id_ultimo_contatto_inserito=mysql_insert_id();//preleva l'ultimo id inserito (autouncrement primary key)
//se fai la tabella come ho indicato sopra
$query_2="INSERT INTO appoggio(id_sport,id_contatto) VALUES('$id_sport_scelto', '$id_ultimo_contatto_inserito');
mysql_query($query_2);
//....
 

danilob

Utente Attivo
3 Feb 2007
124
0
0
le tabelle sono realmente tre...

Io non riesco (ma nenche con le due tabelle) a capire come inserire la chiave esterna = a quella della tabella uno.


esempio

ANAGRAFICA
ID NOME
1 ROSSI

CAP
ID CAP CAP_ESTERNO
2 12100 1

COM FACCIO a inserire il CAP_ESTERNO uguale all'ID presente in ANAGRAFICA?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
ti faccio un esempio
nella pag. form inserisci il nome e selezioni il cap
HTML:
<form name="form1" method="post" action="elabora.php">
  <p>nome <input name="nome" type="text" id="nome"></p>
  <p>CAP 
    <select name="cap"><!--questa select potrai renderla dinamica es. prelevando i cap da una tabella elenco_cap -->
      <option>--seleziona--</option>
	  <option value="12100">12100</option>
	  <option value="22100">22100</option>
      <option value="35020">35020</option>
      <option value="50100">50100</option>
    </select>
  </p>
  <p><input name="invia" type="submit" id="invia" value="Invia"></p>
</form>
nella pag elabora.php leggi i dati dal form e fai gli inserimenti nelle tabelle
PHP:
<?php
//dati di connessione
$nome=$_POST['nome'];
$cap=$_POST['cap'];
//vari controlli sui post
//inserisco il nome nella tabella anagrafica
$q_1="INSERT INTO anagrafica(nome) VALUES('$nome')";
$ris=mysql_query($q_1);
//il record inserito in tabella avrà il suo id e quindi lo leggo
$id_ultimo_inserito=mysql_insert_id();
//quindi inserisco nella tabella cap
$q_2="INSERT INTO cap(cap, cap_esterno) VALUES('$cap','$id_ultimo_inserito')";
$ris=mysql_query($q_2);
//.....
?>
almeno penso che sia questo quello che chiedevi
 

danilob

Utente Attivo
3 Feb 2007
124
0
0
grazie

scusa il ritardo nella risposta.. Volevo ringraziarti moltissimo anche se non ho ancora provato..

Quindi in ogni database anche molti a molti io dvo ricavarmi l'ultimo id inserito e poi andre a inserirlo nella tabella collegata?

dico bene?

sai ho comprato una guida mysql php ma non è così dettagliata e nel web non ho trovato insert in php con relazioni 1 a molti.


Per questo ti ringrazio ancora moltissimo e se avessi dei link ti sarei grato me li inviassi o anche il titolo di una guida che tratta l'argomento...


Ah dimenticavo sperando di non disturbarti prima ti aguro un felice 2012

danilo
 

danilob

Utente Attivo
3 Feb 2007
124
0
0
elenco a discesa

vorrei chiederti un'altra cosa :))

in tabellle correlate mi servirebbe nel mio form avere un'elenco a discesa tra cui sceliere ad esempio il tipo di sport.. Tale elenco dovrebbe essere reperito dal dbase... Ed è questo che non riesco a fare..
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
se hai una tabella in cui sono registrati i tipi di sport, potresti fare così
<?
PHP:
php
//.....
$q_str="SELECT * FROM tabella ORDER BY sport";
$q=mysql_query($q_str);
echo "<select name=\"sport\" id=\"sport\">";
echo "<option value=\"\">seleziona uno sport</option>";
while($riga=mysql_fetch_array($q)){
	$valore=$riga['sport'];//o per es. l'id $riga['id'] in funzione di cosa vuoi inviare con la select
	$testo=$riga['sport'];
	echo "<option value=\"$valore\">$testo</option>";
}
echo "</select>";
//....
?>
 

danilob

Utente Attivo
3 Feb 2007
124
0
0
re

grazie scusa il ritrdo ma sono stato fuori x lavoro... Provo e ti faccio sapere..

grazie mille

Danilo
 

danilob

Utente Attivo
3 Feb 2007
124
0
0
ti chiedo delucidazioni circa una relazione 1:2

Ho una tabella livelli : id_livello pagina tipo_livello


voglio che ogni livello appartenga a + administrators:

ho creato dentro la cartella administrators un ID_Livelli_Admin che deve essere=id_livello

quando vado a inserire $q3="INSERT ignore INTO Livelli (tipo_livello, pagina) VALUES ('$livello','$pagina')" or die (mysql_error())

mi reinserice gli stessi dati (pagina:admin_control.php e livello:base)..
 

danilob

Utente Attivo
3 Feb 2007
124
0
0
forse sbaglio perchè al posto di insert nella tabella livlli dovrei fare una select?
 
Discussioni simili
Autore Titolo Forum Risposte Data
Z Operazioni tra campi di un form html HTML e CSS 2
Z Operazioni tra colonne MySQL 4.4.1 MySQL 0
R [C#] Fare varie operazioni nel proprio account Facebook .NET Framework 0
A Inserimento dati nel database tramite form + altre operazioni PHP 18
G Operazioni matematiche con grandi numeri PHP PHP 5
P [Javascript] [html5] operazioni matematiche come output di un form Javascript 7
E [PHP] Operazioni di confronto su stringhe PHP 26
G [PHP] Operazioni sulle stringhe PHP 2
V Date e operazioni aritmetiche PHP 13
Licantropo Log delle operazioni sul server Apache 0
C Operazioni con Frazioni PHP 2
C operazioni con numeri casuali PHP 7
Z Automattizzare operazioni su pagina web .NET Framework 1
voldemort Svolgere operazioni FTP all'interno di app iOS Sviluppo app per iOS 0
1 eseguire operazioni pianificate PHP 3
Vale2 Gestire operazioni Matematiche Snippet Javascript 0
A Confronto orari in variabili e operazioni PHP 1
G Operazioni in java matematica/trigonometria Javascript 0
M Operazioni matematiche con variabili Classic ASP 2
N operazioni con le date. PHP 2
V Più operazioni........ Flash 1
L ancora operazioni con decimali Javascript 0
E Eseguire operazioni dal server con un timer PHP 1
C Come si fanno le operazioni automatiche in PHP? PHP 11
grottafelix Automatizzare le operazioni in Photoshop Photoshop 4
M Collegamento tra form html e script php PHP 4
D popolare campi tra th alla select PHP 36
Gabriele Visioli Differenza tra hosting e hosting WordPress Hosting 1
S Differenza tra le funzioni include () e require ()? PHP 1
P Ciclare tra array di oggetti PHP 1
N Problema passaggio variabili tra pagine PHP 4
L estrarre valori max tra più tabelle MySQL 2
MarcoGrazia Dati nulli su join tra più tabelle MySQL 1
S Utilizzo variabili di sessione tra PC e server PHP 0
R Relazione tra tabelle MS Access 5
Tommy03 Query tra 3 tabelle MySQL 2
elpirata [MySQL] Sincronizzare dati tra due tabelle sullo stesso host MySQL 0
R passaggio variabili tra modulo genitore a figlio jQuery 3
P Passagio dati complessi tra una ASP.NET webapi e Angular ASP.NET 1
A [ASP] Confronto tra dati Form e DB Classic ASP 2
G [PHP] Passare dati tra record PHP 4
M [MS Access] Relazione tra maschere MS Access 1
T onsiglio Web agency tra Caserta Agro Aversano e Napoli e zone vicine. Offerte e Richieste di Lavoro e/o Collaborazione 0
D Jquery, conflitto tra loro risolvibile? jQuery 7
J Passaggio variabile tra 2 file php PHP 15
E Compro profilo Instagram tra 10k e 30k Annunci servizi di Social Media Marketing 2
U [PHP] Differenza tra amministratore e utente PHP 2
P [PHP] Spostamento tra cartelle PHP 2
F [Javascript] Conflitto tra più form nella stessa pagina Javascript 1
M PHP Arrotondamento minuti in differenza tra due Orari PHP 9

Discussioni simili