Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    import xml che fa solo un giro

    Salve, sapreste dirmi come mai
    al recupero dati di un xml questo processo funziona solo per il primo nodo??
    non carica gli altri dati successivi... carica solo il primo record

    grazie mille
    Codice PHP:
    // Recupero il file$file = $_FILES['filexml'];
    // Controllo che il file sia stato inseritoif ( $file['tmp_name'] != '' ) {    // Carica il file in una variabile $xml    $xml = simplexml_load_file( $file['tmp_name'] );        // Controllo tutti i tag "banca"    foreach( $xml->OrgnlPmtInfAndSts ->TxInfAndSts as $value ) {        // Recupero tutti i campi da ogni tag "banca"        $protocollo_op = $value->OrgnlTxRef->MndtRltdInf->MndtId;        $protocollo_op = substr($protocollo_op, -4);        $tipo_op = $value->TxSts;        $data_op = $value->OrgnlTxRef->ReqdColltnDt;        $Importo_op = $value->OrgnlTxRef->Amt->InstdAmt;                // Creo una query di inserimento e la eseguo        $sql = "            INSERT INTO report SET                 protocollo_op = '$protocollo_op',                tipo_op = '$tipo_op',                data_op = '$data_op',                Importo_op = '$Importo_op'        ";        $rssql = mysql_query( $sql );                // Controllo che l'importazione sia avvenuta con successo        echo ( $rssql ) ? "Importazione avvenuta con successo" : "Errore nella query o connessione al DB mancante";    }}else    echo "Nessun file inserito"; 
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  2. #2
    Dovresti postare anche un XML di esempio.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    in pratica il nodo <OrgnlPmtInfId>1</OrgnlPmtInfId>
    lo prende tutto

    e non passa a l nodo

    <OrgnlPmtInfId>2</OrgnlPmtInfId>



    codice:
    <OrgnlGrpInfAndSts>
    <OrgnlMsgId>1407914311651</OrgnlMsgId>
    <OrgnlCreDtTm>2014-08-13T00:00:00</OrgnlCreDtTm>
    <GrpSts>PART</GrpSts>
    <NbOfTxsPerSts>
    <DtldNbOfTxs>33</DtldNbOfTxs>
    <DtldCtrlSum>13096.76</DtldCtrlSum>
    </NbOfTxsPerSts>
    </OrgnlGrpInfAndSts>
    <OrgnlPmtInfAndSts>
    <OrgnlPmtInfId>1</OrgnlPmtInfId>
    <TxInfAndSts>
    <OrgnlInstrId>1</OrgnlInstrId>
    <OrgnlEndToEndId>00001</OrgnlEndToEndId>
    <TxSts>RJCT</TxSts>
    <StsRsnInf>
    <Orgtr>
    <Nm> SPA</Nm>
    <Id>
    <OrgId>
    <BICOrBEI></BICOrBEI>
    </OrgId>
    </Id>
    </Orgtr>
    <Rsn>
    <Cd>MD01</Cd>
    </Rsn>
    </StsRsnInf>
    <OrgnlTxRef>
    <Amt>
    <InstdAmt Ccy="EUR">9.81</InstdAmt>
    </Amt>
    <ReqdColltnDt>2014-09-05</ReqdColltnDt>
    <CdtrSchmeId>
    <Nm>Spa</Nm>
    <Id>
    <PrvtId>
    <Othr>
    <Id></Id>
    </Othr>
    </PrvtId>
    </Id>
    </CdtrSchmeId>
    <PmtMtd>DD</PmtMtd>
    <MndtRltdInf>
    <MndtId>BE15</MndtId>
    <DtOfSgntr>2014-02-27</DtOfSgntr>
    </MndtRltdInf>
    <RmtInf>
    <Ustrd>ADDEBITO 1 RATA </Ustrd>
    </RmtInf>
    <Dbtr>
    <Nm>GIUSEPPE</Nm>
    <Id>
    <PrvtId>
    <Othr>
    <Id></Id>
    </Othr>
    </PrvtId>
    </Id>
    </Dbtr>
    <DbtrAcct>
    <Id>
    <IBAN></IBAN>
    </Id>
    </DbtrAcct>
    <DbtrAgt>
    <FinInstnId>
    <BIC>UNCRITMMXXX</BIC>
    </FinInstnId>
    </DbtrAgt>
    <Cdtr>
    <Nm> Spa</Nm>
    </Cdtr>
    <CdtrAcct>
    <Id>
    <IBAN></IBAN>
    </Id>
    </CdtrAcct>
    </OrgnlTxRef>
    </TxInfAndSts>
    </OrgnlPmtInfAndSts>
    <OrgnlPmtInfAndSts>
    <OrgnlPmtInfId>2</OrgnlPmtInfId>
    <TxInfAndSts>
    <OrgnlInstrId>20</OrgnlInstrId>
    <OrgnlEndToEndId>00020</OrgnlEndToEndId>
    <TxSts>RJCT</TxSts>
    <StsRsnInf>
    <Orgtr>
    <Nm>INTESASANPAOLO SPA</Nm>
    <Id>
    <OrgId>
    <BICOrBEI>BCITITMMXXX</BICOrBEI>
    </OrgId>
    </Id>
    </Orgtr>
    <Rsn>
    <Cd>MD01</Cd>
    </Rsn>
    </StsRsnInf>
    <OrgnlTxRef>
    <Amt>
    <InstdAmt Ccy="EUR">6.66</InstdAmt>
    </Amt>
    <ReqdColltnDt>2014-09-05</ReqdColltnDt>
    <CdtrSchmeId>
    <Nm> Spa</Nm>
    <Id>
    <PrvtId>
    <Othr>
    <Id></Id>
    </Othr>
    </PrvtId>
    </Id>
    </CdtrSchmeId>
    <PmtMtd>DD</PmtMtd>
    <MndtRltdInf>
    <MndtId>BEQGT90000000000001330</MndtId>
    <DtOfSgntr>2013-12-09</DtOfSgntr>
    </MndtRltdInf>
    <RmtInf>
    <Ustrd>B22F11000270009</Ustrd>
    </RmtInf>
    <Dbtr>
    <Nm> SEMPLIFICATA</Nm>
    <Id>
    <PrvtId>
    <Othr>
    <Id>RCCR3A509C</Id>
    </Othr>
    </PrvtId>
    </Id>
    </Dbtr>
    <DbtrAcct>
    <Id>
    <IBAN></IBAN>
    </Id>
    </DbtrAcct>
    <DbtrAgt>
    <FinInstnId>
    <BIC>FEBIITM1XXX</BIC>
    </FinInstnId>
    </DbtrAgt>
    <Cdtr>
    <Nm>Spa</Nm>
    </Cdtr>
    <CdtrAcct>
    <Id>
    <IBAN></IBAN>
    </Id>
    </CdtrAcct>
    </OrgnlTxRef>
    </TxInfAndSts>
    </OrgnlPmtInfAndSts>
    </CBISDDStsRptLogMsg>
    grazie infinite
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  4. #4
    Modifica il codice così:

    Codice PHP:
    ...
    foreach( 
    $xml->OrgnlPmtInfAndSts as $val ) {
        
    $value $val->TxInfAndSts;
        ... 

    Ovviamente se ci può essere un solo elemento TxInfAndSts (come nell'XML di esempio da te postato). In caso contrario occorre effettuare due cicli annidati.
    Ultima modifica di satifal; 01-10-2014 a 10:48
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    non va... mi da errore nella query
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  6. #6
    Quote Originariamente inviata da Stanislao Visualizza il messaggio
    non va... mi da errore nella query
    Io l'ho provato eliminando la parte della query ed il foreach con annessa lettura dei parametri funziona.
    Fatti stamare la query prima di eseguirla e vedi se viene composta correttamente
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    ecco il codice che uso con la tua modifica

    codice:
     // Controllo tutti i tag "banca"
    	foreach( $xml->OrgnlPmtInfAndSts as $val ) { 
    	$value = $val->TxInfAndSts;
    	
            // Recupero tutti i campi da ogni tag "banca"
            $protocollo_op = $value->OrgnlTxRef->MndtRltdInf->MndtId;
    		$protocollo_op = substr($protocollo_op, -4);
            $tipo_op = $value->TxSts;
            $data_op = $value->OrgnlTxRef->ReqdColltnDt;
            $Importo_op = $value->OrgnlTxRef->Amt->InstdAmt;
    		$motivazione_op = $value->StsRsnInf->Rsn->Cd;
            
            // Creo una query di inserimento e la eseguo
            $sql = "
                INSERT INTO report SET 
                    protocollo_op = '$protocollo_op',
                    tipo_op = '$tipo_op',
                    data_op = '$data_op',
                    Importo_op = '$Importo_op',
    				motivazione_op = '$motivazione_op'
            ";
            $rssql = mysql_query( $sql );
    		echo $sql;
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  8. #8
    Te l'ho detto. Stampa la query prima di eseguirla e vedi se è corretta e magari copiala e provala a mano per vedere se ti da errore.
    Inoltre aggiungi il mysql_error() all'esecuzione della query così vedi l'errore:

    Codice PHP:
    ...
    $rssql mysql_query$sql ) or die (mysql_error());
    ... 

    P.S.
    Il problema potrebbe essere dovuto al campo importo che probabilmente è un decimal e nella query, invece, metti gli apici considerandolo un varchar.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    ora carica ( mancava un'apice ) ma il problema non si è risolto carica sempre solo il primo record...
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  10. #10
    Ho provato il codice con la modifica che ti ho suggerito utilizzando l'XML da te postato ed a me cicla entrambi gli elementi OrgnlPmtInfAndSts
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.