Visualizzazione risultati 1 fino 4 di 4
Like Tree1Likes
  • 1 Post By miki92

Discussione: Da XML a MySQLi: inserisce solo l'ultimo record.

  1. #1
    Guest

    Predefinito Da XML a MySQLi: inserisce solo l'ultimo record.

    buona giornata @ tutti!..

    Ogni giorno scarico automaticamente questo file:

    http://www.ecb.europa.eu/stats/eurof...xref-daily.xml

    i cui dati (valore cambio, cod.ISO valuta) devono essere inseriti nella tabella 'cambi' nei campi 'cambi_spot' e 'cambi_iso' sul db del sito.

    Ho preparato questo codice:

    Codice PHP:
    $eurofx = simplexml_load_file("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");
    foreach(
    $eurofx->Cube->Cube->Cube as $fix) {
    $risolvi = $connex->prepare("UPDATE cambi SET cambi_spot = ?, cambi_iso = ?");
    $risolvi->bind_param('ds', $spot, $ciso);
    $spot = $fix["rate"];
    $ciso = $fix["currency"];
    $risolvi->execute();
    $risolvi->close();
    }
    Ma funziona in modo anomalo, cioè inserisce in tutti i records della tabella solo i dati dell'ultima voce.
    Le mie competenze di PHP non vanno oltre l'ordinaria amministrazione , dunque ho bisogno di una dritta. Ricordo che tempo addietro è stato esposto un problema analogo, ma non riesco a recuperare il 3d. Grazie a chi vorrà darmi una mano.

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    L'errore sta qui:
    Codice PHP:
    $connex->prepare("UPDATE cambi SET cambi_spot = ?, cambi_iso = ?");
    Così aggiorni tutti i campi con l'ultimo valore del ciclo...

    La sintassi corretta è questa:
    Codice PHP:
    $connex->prepare("UPDATE cambi SET cambi_spot = ? WHERE cambi_iso = ?");
    kanzy likes this.
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    Guest

    Predefinito

    @miki92

    perfetto!.. grazie1000!

  4. #4
    Guest

    Predefinito

    Ecco il codice funzionante:

    Codice PHP:
    <?php
    $eurofx
    = simplexml_load_file("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");
    echo
    '<p>Cambi del <strong>'. $eurofx->Cube->Cube["time"] .'</strong></p>';
    $risolvi = $connex->prepare("UPDATE cambi SET cambi_spot = ? WHERE cambi_iso = ?");
    $risolvi->bind_param('ds', $spot, $ciso);
    foreach(
    $eurofx->Cube->Cube->Cube as $fix) {
    $spot = $fix["rate"];
    $ciso = $fix["currency"];
    $risolvi->execute();
    }
    $risolvi->close();
    ?>
    Adesso si possono aggiungere altri campi alla tabella per poi poterla formattare a piacimento in una 'table'.

    Nella speranza possa esservi utile.
    Ultima modifica di kanzy : 28-07-2015 alle ore 16.21.36

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •