Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Recupero di variabili prima di inserirle nel db
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • H
      havana77 User Newbie • ultima modifica di

      Recupero di variabili prima di inserirle nel db

      Ciao 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!

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • B
        bonzetto User • ultima modifica di

        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:ciauz:

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • H
          havana77 User Newbie • ultima modifica di

          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.TRK ORDER BY TIME ASC LIMIT 1

          per il più piccolo e poi

          SELECT time FROM database.TRK ORDER BY TIME DESC LIMIT 1

          per il più grande.

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • S
            sups User Attivo • ultima modifica di

            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!

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • H
              havana77 User Newbie • ultima modifica di

              ti ringrazio, ho provato ma i valori non vengono presi, ho provato anche con echo ma niente..

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • S
                sups User Attivo • ultima modifica di

                Puoi postare il codice che comprende le query al db?

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • H
                  havana77 User Newbie • ultima modifica di
                  
                  
                  $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);
                  	}
                  	
                  }
                  
                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • S
                    sups User Attivo • ultima modifica di

                    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'].

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • H
                      havana77 User Newbie • ultima modifica di

                      Ti ringrazio ma non va lo stesso...

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      Caricamento altri post
                      Rispondi
                      • Topic risposta
                      Effettua l'accesso per rispondere
                      • Da Vecchi a Nuovi
                      • Da Nuovi a Vecchi
                      • Più Voti