Jump to content
Sign in to follow this  
ghlevin

Fazendo MySQL UPDATE em banco DB de acordo com MySQL SELECT em banco D

Recommended Posts

Preciso fazer UPDATE em um campo (office) de uma tabela (investidor) do banco de dados (b2c) no meu site.
Contudo, esse UPDATE dependerá de uma consulta SELECT que é feita em outro banco de dados de outro site (ambos os sites pertencem à mesma empresa). Os dois bancos são em MySQL.
Abaixo o código que eu implementei:
     $emailInv = $this->email;
     $sqlNuevo = "SELECT DISTINCT uh.TIPO_INVESTIDOR FROM ipi_tst.uh
JOIN ipi_tst.investidor i ON i.ID = uh.ID_INVESTIDOR
JOIN ipi_tst.usuario u ON u.ID = i.ID_USUARIO
WHERE u.EMAIL = '$emailInv' AND u.ID <> 0 ORDER BY FIELD(TIPO_INVESTIDOR,'P','C','O','A')";
     $rNew = System::element('db2')->query($sqlNuevo);
     if ($rNew[0]['TIPO_INVESTIDOR'] == 'O'){
     $sqlUpd = "UPDATE b2c.investidor SET office = '1' WHERE email = '$emailInv' AND ID <> 0";
     $res = System::element('db')->query($sqlUpd);
     }
     else if ($rNew[0]['TIPO_INVESTIDOR'] == 'A'){
     $sqlUpd = "UPDATE b2c.investidor SET office = '2' WHERE email = '$emailInv' AND ID <> 0";
     $res = System::element('db')->query($sqlUpd);
     }
     else {
     $sqlUpd = "UPDATE b2c.investidor SET office = '0' WHERE email = '$emailInv' AND ID <> 0";
     $res = System::element('db')->query($sqlUpd);
     }

Por enquanto, ele só consegue fazer update colocando valores Zero. Há casos em que dentro dessa tabela uh não tenha valores P ou C (office = 0). Pode ser que eu tenha apenas O ou apenas A, e aí precisaria fazer update colocando 1 ou 2, respectivamente.

O que pode estar errado? Não tenho certeza se ele conseguiu fazer a conexão com meu banco db2 (do outro site). O arquivo config.INI teve a adição dos dados database_portal. Eis o código desse arquivo (omiti algumas informações aqui por segurança e coloquei abaixo entre << e >> ):
    [application]
    versao = 1.0
    titulo = B2C
    default_pagina = index
    default_metodo = index
    default_erro = erro
    default_erro_403 = erro403
    default_erro_404 = erro404
    default_login = login
    debug = 0
    idioma = pt-BR
    moeda = RS
    identificador = ipi_


    [mensagem]
    fundo = #000000
    cor = #ffffff
    delay = 2000
    posicao = bottom


    [dir]
    raiz[localhost] = http://localhost/
    raiz[<<MEU IP DO SITE>>] = <<MEU IP DO SITE>>
    raiz[<<MEU LINK DO SITE>>] = <<MEU LINK DO SITE>>


    [database]
    db_alias = db
    db_type = mysql
    db_name = b2c
    db_hostname = localhost
    db_username = <<LOGIN DO db>>
    db_password = <<SENHA DO db>>
    db_port = 3306


    [database_portal]
    db_alias = db2
    db_type = mysql
    db_name = ipi_tst
    db_hostname = <<IP DO OUTRO SITE>>
    db_username = ipi_tst
    db_password = ipi_tst
    db_port = 3306


    [cookie]
    duracao = 10800
    caminho = /
    dominio = 


    [mail]
    mailer_type = system
    admin_email = admin@framework.com
    admin_name = "Admin - Framework"
    smtp_server = mail.framework.com 
    smtp_port = 25;
    x_mailer = "xxxxx"
    smtp_server = "mail.framework.com"
    smtp_port = 25
    smtp_timeout = 30


    [logging]
    nivel_log = 200
    handler_log = file
    arquivo_log = erros.log


    [document_root]
    root = <<DIRETÓRIO RAIZ>>
    rootDSV = <<OUTRO DIRETÓRIO>>


    [version]
    atual_version = 1.5

E tem também o libBanco.php, incluso dentro do diretório trunk/libs/libBanco. Nesse arquivo só inclui a função SWITCH relacionada com o banco do outro site (db2 ou database_portal):

    <?php
    $dir = '../libs/libBanco'; 


    require_once("$dir/banco.php");
    require_once("$dir/modeloBanco.php");
    
    switch(Config::retorna('database', 'db_type')) {
        case 'oracle':
            require_once('oracle.php');
            $db = new Oracle();            
            break;
        case 'mysql':
            require_once('mysql.php');
            $db = new Mysql();            
            break;            
        default:
            $db = null;
            break;
    }
    
    switch(Config::retorna('database_portal', 'db_type')) {
     case 'oracle':
     require_once('oracle.php');
     $db2 = new Oracle();
     break;
     case 'mysql':
     require_once('mysql.php');
     $db2 = new Mysql();
     break;
     default:
     $db2 = null;
     break;
    }
    
    System::define(Config::retorna('database', 'db_alias'), $db);
    System::define(Config::retorna('database_portal', 'db_alias'), $db2);
    ?>

Não sei se faltou alguma configuração nesse caso também. Talvez em algum outro arquivo. O que pode ser? Espero que seja só algum erro no sqlNuevo do código que implementei inicialmente.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By iagomonteiro
      Estou criando um jogo de cartas em web, o jogo é bem estilo HS, e estou tendo problemas para adicionar condições de movimentação no drag and drop. Como vocês podem ver eu tenho uma variável mana, e a movimentação das cartas só seria possível de acordo com ela, porém quando adiciono as condições o D&D acaba nem se movimentando mais, pensei em chamar cada função do d&d dentro de uma condição, mas também não funcionou, alguém pode ajudar?
       
      JS
      // Jogador 1
      const fillplace1 = document.querySelector('#fillplace1');
      const fillplace2 = document.querySelector('#fillplace2');
      const fillplace3 = document.querySelector('#fillplace3');
      var fill;
      const empties = document.querySelectorAll('.empty');
      fillplace1.addEventListener('dragstart', enterstart);
      fillplace2.addEventListener('dragstart', enterstart);
      fillplace3.addEventListener('dragstart', enterstart);
      for (const empty of empties) {
          empty.addEventListener('dragover', dragOver);
          empty.addEventListener('dragenter', dragEnter);
          empty.addEventListener('dragleave', dragLeave);
          empty.addEventListener('drop', dragDrop);
      }
      function enterstart(){
          fill = this;
      }
      function dragOver(e) {
          e.preventDefault();
      }
      function dragEnter(e) {
          e.preventDefault();
          this.className += ' hovered';
      }
      function dragLeave() {
          this.className = 'empty';
      }
      function dragDrop(id) {
          this.className = 'empty';
          this.append(fill);
      }
       
      HTML
      <link rel="stylesheet" href="../css/jogar.css" />
       
      <div id="barraGeneral">
          <img src="../imagens/Campo/barraGeneralalfa.png" id="imggeneral" />
      </div>
       
      <div id="persona">
          <img src="../imagens/Personagem/cucapersonagem.png" id="imgpersonagem" />
      </div>
       
      <button id="btpassar" onclick="cont();">Passar Rodada</button>

      <H1 id="campomana">1</H1>
       
      <!-- Mesa das cartas jogador 1-->
      <div class="empty" id="emptyplace1">
      </div>
      <div class="empty" id="emptyplace2">
      </div>
      <div class="empty" id="emptyplace3">
      </div>
      <div class="empty" id="emptyplace4">
      </div>
      <div class="empty" id="emptyplace5">
      </div>
       
      <!-- Mão do jogador 1 -->
      <div class="emptyhand1">
          <div class="fill" draggable="true" id="fillplace1">
              <img src='../imagens/Sorteio/aa.png' draggable='true'>
          </div>
      </div>
       
      <div class="emptyhand2">
          <div class="fill" draggable="true" id="fillplace2">
              <img src='../imagens/Sorteio/aa2.png' draggable='true'>
          </div>
      </div>
       
      <div class="emptyhand3">
          <div class="fill" draggable="true" id="fillplace3">
              <img src='../imagens/Sorteio/aa2.png' draggable='true'>
          </div>
      </div>
       
    • By drx
      Olá Pessoal!
       
      Eu estou tentando instalar o sgbd navicat para acessar meu banco de dados, porém sem sucesso. 
      Pergunta: Para usar o sgbd navicat é necessário instalar o mysqlserver  ou o navicat já traz no pacote dele ao instalar?
      Aguardo.
       
    • By Anderson Maciel
      Boa tarde pessoal,

      Estou quebrando a cabeça para resolver um problema, tenho uma div dinâmica que carrega uma <table> em uma das colunas deveria apresentar o componente Switchery, esta <table> é montada a partir de uma função PHP que faz o select em uma tabela do banco de dados conforme abaixo:
       
      echo '<table class="table table-hover"> <thead> <tr> <th>Nome</th> <th>Agrupamento</th> <th>Ativo</th> </tr> </thead> <tbody>'; foreach($data as $row) { If ($row['ativo'] == 1) {$vativochk = "checked";} else {$vativochk = "";} echo '<tr> <td>'.$row['nome'].'</td> <td>'.$row['agrupamento'].'</td> <td><input type="checkbox" name="ativo_grid" class="js-switch" '.$vativochk.' disabled="disabled"></td> </tr>'; } echo ' </tbody> </table>'; Aqui está o Ajax que chama e retorna atualizando a DIV:
      //funcoes do grid dos graficos function atualiza_grid_graficos() { $.ajax({ type: "POST", url: "hubfuncind.php", data: { id_tabindicadores_paineis: $('#id_tabindicadores_paineis').val(), acao: "gridgraficos" }, success: function(data) { $('#conteudo').html(data); } }); } O retorno vem certinho, mas apenas o componente Switchery está vindo desconfigurado, ou seja vem um checkbox normal (html).

      O que é mais incrível é que neste mesmo formulário mais acima tenho este mesmo componente funcionando normalmente, somente dentro da DIV dinâmica é que fica desconfigurado conforme imagem anexa.

      Será que alguém já passou por isso?

    • By violin101
      Caros amigos membros do grupo, saudações...
       
      Gostaria de tirar uma dúvida com os amigos.
       
      Tenho uma rotina onde consigo efetuar o Download de arquivos para uma pasta dentro do sistema, o que preciso seria mudar o nome do arquivo, por exemplo:
       
      após selecionar  o arquivo criado com o nome de: ESTOQUE.PDF
       
      gostaria de gravar na pasta de upload's com um novo nome, como por exemplo: cliente[1]-estoque.pdf.
       
      Onde poderia fazer essa alteração na rotina abaixo, para gravar o arquivo com um novo nome ?
       
      abaixo posto o fonte da rotina.
      <?php public function anexar() { $this->load->library('upload'); $this->load->library('image_lib'); $upload_conf = array( 'upload_path' => realpath('./assets/anexos'), 'allowed_types' => 'pdf|PDF|doc|DOC|docx|DOCX', // formatos permitidos para anexos de os 'max_size' => 1024, ); //Recebe a variável via POST $validade = $this->input->post('validade'); $this->upload->initialize($upload_conf); foreach ($_FILES['userfile'] as $key => $val) { $i = 1; foreach ($val as $v) { $field_name = "file_".$i; $_FILES[$field_name][$key] = $v; $i++; } } unset($_FILES['userfile']); $error = array(); $success = array(); foreach ($_FILES as $field_name => $file) { if (! $this->upload->do_upload($field_name)) { $error['upload'][] = $this->upload->display_errors(); } else { $upload_data = $this->upload->data(); if ($upload_data['is_image'] == 1) { // set the resize config $resize_conf = array( 'source_image' => $upload_data['full_path'], 'new_image' => $upload_data['file_path'].'thumbs/thumb_'.$upload_data['file_name'], 'width' => 200, 'height' => 125 ); $this->image_lib->initialize($resize_conf); if (! $this->image_lib->resize()) { $error['resize'][] = $this->image_lib->display_errors(); } else { $success[] = $upload_data; $this->load->model('Dados/Dadosclie_model'); $this->Dadosclie_model->anexar($this->input->post('idCli'), $this->input->post('descricao'), $validade, $upload_data['file_name'], base_url().'assets/anexos/', 'thumb_'.$upload_data['file_name'], realpath('./assets/anexos/')); } } else { $success[] = $upload_data; $this->load->model('Dados/Dadosclie_model'); $this->Dadosclie_model->anexar($this->input->post('idCli'), $this->input->post('descricao'), $validade, $upload_data['file_name'], base_url().'assets/anexos/', '', realpath('./assets/anexos/')); } } } if (count($error) > 0) { echo json_encode(array('result'=> false, 'mensagem' => 'Nenhum arquivo foi anexado.')); } else { echo json_encode(array('result'=> true, 'mensagem' => 'Arquivo(s) anexado(s) com sucesso .')); } } ?>  
      Grato,
       
      Cesar
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.