Where IN com parâmetro com vários valores (MySQL / MariaDB)

Tenho 2 tabelas: Grupos e Sub Grupos

Preciso selecionar todos os sub grupos de acordo com o grupo selecionado. No meu caso selecionar 1 grupo e ver todos os sub grupos não foi problema. O problema está em selecionar varios grupos que no caso irá obter todos os sub grupos dos grupos selecionados.

Eu consegui fazer sem usando o Where IN. inserir a descrição da imagem aqui

Colocar os valores manualmente funciona, meu problema está em colocar esses valores por parametro.

inserir a descrição da imagem aqui

Na segunda imagem eu coloquei um parametro pra colocar esses valores (ignorem o primeiro e o terceiro parametro. É o segundo parametro), mas como pode ver ele só pega o primeiro valor, os outros são ignorados.

MYSQL Mostrar todos os valores de uma query em uma única linha por id [pendente]

Fiz a seguinte query:

SELECT v.*, it.*, p.descricao, c.nome, c.sobrenome, f.nome, f.sobrenome FROM vendas v INNER JOIN itemvenda it ON it.idvendas = v.idvendas INNER JOIN cliente c ON c.idcliente = v.idcliente INNER JOIN produto p ON p.idproduto = it.idproduto INNER JOIN funcionario f ON f.idfuncionario = v.idfuncionario ORDER BY v.idvendas 

E obtive a seguinte resposta: Não consegui colocar decentemente aqui

A minha pergunta é: Existe a possibilidade de colocar os valores de idvenda em uma só linha?

Por exemplo, eu gostaria que viesse o idvenda 10, neste caso, em uma só linha porém com as três descrições aparecendo, o valor e a qtd também aparecendo tudo na mesma linha.

Será que fui claro no que estou pretendendo fazer? Alguém consegue me ajudar?

java MySql tablas relacionadas

buen dia, ayuda. estoy trabajando en un proyecto de mysql-java, en el cual ya he realizado ingreso de datos a la primera tabla, pero ahora necesito ingresar datos a una segunda tabla relacionada, necesito el poder capturar la clave primaria de la primera tabla en un jtextfield sin que el usuario tenga que digitar dicha clave, para hacer el ingreso en la segunda tabla.

que metodo debo realizar??

MySQL Actibity without any active visitors via Google Analytics

I am hosting a WP website on a VPS (Debian) and I noticed that my MySQL service is constantly being processed, even without any active live visitors that I can see on Google Analytics.

I am aware that there are crawlers from search engines that try to get the content.

Is there a valid way to prevent overloading my MySQL service by ghost visitors (force visitors to be processed via the Google Analytics? Enable Java?)? Or prevent unwanted bots and crawlers?

Can we use MariaDB mysqldump CLI to take dump from MySQL Community version?

MySQL server version:

mysqld Ver 5.7.26 for Linux on x86_64 (MySQL Community Server (GPL))

MariaDB mysqldump CLI version:

mysqldump Ver 10.17 Distrib 10.3.12-MariaDB, for Linux (x86_64)

I am using this mysqldump version to take dump from the mentioned mysqld version. Data is around 25 gb.

I am getting below error while importing the dump,

ERROR 3105 (HY000) at line 82: The value specified for generated column ‘column_name’ in table ‘table_name’ is not allowed.

Can we use MariaDB mysqldump CLI to take dump from MySQL Community version?

Como usar WEBSOCKET em um chat PHP MYSQL

Boa noite, comecei a pesquisar e querer trabalhar com websocket para atualizar em tempo real um chat que possuo no meu codigo, mas não consegui entender direito o websocket pra fazer a implementação, se alguém puder me ajudar agradeço…Possuo essa parte do codigo que envia a mensagem para outro usuario:

right-col.php

      <?php         $  no_message = false ;      if(isset ($  _GET ['user'])){       $  _GET['user'] = $  _GET['user'] ;   }else{       //user variable is not in the url bar       //so  select the last user, you have sent message     $  q= 'SELECT sender_name, reciever_name FROM messages        WHERE sender_name = "'.$  _SESSION['login'].'"       or reciever_name = "'.$  _SESSION['login'].'"       ORDER BY date_time DESC LIMIT 1';          $  r = mysqli_query($  con, $  q) ;         if($  r){               if(mysqli_num_rows($  r)>0){                   while($  row =mysqli_fetch_assoc($  r)){                        $  sender_name = $  row['sender_name'] ;                        $  reciever_name = $  row['reciever_name'] ;                         if($  _SESSION['login'] == $  sender_name){                             $  _GET['user'] = $  reciever_name ;                        }else{                             $  _GET['user'] = $  sender_name;                        }                   }               }else{                 //this user havent sent any message                 echo 'Não existe menssagens para você' ;                  $  no_message = true;               }         }else{           //query problem           $  q ;         }    }          if($  no_message == false){         $  q="SELECT * FROM messages WHERE              sender_name = '".$  _SESSION ['login']."'             AND reciever_name = '".$  _GET ['user']."'             OR               sender_name = '".$  _GET ['user']."'              AND reciever_name = '".$  _SESSION ['login']."' ";          $  r = mysqli_query($  con, $  q) ;          if($  r){             //query seccessfull           while($  row = mysqli_fetch_assoc($  r)){               $  sender_name = $  row['sender_name'] ;               $  reciever_name = $  row['reciever_name'] ;               $  message = $  row['message_text'] ;                 //check who is the sender of the message               if($  sender_name == $  _SESSION['login']){                  //show the message with grey back                ?>                  <div class="grey-message">                   <a href="#">Eu:</a>                    <p><?php echo $  message; ?></p>                  </div>                 <?php                 }else{                 // show the message with white back                 ?>                  <div class="white-message">                   <a href="#"><?PHP echo $  sender_name;?></a>                    <p><?php echo $  message; ?></P>                </div>                  <?php                }           }          }else{            //query problem           echo $  q ;         }          //end of message        }       ?> <style> #message_text{width: 570px; height: 50px; resize: none;margin-left: 1%;margin-top:1%;} .hid {width:80px;height:50px;background:#233070;border:2px solid #233070;float:right;color:white;margin-right: 3%;margin-top:-50px;}  </style>         <!-- end of messages container //input {padding: 10px 5px; width: 50%;}-->    </div>    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>    <form method='post' id="message-form">   <textarea class="form-control" id="message_text" placeholder="Escreva sua mensagem aqui!"></textarea>   <button type="submit" class="hid">Enviar</button>   </form>             <!--end of right-col-container --> </div>  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="sub_file/jquery-3.1.1.min.js"></script>  <script>   jQuery(document).ready(function($  ) {   $  (document).on('submit', '#message-form', function (e) {     // Importante para previnir o comportamente default de submit do form     // e evitar o reload da página e possiveis duplicidades em requisições     e.preventDefault();      // debug    // alert('Form enviado com ENTER, preparando ajax.');      var url = "sub_file/sending_process.php?user=<?php echo $  _GET['user'];?>";     var data = { message: $  .trim($  ('#message_text').val()) };      $  .post(url, data, function (response) {       $  ("#message_text").val("");        // agora adicione os dados dentro       // o contêiner de mensagens       document.getElementById("messages-container").innerHTML += response;     })     .fail(function () {       alert('Erro ao enviar a mensagem');     });   }); }); </script> 

o sending_process.php

<?php      session_start() ;      require_once("../connection.php");     if(isset($  _SESSION['login']) and isset($  _GET['user'])){          if(isset($  _POST['message'])){             //now check for empty message              if($  _POST['message'] !=''){             //now from here we can insert             //data into the database              $  sender_name = $  _SESSION['login'];             $  reciever_name = $  _GET['user'];             $  message = $  _POST['message'] ;              $  date = date("Y-m-d h:i:sa") ;              $  q = "INSERT INTO messages                (sender_name, reciever_name, message_text, date_time)               VALUES('$  sender_name','$  reciever_name','$  message', '$  date')";               $  r = mysqli_query($  con, $  q) ;                if($  r){                 //message sent                  ?>                  <div class="grey-message">                   <a href="#">Eu:</a>                    <p><?php echo $  message; ?></p>                  </div>                 <?php                 }else{                   //problem in query                   echo $  q;               }               }else{                 echo 'please write something first' ;             }            }else{             echo 'problem with text';          }     }else{          echo 'please login or select a user to send a message';     }   ?> 

eu achei esse trecho utilizando o websocket, tentei implementar no meu, mas não deu certo..

aplicacao.js

<script> window.onload = function() {      // Pegando as referências para os elementos da página.     var form = document.getElementById('mensagem-formulario');     var mensagemTexto = document.getElementById('mensagem');     var listaMensagem = document.getElementById('mensagens');     var socketStatus = document.getElementById('status');     var btnFechar = document.getElementById('close');       // Criando uma nova WebSocket.     var socket = new WebSocket('ws://echo.websocket.org');       // segurando os erros que ocorrerem.     socket.onerror = function(error) {       console.log('erros do WebSocket: ' + error);     };       // Mostrando a mensagem de Conectado quando o WebSocket for aberto.     socket.onopen = function(event) {       socketStatus.innerHTML = 'Conectado com: ' + event.currentTarget.URL;       socketStatus.className = 'open';     };      // Pegando as mensagens enviadas pelo servidor.     socket.onmessage = function(event) {       var mensagem = event.data;       listaMensagem.innerHTML += '<li class="recebida"><span>Recebida:</span>' +                                  mensagem + '</li>';     };      //Mostrando a mensagem de desconectado quando o websocket for fechado.     socket.onclose = function(event) {       socketStatus.innerHTML = 'Disconectando o WebSocket.';       socketStatus.className = 'closed';     };      //Enviando uma mensagem quando o formulário for submetido.     form.onsubmit = function(e) {       e.preventDefault();        // Recuperando a mensagem do textarea.       var mensagem = mensagemTexto.value;        // Enviando a mensagem através do WebSocket.       socket.send(mensagem);        //Adicionando a mensagem para a lista de mensagens.       listaMensagem.innerHTML += '<li class="envia"><span>Enviada:</span>' + mensagem +                                 '</li>';        // Limpando o campo de mensagem.       mensagemTexto.value = '';       return false;     };     //Fechando a conexão WebSocket quando o botão for clicado.     btnFechar.onclick = function(e) {       e.preventDefault();        // Fechando o WebSocket.       socket.close();       return false;     };   };   <script> 

Só quero que essa parte da pagina atualize em tempo real..sou iniciante, já li varios arquivos explicando sobre o websockets mas ta confuso ainda..me ajudem pfv

Добавление нового поля в связанную таблицу mysql

Скажем, для примера у меня есть две таблицы:

table1 ------ id name 

и

table2 ------ id secondName 

Таблицы связаны по id

Я делаю запрос:

SELECT * FROM  `table1` LEFT JOIN  `table2` USING (id) 

И в итоге получаю след. поля:

id name secondName 

с которыми дальше работаю в php и обрабатывю как массив через mysql_fetch_row

Но вот в чем вопрос. Скажем, я забыл одно из полей, и добавляю в первую таблицу новое поле, теперь таблица такая:

table1 ----- id name bd 

Делаю такой же запрос, как выше и получаю:

id name bd secondName 

Но проблема в том, что уже в коде индексы в массиве были другие и теперь все сдивнулось. Как с этим можно бороться? Понимаю, что можно делать выборку только нужных столбцов или еще как-то. Но вот например можно как-то этот новый столбец добавлять в конец, чтобы было так:

id name secondName bd 

Спасибо

Otimizar velocidade do insert Mysql

Criei uma tabela para teste e adicionei um script que gera caracteres aleatoriamente e da um insert nos campos a,b e c. Para a realização de 1000 INSERTS levou o tempo de 36s e rodando o mesmo script porem sem gravar no banco o resultado foi de 3 segundos. consigo melhorar esse tempo de alguma forma?

Configuração:

Tipo de servidor: MariaDB
Sistema Operacional: Windows 7
RAM: 4G
Processador: Pentium E5700 3Ghz

Banco:

CREATE TABLE `teste` (   `id` int(11) NOT NULL,   `a` varchar(15) NOT NULL,   `b` varchar(15) NOT NULL,   `c` varchar(15) NOT NULL )  ALTER TABLE `teste`   ADD PRIMARY KEY (`id`); ALTER TABLE `teste`   MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; 

Como Inserir dado no Mysql Direto do Arduino [pendente]

Como Inserir dado em uma Tablela Mysql Direto do Arduino Sou novo no Arduino e gostaria de saber como posso nesse codigo a baixo fazer uma inserção no banco de dados

Esse codigo ao passar o Cartão RFID e da acesso autorizado, ele acende uma luz verde e toca um som, gostaria que nesse mesmo momento ele realiza-se uma inserção no banco em um banco de dados.

Estou utilizando o ESP01

inserir a descrição da imagem aqui

 #include <SPI.h>  #include <MFRC522.h>   //Pinos  #define LED_VERDE 6  #define LED_VERMELHO 7  #define BUZZER 8  #define SS_PIN 10  #define RST_PIN 9  String IDtag = ""; //Variável que armazenará o ID da Tag bool Permitido = false; //Variável que verifica a permissão   //Vetor responsável por armazenar os ID's das Tag's cadastradas String TagsCadastradas[] = {"669b5d5e",                          "ID_2",                         "ID_3"};  MFRC522 LeitorRFID(SS_PIN, RST_PIN);    // Cria uma nova instância para o  leitor e passa os pinos como parâmetro   void setup() {     Serial.begin(9600);             // Inicializa a comunicação Serial     SPI.begin();                    // Inicializa comunicacao SPI      LeitorRFID.PCD_Init();          // Inicializa o leitor RFID     pinMode(LED_VERDE, OUTPUT);     // Declara o pino do led verde como  saída     pinMode(LED_VERMELHO, OUTPUT);  // Declara o pino do led vermelho como  saída     pinMode(BUZZER, OUTPUT);        // Declara o pino do buzzer como saída   }  void loop() {   Leitura();  //Chama a função responsável por fazer a leitura das Tag's   }    void Leitura(){      IDtag = ""; //Inicialmente IDtag deve estar vazia.      // Verifica se existe uma Tag presente     if ( !LeitorRFID.PICC_IsNewCardPresent() ||   !LeitorRFID.PICC_ReadCardSerial() ) {         delay(50);         return;     }      // Pega o ID da Tag através da função LeitorRFID.uid e Armazena o ID na    variável IDtag             for (byte i = 0; i < LeitorRFID.uid.size; i++) {                 IDtag.concat(String(LeitorRFID.uid.uidByte[i], HEX));     }              //Compara o valor do ID lido com os IDs armazenados no vetor    TagsCadastradas[]     for (int i = 0; i < (sizeof(TagsCadastradas)/sizeof(String)); i++) {       if(  IDtag.equalsIgnoreCase(TagsCadastradas[i])  ){           Permitido = true; //Variável Permitido assume valor verdadeiro    caso o ID Lido esteja cadastrado       }     }             if(Permitido == true) acessoLiberado(); //Se a variável Permitido for    verdadeira será chamada a função acessoLiberado()             else acessoNegado(); //Se não será chamada a função acessoNegado()      delay(0001); //aguarda 2 segundos para efetuar uma nova leitura   }      void acessoLiberado(){     Serial.println("Tag Cadastrada: " + IDtag); //Exibe a mensagem "Tag      Cadastrada" e o ID da tag não cadastrada     efeitoPermitido();  //Chama a função efeitoPermitido()     Permitido = false;  //Seta a variável Permitido como false novamente    }    void acessoNegado(){   Serial.println("Tag NAO Cadastrada: " + IDtag); //Exibe a mensagem "Tag    NAO Cadastrada" e o ID da tag cadastrada   efeitoNegado(); //Chama a função efeitoNegado()   }    void efeitoPermitido(){     int qtd_bips = 2; //definindo a quantidade de bips   for(int j=0; j<qtd_bips; j++){   //Ligando o buzzer com uma frequência de 1500 hz e ligando o led verde.   tone(BUZZER,1500);   digitalWrite(LED_VERDE, HIGH);    delay(100);     //Desligando o buzzer e led verde.       noTone(BUZZER); digitalWrite(LED_VERDE, LOW); delay(100); }   }  void efeitoNegado(){   int qtd_bips = 1;  //definindo a quantidade de bips for(int j=0; j<qtd_bips; j++){    //Ligando o buzzer com uma frequência de 500 hz e ligando o led vermelho. tone(BUZZER,500); digitalWrite(LED_VERMELHO, HIGH);    delay(500);   //Desligando o buzzer e o led vermelho. noTone(BUZZER); digitalWrite(LED_VERMELHO, LOW); delay(500); }   }