Jump to content
Thiago Sales

Erro ao selecionar as mensagens dos usuários While

Recommended Posts

Olá boa noite,

 

estou com alguns problemas aqui desenvolvendo um sistema de chat, até está fluindo, mas na hora de selecionar as mensagens, ele só pega as minhas, e só funciona no caso se tirar o WHERE ....

WHERE id_de = '$sessionPerfilUser' AND id_para = '$pegaUsuario'

Não sei o que estou fazendo de errado, mas não está carregando todas as mensagens, só as minhas

 

Meu código:

        $pegaUsuario = $_GET['usuario'];
	$seleciona = mysql_query("SELECT * FROM mensagens WHERE id_de = '$sessionPerfilUser' AND id_para = '$pegaUsuario'");
	$conta = @mysql_num_rows($seleciona);

	if($conta <= 0){
		echo "<center> Opps. Erro ao selecionar as mensagens, por favor tente novamente mais tarde. </center></br>";
	}else{
	while($ln = mysql_fetch_array($seleciona)){
	$idPost = $ln['id'];
	$id_de = $ln['id_de'];
	$id_para = $ln['id_para'];
	$mensagem = $ln['mensagem'];
	$data = $ln['data'];
	$hora = $ln['hora'];

w4k2LYU.png

 

 

Não sei o que estou fazendo errado, alguém poderia me ajudar?

Obrigado !

Share this post


Link to post
Share on other sites

Na index.php

include_once("settings/settings.php");
@session_start();
date_default_timezone_set('America/Sao_Paulo');

$sessionPerfilUser = $_SESSION['usuarioLogin'];
$sessionPerfilNome = $_SESSION['usuarioNome'];

....

Como é impossível colocar dois auto_increments em uma tabela, eu não achei outro método de fazer

 

no caso, esse não funcionou e eu estava pensando em criar uma variável com o auto_increment para dar uma id ao chat, e no caso ao abrir o chat, aparece só as mensagens do chat

 

 

No caso: SELECT * FROM mensagens WHERE id_chat = '$idChat' ...

 

Eu coloquei um valor aleatório e funcionou, mas no caso, teria que colocar algo pra adicionar os valores automaticamente a cada conversa que for criada, mas não consegui.

Nesse segundo método funcionaria, mas é impossível sem o auto_increment

 

Funcionaria no caso se eu mudasse o id para id_chat e no caso as novas conversas recebem o id atual e ir selecionando as mensagens que tiver o mesmo id funcionaria. Mas não daria problema depois, sei lá?

Share this post


Link to post
Share on other sites

Nesse segundo método funcionaria, mas é impossível sem o auto_increment

 

Funcionaria no caso se eu mudasse o id para id_chat e no caso as novas conversas recebem o id atual e ir selecionando as mensagens que tiver o mesmo id funcionaria. Mas não daria problema depois, sei lá?

Problema algum, e acho que a maneira correta, depois só selecionar pela id da sessão ou de usuário o chat, para quem esta na conversa, com filtro parent_id = 0, as demais conversas recebe no parent_id o id do chat.

  • +1 1

Share this post


Link to post
Share on other sites

troca isso:

WHERE id_de = '$sessionPerfilUser' AND id_para = '$pegaUsuario'

por isso:

WHERE (id_de = '$sessionPerfilUser' AND id_para = '$pegaUsuario') OR (id_de = '$pegaUsuario' AND id_para = '$sessionPerfilUser')

Dai ele mostra tudo oke vc enviou para aquela pessoa e tudo oke a pessoa enviou para vc

  • +1 1

Share this post


Link to post
Share on other sites

troca isso:

WHERE id_de = '$sessionPerfilUser' AND id_para = '$pegaUsuario'

por isso:

WHERE (id_de = '$sessionPerfilUser' AND id_para = '$pegaUsuario') OR (id_de = '$pegaUsuario' AND id_para = '$sessionPerfilUser')

Dai ele mostra tudo oke você enviou para aquela pessoa e tudo oke a pessoa enviou para você

Funcionou, obrigado mesmo haha :)

 

Eu tentei usar algo parecido, mas com funções de PDO, não conheço muito de PDO, então deu erro.

 

 

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

  • Similar Content

    • By milokoz
      Basicamente eu estou com um leve problema:
      Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\xampp\htdocs\_config\classes\class.MySQL.php on line 17
      Não foi possível encontrar o banco de dados "test".
      A DB está criada no PHP 
      http://prntscr.com/p5epzn

      e esta nomeada corretamente
      # Definições e conexão com à DATABASE
      define("DB_HOST", "localhost");
      define("DB_PORT", "3303");
      define("DB_USER", "root");
      define("DB_PASS", "");
      define("DB_NAME", "test");
    • By makioplayer
      A pressão da minha mesa não está funcionando apenas no Paint Tool SAI, alguém sabe o que pode ser?
       
      Ela é uma Genius mousepen i608x.
    • By darkside88
      Esse é meu código porém não está exibindo dentro dos inputs as informações recuperadas da página EDITAR nos campos! <?php //ini_set('display_errors', 0); include('conexao/connection.php'); session_start(); $cli_codigo = intval($_GET['usuario']); if(isset($_POST['confirma'])){     //Registrar Dados     if(!isset($_SESSION))         session_start();       foreach($_POST as $chave=>$valor)         $_SESSION[$chave] = $con->real_escape_string($valor);       //Validar     if (strlen($_SESSION['nome']) == 0)     $erro[] = "Preencha o campo Nome";            if (strlen($_SESSION['wpp']) == 0)     $erro[] = "Preencha o campo WhatsApp";       if (strtotime($_SESSION['dt1']) > strtotime($_SESSION['dt2']) || strtotime($_SESSION['dt1']) == strtotime($_SESSION['dt2']))     $erro[] = "A Data de Criação no IPTV deve ser menor que a Data de Vencimento no IPTV ou não podem ser iguais";           //Inserir       if(count($erro) == 0){         $sql_code = "UPDATE cadastrocliente set             nomecli = '$_SESSION[nome]',             email = '$_SESSION',             wpp = '$_SESSION[wpp]',             srv = '$_SESSION[srv]',              srv = '$_SESSION[dt1]',                         dataVI = '$_SESSION[dt2]',             app = '$_SESSION[app]'             WHERE nomecli = '$cli_codigo'";         $confirma = $con->query($sql_code) or die($con->error);         if($confirma){             unset(                 $_SESSION[nome],                 $_SESSION,                 $_SESSION[wpp],                 $_SESSION[srv],                 $_SESSION[dt1],                 $_SESSION[dt2],                 $_SESSION[app]                          );                         header("Location: index.php?p=listarcliente");         }else{             $erro[] = $confirma;         }     }else{         $sql_code = "SELECT * FROM cadastrocliente WHERE id_cliente= '$cli_codigo'";         $sql_query = $con->query($sql_code) or die($con->error);         $linha = $sql_query->fetch_assoc();           $_SESSION[nome] = $linha['nomeCli'];         $_SESSION = $linha['email'];         $_SESSION[wpp] = $linha['wpp'];         $_SESSION[srv] = $linha['srv'];         $_SESSION[srv] = $linha['dt1'];         $_SESSION[dt2] = $linha['dt2'];         $_SESSION[app]  = $linha['app'];     } }   ?> <?php   if (count($erro) > 0) {     echo "<div class='alert alert-danger'>";     foreach ($erro as $valor)         echo "$valor <br>";          echo "</div>";}  ?> <form class="container-fluid" action="index.php?p=editar&usuario=<?php echo $cli_codigo?>" method="POST">     <label for="nome">Nome do Cliente</label>     <input type="text" name="nome" value="<?php echo $_SESSION[nome]?>" class="form-control" placeholder="Nome Completo do Cliente">     <label for="email">Email</label>     <input type="email" name="email" value="<?php echo $_SESSION?>" class="form-control" placeholder="nome@exemplo.com">     <label for="mensagem">WhatsApp</label>     <input type="text" name="wpp" value="<?php echo $_SESSION[wpp]?>" class="form-control" placeholder="Digite o seu Whatsapp (DD) 9 XXXX-XXXX"         id="celular" name="mensagem">     <script type="text/javascript">     $("#telefone,#celular").mask("(00) 0 0000-0000");     </script>     <label for="srv">Servidor do Cliente</label>     <input type="text" name="srv" value="<?php echo $_SESSION[wpp]?>" class="form-control" placeholder="Servidor do Cliente">     <label for="dt1">Data de Criação no IPTV</label>     <input type="date" value="<?php echo $_SESSION[dt1]?>" data- provide="datepicker" name="dt1" class="form-control">     <label for="dt2">Data de Vencimento no IPTV</label>     <input type="date" name="dt2" value="<?php echo $_SESSION[dt2]?>" class="form-control">     <label for="app">App doCliente</label>     <input type="text" name="app" value="<?php echo $_SESSION[app]?>" class="form-control" placeholder="App do Cliente">     <input type="submit" name="confirma" class="form-control btn btn-dark mt-4 mb-4 " value="Cadastrar">   </form>
    • By eduardodsilvaq
      function efetuarLogin ($x, $y) { $connect = db_connect(); $queryl = $connect->query("SELECT * FROM usuarios WHERE login = ". $x ." AND senha = " . $y . " "); if ($queryl->rowCount() == 0) { echo $x; echo $y; echo "<script>alert('Dados de Login incorretos.'); history.back();</script>"; exit; } else { setcookie("login",$x); header("Location:index.php"); exit; } } Esse código tem algum erro nessa linha:
      $queryl = $connect->query("SELECT * FROM usuarios WHERE login = ". $x ." AND senha = " . $y . " "); Nao consigo validar o login mesmo que os dados estejam corretos. Alguém da uma ajuda? 
       
    • By JurisCode
      OLÁ A TODOS, Boa tarde. Preciso de ajuda com o seguinte script.
       
      eu tenho uma array que é a seguinte:
       
      array (size=7)   0 => string 'gu' (length=2)   1 => string 'tr' (length=2)   2 => string 'fr' (length=2)   3 => string 'ip' (length=2)   4 => string 'al' (length=2)   5 => string 'po' (length=2)   6 => string 'xa' (length=2) Cada string da array de duas letra é a abreviatura de uma cidade; eu quero fazer uma pesquisa na base da dados para cada sigla dessa para ver qual a cidade correspondente. Como vai ser necessariamente um resultado apenas, eu tive que usar o foreach.
       
      Tipo
      foreach($array as $variavel);         {         $busca = $conn->query("SELECT * FROM tabela WHERE sigla = '$variavel'");         $resultado = $busca->fetch_assoc();         echo ' - '. $resultado['significado_da_sigla'];         } } Não está funcionando perfeitamente, mas imprime apenas o último resultado.
       
      Eu já tentei uma variável para ir acumulando o resultado, tipo
       
      if (empty('$resultado_busca')) {     $resultado_busca = $resultado['significado_da_sigla'];     }     else {     $resultado_busca = $resultado_busca . ' - ' . $resultado['significado_da_sigla'];     } ou seja, se a variável foi vazia (da primeira vez), então vai criar uma variável com o primeiro resultado, se a variável já existir (das outras vezes), então a variável vai ser igual à variavel anteriormente criado adicionando um traço e o próximo resultado.
       
      E depois, em vez de imprimir a variável com fetch_assoc $resultado['significado_da_sigla'] eu imprimiria a variável &resultado_busca, que em cada ciclo iria acumulando os resultados, mas também não está funcionando, essa não imprime nada na tela.
       
      Alguém pode dar uma ajuda?
       
      OBRIGADO, DESDE JÁ
×

Important Information

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