Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Andreia Regina

Problema ao atualizar banco de dados

Recommended Posts

Olá Pessoal!!!

Estou desde ontem tentando encontrar algo no script abaixo que não o permite atualizar o banco de dados <_<

O administrador entra em uma página e seleciona o arquivo na sua máquina através de um formulário

Se alguém puder me dar uma ajuda eu agradeço muito http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

PHP

[*]<?

[*]ini_set('auto_detect_line_endings', true);

[*]

[*]# -- controle de sessao -- INICIO --

[*]

[*]session_start();

[*]

[*]if ( $_SESSION['cd_fisica'] == '' || $_SESSION['cd_usu'] == '' ){

[*] echo "<script>document.location.href='index.php';</script>";

[*]}

[*]

[*]# -- controle de sessao -- FIM --

[*]

[*]# -- requerimento declaracoes/basicos -- INICIO --

[*]

[*]# req -> objetos de configuracao

[*]require_once("includes/conf/connect.php");

[*]# req -> arquivo de configuracao

[*]$conf = new CONF();

[*]

[*]# req -> objetos de formulario

[*]require_once( $conf->pathobjeto() . "forms.php" );

[*]

[*]# req -> objeto db

[*]require_once( $conf->pathobjeto() . "db.php" );

[*]# obj -> objeto db

[*]$db = new DB;

[*]

[*]# req -> objeto template

[*]require_once( $conf->pathobjeto() . "template.php" );

[*]

[*]# req -> objeto log

[*]require_once( $conf->pathobjeto() . "log.php" );

[*]

[*]# -- requerimento declaracoes/basicos -- FIM --

[*]

[*]$a = ( $_POST['a'] == '' ) ? $_GET['a'] : $_POST['a'];

[*]

[*]# -- processos -- INICIO --

[*]switch ( $a ){

[*]

[*] # @proc cadastra

[*] case 'c':

[*]

[*] #@desc copia o conteudo postado e seusd dados para uma variável

[*] $_type  = $_FILES['arquivo']['type'];

[*] $_size  = $_FILES['arquivo']['size'];

[*]// $_conteudo  = @addslashes( fread( fopen( $_FILES['arquivo']['tmp_name'] , "rb" ), $_size ) );

[*]

[*] $fl_reg = false;

[*] //$linhas_conteudo = split( "\n", $_conteudo );

[*]

[*] $aux = new phpaux();

[*]

[*] $db->execute( "DELETE FROM cm_convenio" );

[*]

[*] // le arquivo

[*] $handle = fopen( $_FILES['arquivo']['tmp_name'] , "r" );

[*]

[*] echo "<title></title><br><br><div align='center'><pre><h3>Inserindo dados, isso pode levar alguns minutos.<p>Por favor, não cancele esta operação...</h3>\n</div><pre>";

[*] flush();

[*] $j=0;

[*] $handle = fopen( $_FILES['arquivo']['tmp_name'] , "r" );

[*] while ($data = fgetcsv($handle, 1000,"|")) {

[*] //print_r($data);

[*] if(count ($data) == 12){

[*] $j++;

[*] // remove espacos em branco

[*] for($c=0;$c<count($data);$c++){

[*] $data[$c] = addslashes($aux->remove_espaco($data[$c]));

[*] }

[*] list ($seq, $especialidade, $prestador, $medico, $rua, $bairro, $cidade, $uf, $cep, $fone01, $fone2, $inclusao) = $data;

[*]

[*] $sql = "INSERT INTO cm_convenio (id, seq, especialidade, prestador, medico, rua, bairro, cidade, uf, cep, fone01, fone2, inclusao)

[*] VALUES (NULL,'$seq', '$especialidade', '$prestador', '$medico', '$rua', '$bairro', '$cidade', '$uf', '$cep', '$fone01', '$fone2', '$inclusao');";

[*] //print $sql;

[*] $db->execute($sql);

[*]

[*] }

[*] }

[*] fclose ($handle);

[*] echo "<script>alert('CADASTRO CONCLUÍDO\\nForam adicionados " . $j . " registros com sucesso!!!');document.location.href='" . $_SERVER['PHP_SELF'] . "';</script>";

[*] exit;

[*] break;

[*]

[*] default:

[*]

[*] #@obj file  ->  conteudo

[*] $_arquivo = new FILE( 'arquivo' );

[*] $_arquivo->addparam( 'class', 'file' );

[*] $_arquivo->addparam( 'onChange', 'voltaImagem( "img_arquivo" );' );

[*]

[*] #@obj botao ->  alterar

[*] $_bt_send = new IMAGEM( 'bt_cadastrar', '/admin/bt_cadastrar_out.gif', '/admin/bt_cadastrar_over.gif');

[*] $_bt_send->addparam( 'onClick', 'submete();');

[*]

[*] #@obj botao -> limpar

[*] $_bt_limpar = new IMAGEM( 'bt_limpar', '/admin/bt_limpar_out.gif', '/admin/bt_limpar_over.gif');

[*] $_bt_limpar->addparam( 'onClick', 'document.location.href="' . $_SERVER['PHP_SELF'] . '"');

[*]

[*] #@obj hidden -> campos ocultos

[*] $_a = new CAMPOOCULTO( 'a', 'c' );

[*]

[*] #@dec script para checar campos obrigatorios

[*] $script = "

[*] function checaCampos () {

[*] if ( document.plu04.arquivo.value == 0 ) {alert('Anexar um arquivo é obrigatório'); document.plu04.arquivo.focus();  mudaImagem('img_arquivo',  '/admin/img_obrigatorio.gif'); return false;}

[*] return true;

[*] }";

[*]

[*] #@obj template -> interno

[*] $_tpl = new TEMPLATE( $conf->pathtemplate() . 'plu04_tpl.php'  );

[*] $_tpl->addChave( 'arquivo', $_arquivo->pega() );

[*] $_tpl->addChave( 'hidden', $_a->pega() );

[*] $_tpl->addChave( 'SCRIPT',  $script );

[*] $_tpl->addChave( 'bt_send', $_bt_send->pega() );

[*] $_tpl->addChave( 'bt_limpar', $_bt_limpar->pega() );

[*]

[*] #@obj form  -> form

[*] $form = new FORMULARIO( 'plu04', 'POST', $_SERVER['PHP_SELF'] );

[*] $form->addparam( 'enctype', 'multipart/form-data' );

[*] $form->addobjeto( $_tpl->pega() );

[*]

[*] #@obj template -> geral

[*] $tpl = new TEMPLATE( $conf->pathtemplate() . 'geral.php'  );

[*] $tpl->addChave( 'ICONE',  '/admin/img_plu04.gif' );

[*] $tpl->addChave( 'PUBLICACAO',  $_SESSION['nm_publicacao'] );

[*] $tpl->addChave( 'PROGRAMA',  'Conveniados' );

[*] $tpl->addChave( 'CONTEUDO',  $form->pega() );

[*]

[*] $tpl->mostra();

[*]

[*]// fim switch

[*]}mysql_close($dbh);

[*]?>

Ah! O script não fui eu quem desenvolvi, só vou fazer manutenção ;)

 

Obrigada

 

Andreia Regina

Compartilhar este post


Link para o post
Compartilhar em outros sites

aff, pelo o que da pra ver você ta numa enrascada boa e tb ele utiliza classes neh para fazer tudo, com este mega codigo ai fica dificil te ajudar, mas... ele mostra algum erro, você tentou utilizar os alerts do js em varios pontos do codigo pra ver ate onde ele chega e onde ele para? por exemplo, isso me ajuda muito, se eu tenho dois ifsif(){}else if(){}e nao sei onde ta dando erro, ou se o codigo entra ou nao neles, eu taco uns print "<script>alert('teste 1');</script>" para saber ate onde ele vai, entende?Espero ter talvez contribuido para um bom resultado final...bjsPaulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Paulo!!!Que consolo hein!?Bom, é o meu primeiro trabalho assim, que eu pego para fazer manutenção e confesso que não imaginei que fosse tão complexo.Mas acho que nas primeiras alterações vou sofrer depois passo a conhecer mais o código todo e tb vou aprendendo mais.Vou seguir sua sugestão, de repente me acho mais fácilObrigada, qualquer nova sugestão me avisa.BeijosAndreia Regina

Compartilhar este post


Link para o post
Compartilhar em outros sites

é né, desculpa a sinceridade ehehe, mas é bem como você disse, com o tempo você se acostuma com o codigo e fica tudo mais facil, mas pra nós é meio dificil pq ele ta chamando um monte de classes e você teria que abrir e postar todas estas classes para ver o que esta acontecendo, mas use os alerts, eles sempre ajudam a achar os erros.beijosPaulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Paulo!Na verdade ele está funcionando mas no domínio do meu cliente, mas qdo eu pedi para ele atualizar aqui no meu servidor ele não atualiza, mas limpou a base o danadinho <_< .Qualquer coisa eu posto o restante do código com as funções.Ps: eu estava brincando qdo falei

Que consolo hein!?

;) Obrigada http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif BeijosAndreia Regina

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!!!

Ainda não consegui resolver, mas acho que estou próxima da solução, embora precise da ajuda de vocês http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

Aqui segue o arquivo com a classe formulário. Eu acho que o script não está conseguindo pegar e ler o conteúdo do arquivo, tentei importar direto pelo phpmyadmin e ele importa certinho.

arquivo forms.php

PHP

[*]<?php

[*]// formulario

[*]class FORMULARIO{

[*] function FORMULARIO( $nome, $metodo, $acao = false )

[*] {

[*] $this->nome  = $nome  ;

[*] $this->metodo = $metodo ;

[*] $this->acao  = ( $acao == false ) ? $acao : '' ;

[*] }

[*] function addparam( $parametro, $valor )

[*] {

[*] $this->param .= $parametro. "='" . $valor . "' " ;

[*] }

[*] function addobjeto( $objeto )

[*] { 

[*] $this->objetos .= $objeto . "\n";

[*] }

[*] function pega()

[*] {

[*] return "<form name='" . $this->nome . "' method='" . $this->metodo . "' action='" . $this->acao . "' " . $this->param . " >\n" . $this->objetos . "</form>" ;

[*] }

[*] function mostra()

[*] {

[*] echo  "<form name='" . $this->nome . "' method='" . $this->metodo . "' action='" . $this->acao . "' " . $this->param . " >\n" . $this->objetos . "</form>" ;

[*] }

[*]}

[*]// campo de texto

[*]// caixa de texto

[*]// campo oculto

[*]class CAMPOOCULTO{

[*] function CAMPOOCULTO( $nome, $value )

[*] {

[*] $this->nome  = $nome  ;

[*] $this->value = $value  ;

[*] }

[*] function pega()

[*] {

[*] return "<input type='hidden' name='" . $this->nome . "' value='" . $this->value . "'>\n";

[*] }

[*] function mostra()

[*] {

[*] echo "<input type='hidden' name='" . $this->nome . "' value='" . $this->value . "'>\n";

[*] }

[*]}

[*]// checkbox

[*]// radiobutton

[*]// select

[*]// file

[*]class FILE{

[*] function  FILE( $nome )

[*] {

[*] $this->nome = $nome ;

[*] }

[*] function addparam( $parametro, $valor )

[*] {

[*] $this->param .= $parametro. "='" . $valor . "' " ;

[*] }

[*] function pega()

[*] {

[*] return "<input type='file' name='" . $this->nome . "' " . $this->param . ">\n";

[*] }

[*] function mostra()

[*] {

[*] echo "<input type='file' name='" . $this->nome . "' " . $this->param . ">\n";

[*] }

[*]}

[*]// imagem

[*]// botao

[*]class BOTAO{

[*] function BOTAO( $nome, $value, $type = 'button' )

[*] {

[*] $this->nome = $nome ;

[*] $this->value = $value  ;

[*] $this->type  = ( $type != 'button' ) ? $type : 'button' ;

[*] }

[*] function addparam( $parametro, $valor )

[*] {

[*] $this->param .= $parametro. "='" . $valor . "' " ;

[*] }

[*] function pega()

[*] {

[*] return "<input type='" . $this->type . "' name='" . $this->nome . "' value='" . $this->value . "' " . $this->param . ">\n";

[*] }

[*] function mostra()

[*] {

[*] echo "<input type='" . $this->type . "' name='" . $this->nome . "' value='" . $this->value . "' " . $this->param . ">\n";

[*] }

[*]}

[*]?>

 

arquivo db.php

PHP

[*]<?php

[*]class DB

[*]{

[*] function DB(){}

[*]

[*] function executeQuery( $query )

[*] {

[*] if ( !$result = @mysql_query( $query ) )

[*] echo mysql_error();

[*] return( $result );

[*] }

[*]

[*] function execute( $query )

[*] {

[*] if ( !$result = @mysql_query( $query ) ){

[*] echo "<pre>" . mysql_errno() . ": " . mysql_error() . "\n".$query."</pre>\n";

[*] exit;

[*] }

[*] return true;

[*] }

[*]}

[*]?>

 

arquivo template.php

PHP

[*]<?

[*]// template

[*]class TEMPLATE

[*]{

[*]

[*] function TEMPLATE( $arquivo )

[*] {

[*] if( file_exists( $arquivo ))

[*] {

[*] $this->_TEMPLATE = implode( "" , file( $arquivo ) );

[*] }

[*] else

[*] {

[*] echo "<pre> Arquivo <b>" . $arquivo . "</b> inexistente! </pre>";exit;

[*] }

[*] }

[*] function addChave( $chave , $valor )

[*] {

[*] $this->_TEMPLATE = ereg_replace("<!--" . $chave . "-->", $valor, $this->_TEMPLATE);

[*] return(true);

[*] }

[*] function pega() 

[*] { 

[*] return $this->_TEMPLATE;  

[*] }

[*] function mostra()

[*] { 

[*] echo $this->_TEMPLATE;

[*] }

[*]}

[*]?>

 

Se alguém puder me ajudar eu agradeço!!!

 

Andreia

------------Editando

Esqueci de colocar o que as variáveis retornaram. Aí vai:

 

a c (nome do arquivo)

tipo text/plain

tamanho 217

handle Resource id #9 (retorno de $handle = fopen( $_FILES['arquivo']['tmp_name'] , "r" ); no arquivo só tem uma linha e a tabela esta zerada o id tb)

Obrigada pela atenção!!!

 

Andreia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, ainda não achei a solução :(

 

Continuo aguardando a ajuda de vcs.

 

Obrigada

 

Andreia Regina

 

====Editando

Mudei o código deixando o formulário em um arquivo e a validação e importação em outro, mas ainda não deu certo, ele não pega o arquivo de jeito nenhum :angry:

<form name='form1' method='post' action='plu04_a.php'>
	        <table width='100%' border='0' cellspacing='0' cellpadding='0'>
	          <tr> 
	            <td width='23%'><font size='2' face='Verdana, Arial, Helvetica, sans-serif'>Arquivo:</font></td>
	            <td width='77%'><font size='2' face='Verdana, Arial, Helvetica, sans-serif'> 
	              <input type='file' name='arquivo'>

PHP

[*]$arq  = $_FILES["arquivo"]["tmp_name"];

[*]$arquivo = $_FILES["arquivo"]["name"];

[*]

[*]$dados = file('$arquivo');

[*]

[*]$sql=mysql_query("TRUNCATE TABLE `tb_descontos`");

[*]

[*]foreach($dados as $row){

[*] $campo = explode('|', $row);

[*] $valor = str_replace(",", ".", $campo[4]);

[*] $sql = "INSERT INTO cm_convenio (seq, g_servico, especialidade, prestador, medico, rua, bairro, cidade, uf, cep, fone01, fone2, inclusao) VALUES ('$campo[0]', '$campo[1]', '$campo[2]', '$campo[3]', '$campo[4]', '$campo[5]', '$campo[6]', '$campo[7]', '$campo[8]', '$campo[9]', '$campo[10]', '$campo[11]',)";

[*] $resultado = mysql_query($sql) or die(mysql_error());

[*]}

[*]mysql_close($dbh);

[*]if ($resultado)

[*]{

[*] print "Dados copiados com sucesso!";

[*]}

[*]else

[*]{

[*] print "Não foi possível copiar os dados do arquivo.";

[*]

[*]} //if ($resultado)*/

[*]?>

Já tentei de algumas formas sem êxito :wacko:

 

Agradeço a quem puder me ajudar :)

 

Andreia Regina

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.