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

    Estrazioni valori da file.txt come stringhe e reinserimento in database SQL

    Buongiorno,
    ho un problema con alcune estrazioni di dati da un file file.txt

    io ho un file che contiene tantissimi gruppi di righe del tipo

    12345678911 = asdfsad
    23412354367 = cvbnvb
    67856786578 = cvbnvc
    12345435346 = asdfsad
    34252364564 = sdfsadf@asdf.it
    34252364564 = asdfasdfsadfsadff@asdf.it
    23412354367 = cvbnvb
    67856786578 = cvbnvc
    12345435346 = asdfsad

    quindi che hanno a sinistra la parte con sempre lunghezza fissa e a destra con o una lunghezza fissa di 7 oppure variabile,
    in pratica o lunghezza(11) = lunghezza(7) oppure lunghezza(11) = lunghezza(variabile)

    io adesso ho bisogno di leggere queste righe ad 1 ad 1, fare una divisione di stringa e andare a controllare sul Db che se c � un codice di destra inserisco in un campo la parte di sinistra,
    ma sono bloccato perch� non sono un granch� in PHP,
    io leggo il file
    anche riga per riga, poi nei vari explode mi perdo!
    codice:
    function letturaPiva(){
        $filename = "idPecSdi.txt";
        $file = fopen($filename, "r");
        $data = fread($file, filesize("idPecSdi.txt"));
        //echo($data);
        fclose($file);
        
        $riga=explode("\r", $data);
    
    
      
        foreach($riga AS $chiave => $valore){
           // var_dump($riga);
            $pIva=explode("=",$valore);
            foreach($pIva AS $a => $b){
                if(strlen($b)==7){
                    var_dump("iddest".$b);
                }
                if(strlen($b)==11 ||strlen($b)==12 ){
                    var_dump("Piva ". $b);
                }
    
    
            /*
    1)fino qui ho ottenuto i 2 diversi campi separati in 2 array diversi come faccio perr� ad ottenere quello con l' indirizzo mail visyto che pu� essere variabile, quindi devo fare un controllo sui caratteri speciali, come faccio a dire che se ha i "." e "@" allora � una PEC??
    
    2) come faccio a dire che se $b � presente nel database allora vado a inserire in quella riga la sua $iddest o $pec? 
    */  
    
    
                
            }
        }
    }
    per favore aiutatemi!

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2019
    Messaggi
    31
    Ciao,
    per quanto riguarda la domanda 1, puoi usare preg_match per ricercare, per esempio, la @ all'interno della stringa e ti restituirà vero oppure falso. Quindi, se risulta vero, è una pec.
    codice:
    $stringavariabile = 'pincopallino@pec.it';
    $val = '@';
    echo preg_match("/$val/i",$stringavariabile);
    Ovviamente lo devi inserire nel punto di codice corretto

    Per quanto riguarda il punto 2, devi semplicemente verificarne la presenza.

    codice:
    UPDATE table SET campo = '{$stringavariabile}' WHERE campo = '{$b}")

  3. #3
    Il problema più grosso è entrare nell' Array bidimensionale!
    Ho modificato il mio codice e ora riesco ad ottenere con questo codice:

    codice:
    $filename = "idPecSdi.txt";
    $file = fopen($filename, "r");
    $data = fread($file, filesize("idPecSdi.txt"));
    //echo($data);
    fclose($file);
    
    
    $riga=explode("\r\n", $data);
    
    
    for($i=0;$i<count($riga);$i++){
        $array=$riga;
      
    }
    Dal var_dump mi da una roba del tipo:

    array(305) {
    [0]=>
    string(19) "034534550077=SDFGDSG"
    [1]=>
    string(19) "0345234523459=DFSGSDFG"
    [2]=>
    string(19) "0234534253426=SDFGSDFG"

    COME FACCIO A PRENDERLI UNA ALLA VOLTA PER PASSARLI ALLA QUERY SQL? COME PRENDERE SOLO LA PRIMA PARTE CON EXPLODE RIESCO MA RIMANGONO ANCORA 305 E IO LI VOGLIO AD 1 AD 1 COSì DA POTER USARE IL DATO NELLA QUERY MA NON MI RICORDO COME SI FA!

  4. #4
    trovsto l errore, mettevo i cicli uno dentro l altro, adesso ci sono riusciito! grazie lo stesso!

  5. #5
    codice:
    $servername		= 'localhost';
    $username		= 'neca_mediaweb';
    $password		= 'Ne2015ca';
    $db	            = 'necatestmax'; 
    
    
    
    
    $piva  ='';
    $idDest  ='';
    
    
    $filename = "idPecSdi.txt";
    $file = fopen($filename, "r");
    $data = fread($file, filesize("idPecSdi.txt"));
    //echo($data);
    fclose($file);
    
    
    $riga=explode("\r\n", $data);
    
    
    for($i=0;$i<count($riga);$i++){
        $array=$riga;
    }
    foreach($array as $valore){
       
        $array=explode("=",$valore);
        $piva=$array[0];
        //$idDest=$array[1];
        if (isset($array[1])){
            $idDest=$array[1];
        }
    
    
        $conn = new mysqli($servername, $username, $password,$db);
        // Check connection
        if ($conn->connect_error) {
            die("La connessione al database non è andata a buon fine! " . $conn->connect_error);
            return 0;
        } 
    
    
    
    
       $sql="UPDATE societaclienteneca SET idDest(SDI) = '{$idDest}' WHERE partitaIva = '{$piva}')";
        $result = $conn->query($sql);
    
    
        if($result){
            echo("fine!");
        }else{
            echo("error");
        }
      //  idDest(SDI)
       /* $sql="SELECT * FROM societaclienteneca WHERE  '$piva[0]'= partitaIva LIMIT 1";
        $result = $conn->query($sql);*/
        
       /* if ($result->num_rows > 0) {
            // output data of each row
            while($row = $result->fetch_assoc()) {
                cho ($row["ragioneSociale"]."\n");
            }*/
            
           
      //  }
        $conn->close();
        
      
    }

  6. #6
    Laquery mi va in errore e non capisco il perche'!!!

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2019
    Messaggi
    31
    Che errore ti da?
    In ogni caso modifica
    codice:
     $sql="UPDATE societaclienteneca SET idDest(SDI) = '{$idDest}' WHERE partitaIva = '{$piva}')";
    In

    codice:
     $sql="UPDATE societaclienteneca SET idDest(SDI) = '{$idDest}' WHERE partitaIva = '{$piva}'";

  8. #8
    Scusa se devio dal nostro discorso per un attimo... come posso testare quanta memoria viene allocata in uno script PHP per fare debugging?

  9. #9
    codice:
    <?php
    $servername		= 'localhost';
    $username		= 'neca_mediaweb';
    $password		= 'Ne2015ca';
    $db	            = 'necatestmax'; 
    
    
    
    
    $piva  ='';
    $idDest  ='';
    
    
    $filename = "idPecSdi.txt";
    $file = fopen($filename, "r");
    $data = fread($file, filesize("idPecSdi.txt"));
    //echo($data);
    fclose($file);
    
    
    $riga=explode("\r\n", $data);
    
    
    for($i=0;$i<count($riga);$i++){
        $array=$riga;
    }
    foreach($array as $valore){
       
        $array=explode("=",$valore);
        $piva=$array[0];
        //$idDest=$array[1];
        if (isset($array[1])){
            $idDest=$array[1];
        }
    
    
        $conn = new mysqli($servername, $username, $password,$db);
        // Check connection
        if ($conn->connect_error) {
            die("La connessione al database non è andata a buon fine! " . $conn->connect_error);
            return 0;
        } 
     
      // $sql="UPDATE societaclienteneca SET idDest(SDI) = '{$idDest}' WHERE partitaIva = '{$piva}')";
      /* $sql="UPDATE societaclienteneca SET idDest(SDI) = '{$idDest}' WHERE partitaIva = '{$piva}'";*/
      $sql = "UPDATE societaclienteneca SET idDest(SDI) = '{$idDest}' WHERE partitaIva = '{$piva}'";
      $result = $conn->query($sql);
      /*
      if ($result->num_rows > 0) {
        echo "OK";
      }*/
       
     
      
    }
    
    
    
    
    
    
    ?>
    Non so perchè ma la query non viene eseguita!

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2019
    Messaggi
    31
    Quote Originariamente inviata da Maxilboss93 Visualizza il messaggio
    Scusa se devio dal nostro discorso per un attimo... come posso testare quanta memoria viene allocata in uno script PHP per fare debugging?
    Puoi provare con Zend Server

Tag per questa discussione

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 © 2019 vBulletin Solutions, Inc. All rights reserved.