- Home
- Categorie
- Coding e Sistemistica
- Coding
- Recupero di variabili prima di inserirle nel db
- 
							
							
							
							
							
Recupero di variabili prima di inserirle nel dbCiao a tutti, spero sia il posto giusto per postare il mio problema. Ho un file xml da cui leggo i vari punti: foreach($xml->trk as $part) { foreach ($part->trkseg->trkpt as $point) { $point ['lat']; $point ['lon']; $point ['time']; $point->ele; //Qua ci sarebbe la query per inserire i dati nel db } }Dovrei selezionare i 2 punti che hanno il time minore e maggiore, posso farlo a priori prima di inserirli nel database? 
 Se così fosse non avrei bisogno di popolare il db con una miriade di dati...
 Grazie in anticipo!
 
- 
							
							
							
							
							
Ciao allora vuoi leggere dei dati da questo file xml ed inserire solo i 2 record col time minore, ho capito giusto? Se è cosi basta che crei due variabili a cui assegni i primi 2 record xml, poi basta che li confronti nl ciclo foreach e aggiornandoli se è il caso Spero che ti sono stato d'aiuto  
 
- 
							
							
							
							
							
Ciao e grazie, i record però sono quello che hanno il campo time più piccolo e più grande. Con il database facevo così: li inserivo tutti e poi con una query tiravo fuori il più grande facendo: SELECT time FROM database.TRKORDER BY TIME ASC LIMIT 1per il più piccolo e poi SELECT time FROM database.TRKORDER BY TIME DESC LIMIT 1per il più grande. 
 
- 
							
							
							
							
							
Prova in questo modo: [php] 
 $t_min = $t_max = null;foreach(...) 
 {
 foreach(...)
 {
 $t_min = (is_null($t_min) || ($point['time'] < $t_min)) ? $point['time'] : $t_min;
 $t_max = (is_null($t_max) || ($point['time'] > $t_max)) ? $point['time'] : $t_max;
 }// Invio $t_min $t_max al DB 
 }
 [/php]Le variabili $t_min e $t_max contengono rispettivamente, i valori minimi e massimi dei tempi. Ciao! 
 
- 
							
							
							
							
							
ti ringrazio, ho provato ma i valori non vengono presi, ho provato anche con echo ma niente.. 
 
- 
							
							
							
							
							
Puoi postare il codice che comprende le query al db? 
 
- 
							
							
							
							
							
$xml = simplexml_load_file('prova.gpx'); $date = $xml->trk->trkseg->trkpt->time; foreach($xml->trk as $part) { foreach ($part->trkseg->trkpt as $point) { $point ['lat']; $point ['lon']; $point ['time']; $point->ele; mysql_unbuffered_query("INSERT INTO TRK (latitude, longitude, time, altitude, date) VALUES ('$point[lat]', '$point[lon]', '$point->time', '$point->ele', '$date')", $conn); } }
 
- 
							
							
							
							
							
Se nell'inserimento dei dati nella query usi $point->time per il campo time, allora nel codice che ti ho postato metti $point->time al posto di $point['time']. 
 
- 
							
							
							
							
							
Ti ringrazio ma non va lo stesso...