1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Questao simples de php e array

Discussão em 'Web Development' iniciada por Armadillo, 11 de Setembro de 2007. (Respostas: 4; Visualizações: 751)

  1. Armadillo

    Armadillo Folding Member

    Boas.
    Estou a fazer um script em php.
    Entao, o meu problema é o seguinte: como envio os dados para um array atraves de um ciclo e depois como acedo a esses dados fora do ciclo.

    Vai aqui o que estou a fazer e nao funciona la mto bem:

    PHP:
    //...
    $i=1;


    //vou abrir ficheiro e retornar todos regs os para a BD MySQL

    $fileUsers fopen("http://127.0.0.1:800/sugarcrm/crm_int/ContasTeste.txt","r"); //abro ficheiro

    while(! feof($fileUsers)):                            //enquanto nao chegar ao fim do ficheiro
        
    $linha fgets($fileUsers);                        //define $linha como conteudo do fich .
        
    $posIniReg strpos$linha'<CONTA>');        //verifica se existe a tag <CONTA> nessa linha.

        
    if ($posIniReg===0){                            //se linha for Inicio de um registo prepara p/ inserir os fields na DB
           
            
    for ($i=0$i<=20$i++)                    //vai de 0 ate 20 pq 21 eh o n.º de campos existentes
                
    {
                
    $linha fgets($fileUsers);                //abre nova $linha
                
    $posFimReg strpos$linha'</CONTA>');

                if (
    $posFimReg===false)                        //verificar se é o terminador do registo
                
    {
                    
    //substituir o que nao interessa
                    
    $linha=str_replace(chr(9), "",$linha);        //substituir TAB 
                    
    $linha=str_replace(chr(13), "",$linha);        //substituir CARRIAGE RETURN             
                    
    $linha=str_replace(chr(10), "",$linha);        //substituir LINEFEED 
                    
    $campos = array("<CONTA>""</CONTA>""<ID>""<DATA_IN>""<NOME>""<COMPRAS_ANUAIS>""<FAX>""<RUA_FACT>""<CIDADE_FACT>""<ESTADO_FACT>""<CP>""<PAIS>""<TELEF1>""<TELEF2>""<EMAIL>""<WWW>""<TICKER>""<RUA_ENTRG>""<CIDADE_ENTRG>""<ESTADO_ENTRG>""<CP_ENTRG>""<PAIS_ENTRG>""<UTILIZADOR>");
                    
    $linha str_replace($campos""$linha);    
                    
    $arr[i]=$linha;                                        //<-- Isto N Funca bem :(
                    
    echo $i " - " $arr[i] ."<br/>";        
     
                }
    //fim se
        
            
    }//fim para i
            
    echo "<br/>";

            
    $sqlSTR="INSERT INTO accounts (id, date_entered, name, annual_revenue, phone_fax, billing_address_street,  billing_address_city,  billing_address_state, billing_address_postalcode,  billing_address_country, phone_office, phone_alternate, email1, website, ticker_symbol, shipping_address_street, shipping_address_city, shipping_address_state,shipping_address_postalcode, shipping_address_country, assigned_user_id) VALUES ('";                            //proceder á insercao
            
    $sqlSTR=$sqlSTR $arr[0] . "', " $arr[1] . ", '" $arr[2] . "', '" $arr[3] . "', '" $arr[4] . "', '" $arr[5] . "', '" $arr[6] . "', '" $arr[7] . "', '" $arr[8] . "', '" $arr[9] . "', '" $arr[10] . "', '" $arr[11] . "', '" $arr[12] . "', '" $arr[13] . "', '" $arr[14] . "', '" $arr[15] . "', '" $arr[16] . "',  '" $arr[17] . "',  '" $arr[18] . "',  '" $arr[19] . "', '" $arr[20] . "')"//AQUI N consigo retornar os valores
            
    echo $sqlSTR "<br/>" ;    
        
    Obrigado.
     
  2. Armadillo

    Armadillo Folding Member

    Ok, é por isto que odeio php. Faltava-me o simbolo $ depois do i.

    PHP:
    //... 
                   
    $arr[$i]=$linha;
                    echo 
    $i " - " $arr[$i] ."<br/>";        
    //...
     
  3. jota WA

    jota WA [email protected] Member

    LOL!Por akaso reparei nisso e ia responder,mas pelos vistos ja resolveste ;)!
    PHP é maroto pq basta eskecer-se d um $ q o codigo descamba todo por ai fora :D!
    Cumps
     
  4. CoolMaster

    CoolMaster Power Member

    Então vocês devem odiar e achar que todas as linguagens são marotas? Ou nem por isso?

    Em todas se tivermos um ',},) etc etc a mais/menos etc etc, já vai deixar de funcionar.

    A única diferença é que neste caso o PHP aceita aquilo porque ele assume o i como sendo uma constante, caso não a encontre o index fica o proprio "i".
     
  5. jota WA

    jota WA [email protected] Member

    Eu pelo menos nao disse q odiava ou q axava q SO o PHP era maroto...klaro q em todas as linguagens á sinais e simbolos q s nao forem respeitados resultam no crash do programa...tava-me a referir a este exemplo apenas...
    Cumps
     

Partilhar esta Página