Ir para conteúdo
fabriciothe2018

in_array coluna mysql

Recommended Posts

Olá,

 

Tenho uma tabela chamada noticias, nesta tabela existe uma coluna chamada cidades.

 

Há um registro onde o valor da coluna cidades é: 2,3,4

 

Gostaria de filtrar os registros que contenha o número 3 na coluna cidades.

 

Há como criar uma condição? Uma espécie de in_array no MySQL?

 

Exemplo:

Citar

SELECT * FROM noticias WHERE cidades IN ('3')

 

No exemplo acima não retorna nada, óbvio rsrs.. Retornaria apenas se eu usasse: ...cidades IN ('2,3,4')

 

De já, agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Rodrigo5468
      Boa tarde a todos.
       
      Estou desenvolvendo um sistema de registro para fins de estudos, mas tenho algumas dúvidas e dificuldades até. Estou usando "programação orientada a objetos", e quero validar alguns campos do meu registro, se puderem me auxiliar, será de grande ajuda.
       
      Meu Diretório:
      Projeto1/ ├── backend/ │ ├── classes/ │ │ ├── Register.php ├── index.php Em Register.php tenho o seguinte código para fazer a validação, mas acredito que estou fazendo algo de errado.
      public function setUsername($username) { $sql = "SELECT * FROM $this->table WHERE username = :username"; $stmt = Database::prepare($sql); $stmt->execute(array('username' => $_POST["username"])); if(empty($_POST["username"])) { return "O campo usuário não pode ser vázio."; }elseif(ctype_space($_POST["username"])) { return "Não pode usar apenas espaços no campo de usuário."; }elseif(strlen($_POST["username"] < 3)) { return "É necessário no mínimo 3 (três) caracteres no usuário."; }elseif(strlen($_POST["username"] > 15)) { return "O máximo é de 15 (quinze) caracteres no usuário."; }elseif(preg_match("/^[a-zA-Z0-9]*$/", $_POST["username"] == 0)) { return "O nome de usuário só pode conter letras e números. (sem espaços e sem caracteres epeciais)"; }elseif($stmt->num_rows !== 0) { return "O nome de usuário já está cadastrado em nossos bancos de dados."; }else { $this->username = $username; } } E no index.php tenho o seguinte código, acredito que está certo, mas eu gostaria de mostrar as mensagens de erros que estão no Register.php, como que posso fazer isso?
      $register = new Registers(); if(isset($_POST["cadastrar"])) { $username = $_POST["username"]; $email = $_POST["email"]; $password = $_POST["password"]; $register->setUsername($username); $register->setEmail($email); $register->setPassword($password); if($register->insert()) { return "Usuário cadastrado com sucesso."; } }  
       
      Obrigado pela atenção!
    • Por fabriciothe2018
      Olá,
       
      Tenho uma tabela chamada anuncios, nela há as colunas: id, nome, finalizar e datafim.
       
      Tenho os seguintes registros:
      1, teste1, N, 0000-00-00
      2, teste2, S, 2018-12-05
       
      Gostaria de fazer um SELECT listando apenas os registros onde o valor da coluna finalizar seja N ou que seja S, desde que quando seja S, a datafim seja menor ou igual a hoje.
       
      De já agradeço a ajuda.
    • Por rogarfil
      <div class="video-sec">
        <h4 class="heading-small">Mídias</h4>
        <div class="video-block">
        <ul class="nav nav-pills justify-content-center mb-4" id="pills-nav" role="tablist">      
        <?php
        // Atribui uma conexão PDO
        $conexao = Connection::getInstance();
        $controle_ativo = 2;
        //$controle_num_slide = 1;
        $sql = "SELECT * FROM db_post WHERE status=1 AND category='Mídia' ORDER BY created DESC LIMIT 3";
        $stm = $conexao->prepare($sql);
        $stm->execute();
        while($post = $stm->fetch(PDO::FETCH_OBJ)) {
          if($controle_ativo == 2) { ?>
            <li class="nav-item">
              <a class="nav-link active" id="nav-pills-01" data-toggle="pill" href="#<?=$post->post_id?>"><?=$post->title?></a>
            </li>
          <?php
            $controle_ativo = 1;
          } else {
          ?>
            <li class="nav-item">
              <a class="nav-link" id="nav-pills-02" data-toggle="pill" href="#<?=$post->post_id?>"><?=$post->title?></a>
            </li>
          <?php
            //$controle_num_slide++;
          }
        }
        ?>
      </ul>
      <div class="tab-content" id="nav-pills-content">      
        <?php
        // Atribui uma conexão PDO
        $conexao = Connection::getInstance();
        $controle_ativo = 2;
        $sql = "SELECT * FROM db_post WHERE status=1 AND category='Mídia' ORDER BY created DESC LIMIT 3";
        $stm = $conexao->prepare($sql);
        $stm->execute();
        while($post = $stm->fetch(PDO::FETCH_OBJ)) {
          if($controle_ativo == 2) { ?>
        <div class="tab-pane fade show active" id="<?=$post->post_id?>" role="tabpanel">
          <div class="row">
            <div class="col-sm-6">
              <div class="embed-responsive embed-responsive-16by9"> <!-- 21by9, 16by9, 4by3, 1by1 -->
                <iframe class="embed-responsive-item" src="<?=$post->url?>"></iframe>
              </div>
            </div>
            <div class="col-sm-6">
              <p class="display-5"><?=$post->content?></p>
              <p class="card-text">
                <small class="text-time">
                  <em>Publicado em <?=date('M,d',strtotime($post->created))?></em>
                </small>
              </p>
            </div>
          </div>
        </div>
          <?php
            $controle_ativo = 1;
          } else {
          ?>
        <div class="tab-pane fade" id="<?=$post->post_id?>a" role="tabpanel">
          <div class="row">
            <div class="col-sm-6">
              <div class="embed-responsive embed-responsive-16by9"> <!-- 21by9, 16by9, 4by3, 1by1 -->
                <iframe class="embed-responsive-item" src="<?=$post->url?>"></iframe>
              </div>
            </div>
            <div class="col-sm-6">
              <p class="display-5"><?=$post->content?></p>
              <p class="card-text">
                <small class="text-time">
                  <em>Publicado em <?=date('M,d',strtotime($post->created))?></em>
                </small>
              </p>
            </div>
          </div>
        </div>
          <?php
          }
        }
        ?>
      </div>
      Há aba ativa está perfeita quando clico na segunda ou terceira aba nada acontece (não abre), tenho que deixar dinâmico. Ainda pergunto existe uma maneira com javascript para ativar a aba e seu conteúdo.

    • Por murilo
      Olá, poderiam me ajudar com o erro abaixo?
      [29-Oct-2018 10:05:04 America/Recife] PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user 'mdoria'@'localhost' (using password: NO)' in /home/includes/conexao.php:22 Stack trace: #0 /home/includes/conexao.php(22): PDO->__construct('mysql:host=loca...', NULL, NULL) #1 /home/includes/connection.php(34): include('/home/mdoria/pu...') #2 /home/functions_ajax.php(2): include('/home/mdoria/pu...') #3 {main} thrown in /home/includes/conexao.php on line 22 Meu php está com a seguinte estrutura:
      Arquivo: connection.php
      <?php error_reporting(E_ALL & ~E_DEPRECATED & ~E_NOTICE); date_default_timezone_set("America/Recife"); session_start(); include "includes/constantes.php"; include "includes/conexao.php"; Arquivo: conexao.php
      <?php $conCore = new PDO("mysql:host=" . SERVIDOR . ";dbname=" . CORE_BANCO, CORE_USUARIO, CORE_SENHA); $conCore->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $conCore->query("SET NAMES 'utf8'"); $conCore->query('SET character_set_connection=utf8'); $conCore->query('SET character_set_client=utf8'); $conCore->query('SET character_set_results=utf8'); $query = "SELECT * FROM usuario WHERE identificador = '$_GET[sis]'"; $resultCore = $conCore->query($query); $rowCore = $resultCore->fetch(PDO::FETCH_OBJ); if (empty($rowCore->id)) { echo "<script>window.location.href = '$URLbase';</script>"; } define("BANCO", $rowCore->banco); define("USUARIO", $rowCore->user); define("SENHA", $rowCore->senha); $con = new PDO("mysql:host=" . SERVIDOR . ";dbname=" . BANCO, USUARIO, SENHA); $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $con->query("SET NAMES 'utf8'"); $con->query('SET character_set_connection=utf8'); $con->query('SET character_set_client=utf8'); $con->query('SET character_set_results=utf8');  
      Já antecipo meus agradecimentos a quem possa me auxiliar.
    • Por Moscou
      Guys, em uma aplicação teste, estava querendo salvar certas informações no bd, local funcionou ok, mas passando online, não. Online, fiz várias verificações, a conexão com o banco é feita, os valores são passados corretamente também, de acordo com o usuario.
      Alguém pode ajudar para saber se o codigo pode estar errado ou alguma outra coisa. Segue o codigo
      <?php ob_start(); session_start();   $user = filter_input(INPUT_POST, 'user'); $tel = filter_input(INPUT_POST, 'tel'); $email = filter_input(INPUT_POST, 'email'); $terms = filter_input(INPUT_POST, 'terms'); $img= $_FILES['img']['name'];   function connection() { try { $dbhost = 'localhost'; $dbname = 'teste'; $dbuser = 'root'; $dbpass = '';   $pdo = new PDO('mysql:host='.$dbhost.';dbname='.$dbname, $dbuser, $dbpass, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);   } catch(PDOException $error) { echo 'ERRO: '.$error->getMessage(); } return $pdo; }   $sql = "INSERT INTO teste(user, tel, email, terms, img) VALUES(:user, :tel, :email, :terms, :img)";   $stmt = connection()->prepare($sql); $stmt->bindParam(':user', $user, PDO::PARAM_STR); $stmt->bindParam(':tel', $tel, PDO::PARAM_STR); $stmt->bindParam(':email', $email, PDO::PARAM_STR); $stmt->bindParam(':img', $img, PDO::PARAM_STR); $stmt->bindParam(':terms', $terms);
      preg_match_all('/\.[a-zA-Z0-9]+/', $user, $extensao);   // Tratamento para arquivo $folder = "arquivos/"; $folder = $folder . basename($user.' - '.(md5(uniqid()))); if(!in_array(strtolower(current(end($extensao))), array('.png', '.jpg'))) : if(move_uploaded_file($_FILES['img']['tmp_name'], $folder)): echo "A imagem". basename($_FILES['img']['name']). " veio"; else: echo "Algo de errado não deu certo. :("; endif; endif;   if($stmt->execute()): header('Location:somewhere'); else: header('Location:somewhere'); endif;   ob_end_flush();   ?>
×

Informação importante

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