Ir para conteúdo
Cesar Masserati Procopio

Query para retornar Lista de Conversas c/ ultima Msg

Recommended Posts

Boa Tarde Pessoal,

 

Estou enviando duas Imagens para ajudar a ilustrar o que estou tentando fazer.

 

Seguinte estou batendo a minha cabeça com isso e preciso de uma luz para resolver, por favor. 


Estou recriando o WhatsApp Web para fins de aprendizagem, estou tentando fazer uma QUERY que me retorne a lista das pessoas que estou conversando, e também a Última Mensagem da conversa que tive com a pessoa.

EXEMPLO: 
Retornar a lista das Pessoas que conversam com o Cesar

Neste caso teria que me retornar a lista abaixo:

idAmigo NomeAmigo UltimaMsg     DataMsg
8779 Adelita Pereira Machado Couto Msg CINCO - Cesar enviou para Adelita  05/07/2018 17:22
7669 Hellen Sabrina de Brito Msg TRES - Hellen enviou para Cesar  05/07/2018 12:31
63 Sandro Batista Dos Santos Msg UM - Cesar enviou para Sandro 05/07/2018 17:22
1545 Gino Cezar dos Santos Msg UM - Gino enviou para Cesar 05/07/2018 17:20
relacionamento.jpg.36fd73a6d25d06e90fd01ae41f022adf.jpgResultado.thumb.jpg.ad082aef6f300d570bef8bc5b694343d.jpg

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 felone
      galera estou tendo esse erro 
      INSERT INTO gw_setoresimpressao (descricao, idloja) VALUES ('', '')Incorrect integer value: '' for column 'idloja' at row 1
      Ocorreu um erro na execução do Comando SQL no banco de dados
      <?php header('Access-Control-Allow-Origin: *'); header("Content-Type: text/html; charset=UTF-8", true); require_once 'classes/cls_db.php'; include 'classes/gravar.php'; include 'classes/alterar.php'; include 'classes/excluir.php'; include 'classes/jsongrid.php'; if (isset($_GET ['acao'] )){     $acao = $_GET['acao'];     }else{         $acao = "";     } if (isset($_GET ['id'] )){     $id = $_GET['id'];     }else{         $id = "";     }     if (isset($_GET ['descricao'] )){     $descricao = $_GET['descricao'];     }else{         $descricao = "";     }  if (isset($_GET ['idloja'] )){     $idloja = $_GET['idloja'];     }else{         $idloja = "";     } if (isset($_GET ['codigo_operador'] )){     $codigo_operador = $_GET['codigo_operador'];     }else{         $codigo_operador = "";     }     if (isset($_GET ['nome_operador'] )){     $nome_operador = $_GET['nome_operador'];     }else{         $nome_operador = "";     }      if($acao == "gravar"){     try {         $gravar = new gravar();                  $gravar->id = $id;         $gravar->descricao = $descricao;         $gravar->idloja = $idloja;         $gravar->codigo_operador = $codigo_operador;         $gravar->nome_operador = $nome_operador;                  $json = $gravar->gravar();         echo json_encode($json);     } catch (Exception $ex) {         $json[]= array('retorno'=>'error','data'=>'','msgerror' => ut9_encode($exc->getMessage()));         echo json_encode($json, JSON_NUMERIC_CHECK);     } } if($acao == "alterar"){     try {       $alterar = new alterar();              $alterar->id = $id;       $alterar->descricao = $descricao;       $alterar->idloja = $idloja;       $alterar->codigo_operador = $codigo_operador;       $alterar->nome_operador = $nome_operador;              $json = $alterar->alterar();       echo json_encode($json);     } catch (Exception $ex) {         $json[]= array('retorno'=>'error','data'=>'','msgerror' => ut9_encode($exc->getMessage()));         echo json_encode($json, JSON_NUMERIC_CHECK);     } } if($acao == "excluir"){     try {       $excluir = new excluir();              $excluir->id = $id;              $json = $excluir->excluir();       echo json_encode($json);     } catch (Exception $ex) {         $json[]= array('retorno'=>'error','data'=>'','msgerror' => ut9_encode($exc->getMessage()));         echo json_encode($json, JSON_NUMERIC_CHECK);     } } if($acao == "jsongrid"){     try {       $json = jsongrid();       echo json_encode($json);     } catch (Exception $ex) {         $json[]= array('retorno'=>'error','data'=>'','msgerror' => ut9_encode($exc->getMessage()));         echo json_encode($json, JSON_NUMERIC_CHECK);     } }  
       
      <?php header('Access-Control-Allow-Origin: *'); header("Content-Type: text/html; charset=UTF-8", true); require_once 'cls_db.php'; class gravar {     public $descricao;     public $idloja;     public $datahora;     public $codigo_operador;     public $nome_operador;     public $id;          function gravar(){         date_default_timezone_set('America/Sao_Paulo');         $this->datahora = date('Y-m-d H:i:s');         $json = array();         $objDb = new cls_db();         $link = $objDb->conecta_mysql();         $consulta = $objDb->MysqlExecuta("SELECT * FROM gw_setoresimpressao WHERE descricao='$this->descricao' AND idloja='$this->idloja'");         $resultado = mysql_num_rows($consulta);         $valor = 0;         if ($resultado == $valor) {             $objDb->MysqlExecuta("INSERT INTO gw_setoresimpressao (descricao, idloja) VALUES ('$this->descricao', '$this->idloja')");             $objDb->MysqlExecuta("UPDATE gw_setoresimpressao SET datahora='$this->datahora', codigo_operador='$this->codigo_operador', nome_operador='$this->nome_operador' "                     . "WHERE descricao='$this->descricao' AND idloja='$this->idloja'");             return true;         }  else {             return false;         }     } } 
       
      esse é o meu codigo, me ajudem por favor 
    • Por luanda
      Eu queria saber como posso mostrar apenas as reservas feitas pelo usuário logado, pois tentei um monte de código e nenhum deles funcionou. Tentei declarando uma session com o ID, que até pegou, porém exibiu informações de outro usuário. 
       
      Lembrando que posso reservar com nome, sobrenome, e-mail e telefone.
      <?php session_start(); if($_SESSION['nivel'] == "usuario"){}else{ header("Location:../login.php"); exit; } include "php/conexao.php"; $query = mysql_query ("SELECT * FROM cadastro WHERE username = '{$_SESSION['username']}' AND id='{$_SESSION['id']}' AND senha = '{$_SESSION['senha']}'") or die(mysql_error()); $usuario = mysql_fetch_assoc($query); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Page Title</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" type="text/css" media="screen" href="css/index.css" /> </head> <body> <!-- header --> <header id="header"> <h2>Painel administrativo</h2> </header> <!-- sidebar --> <aside id="sidebar"> <div class="links"> <h2><?php echo $usuario['username']; ?></h2> </div> <div class="links"><div style="cursor: pointer;"><a onclick="mostra('conta');">Conta</a></div></div> <div class="links"><div style="cursor: pointer;"><a onclick="mostra('reserva');">Reserva</a></div></div> <div class="links"><a href="php/logout.php">Sair</a></div> </aside> <!-- conteudo --> <div id="content"> <div id="conta"> <div class="tabela"> <table width="100%" border="1"> <tr> <td align="center" valign="middle" bgcolor="#FFFFFF">Nome:</td> <td align="center" valign="middle" bgcolor="#FFFFFF">E-mail:</td> <td align="center" valign="middle" bgcolor="#FFFFFF">Telefone</td> <td align="center" valign="middle" bgcolor="#FFFFFF">Mensagem:</td> <td align="center" valign="middle" bgcolor="#FFFFFF">Data:</td> <td align="center" valign="middle" bgcolor="#FFFFFF">Editar:</td> <td align="center" valign="middle" bgcolor="#FFFFFF">Excluir:</td> </tr> <?php $query = mysql_query("SELECT * FROM cadastro WHERE username ='{$_SESSION['username']}'"); while ($linha = mysql_fetch_array ($query)){ ?> <!-- esse é para exibir as informações da conta; funciona normalmente --> <tr> <td height="45" align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $linha ['nome']?></td> <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $linha ['email']?></td> <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $linha ['username']?></td> <td align="center" valign="middle" bgcolor="#FFFFFF"><a href="formeditclientes.php?username=<?php echo $linha ['username']?>"></a></td> <td align="center" valign="middle" bgcolor="#FFFFFF"><a href="eliminar.php?username=<?php echo $linha ['username']?>"></a></td> </tr> <?php } ?> </table> </div> </div> <div id="reserva" style="display:none;"> <div class="tabela"> <table width="100%" border="1"> <tr> <td align="center" valign="middle" bgcolor="#FFFFFF">Nome:</td> <td align="center" valign="middle" bgcolor="#FFFFFF">E-mail:</td> <td align="center" valign="middle" bgcolor="#FFFFFF">Telefone</td> <td align="center" valign="middle" bgcolor="#FFFFFF">Mensagem:</td> <td align="center" valign="middle" bgcolor="#FFFFFF">Data:</td> <td align="center" valign="middle" bgcolor="#FFFFFF">Editar:</td> <td align="center" valign="middle" bgcolor="#FFFFFF">Excluir:</td> </tr> <?php $query = mysql_query("SELECT * FROM reserva"); while ($linha = mysql_fetch_array ($query)){ ?> <!-- esse é o da reserva; que eu editei agora para aparecer todos, mas que eu gostaria que mostrasse apenas a do usuário logado --> <tr> <td height="45" align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $linha ['nome']?></td> <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $linha ['email']?></td> <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $linha ['telefone']?></td> <td align="center" valign="middle" bgcolor="#FFFFFF"><a href="editar_reserva.php?id=<?php echo $linha ['id']?>"></a></td> <td align="center" valign="middle" bgcolor="#FFFFFF"><a href="eliminar_reserva.php?id=<?php echo $linha ['id']?>"></a></td> </tr> <?php } ?> </table> </div> </div> </div> </body> <script> function mostra(theId){ var theArray= new Array('conta', 'reserva'); w=document.getElementById(theId) if(w.style.display=="block"){}else{ for(i=0; i<theArray.length; i++){ if(theArray[i] == theId){ w.style.display='block'; }else{ document.getElementById(theArray[i]).style.display='none'; } } } } </script> </html>  
    • Por jonata paulino
      SELECT e.*, e.CO_ESCOLA, es.CO_ENTIDADE FROM enem20162 e LEFT JOIN escolas es ON e.CO_ESCOLA = es.CO_ENTIDADE GROUP BY e.CO_ESCOLA; Estou fazendo esta consulta ai a cima para o retornar os alunos que estão matriculados em uma escola, porém, fica só rodando e não completa a execução. Informando que essas duas tabelas estão no mesmo banco e eu não fiz a junção através de chave primária e estrangeira. Não sei se está correto.
    • Por teteuvec
      Prezados boa tarde,
       
      Estou tentando escrever na tela o resultado de um select na tela utilizando WHILE, porém está entrando em loop infinito e gostaria de ajuda para acertar a sintaxe desta técnica.
       
       
      Código apenas com 1 WHILE
      <?php $_SESSION['DB_base'] = 'tupa'; $_SESSION['table_base'] = 'people_records'; $query_Recordset2 = "SELECT * FROM {$_SESSION['table_base']} WHERE `link_record` = {$data1['id']} AND `record_caracter_id` = 1 order by {$_SESSION['id_base']} DESC"; $Recordset2 = mysqli_query($connect, $query_Recordset2) or die(mysqli_error($connect)); $row_Recordset2 = mysqli_fetch_assoc($Recordset2); $totalRows_Recordset2 = mysqli_num_rows($Recordset2); while($Recordset2 = mysqli_fetch_assoc($Recordset2)) { echo "Contato: ".$Recordset2["name"]."</br>"; echo "CPF/CNPJ: ".$Recordset2["cpf_cnpj"]."</br>"; echo "e-mail: ".$Recordset2["email"]."</br>"; echo "Celular: ".$Recordset2["cellphone"]."</br>"; echo "Telefone: ".$Recordset2["telephone"]."</br>"; echo "Documento de identificação: ".$Recordset2["name"]."</br>"; echo "</br>"; }?>  
       
      Código inteiro:
      <?php session_start(); $_SESSION['last_page'] = $_SERVER['PHP_SELF']; $_SESSION['del_message'] = 'Deseja excluir o cliente '; $_SESSION['DB_base'] = 'tupa'; $_SESSION['table_base'] = 'people_records'; $_SESSION['id_base'] = 'id'; require_once('connections.php'); $query_Recordset1 = "SELECT * FROM {$_SESSION['table_base']} WHERE record_caracter_id = '0' order by {$_SESSION['id_base']} DESC"; $Recordset1 = mysqli_query($connect, $query_Recordset1) or die(mysql_error()); $row_Recordset1 = mysqli_fetch_assoc($Recordset1); $totalRows_Recordset1 = mysqli_num_rows($Recordset1); ?> <!doctype html> <html lang='pt-br'> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Tupã - Serviços de Engenharia</title> <link href='css/sistema.css' rel='stylesheet' type='text/css' media='all'> <style type="text/css"> #cnpj { display: none; } #contato { display: none; } #endereco { display: none; } </style> </head> <body> <fieldset> <legend>Gerenciamento de Clientes</legend> <table id="tabela"> <thead> <tr> <th>Descrição</th> <th>Contato</th> <th>Projetos</th> <th colspan="3">Ação</th> </tr> <tr> <th></th> <th></th> <th></th> <th colspan="3"><input type="submit" value="Filtrar" /> | <input type="button" onclick="javascript: location.href='#rec_openModal'" value="Adicionar" /></th> </tr> </thead> <?php while ($Recordset1 = $row_Recordset1){?> <tr> <td bgcolor="#F5F5F5"><p> Código: <?php echo $Recordset1['id']; ?> <br /> Cliente: <?php echo $Recordset1['name']; ?> <br /> CPF/CNPJ: <?php echo $Recordset1['cpf_cnpj']; ?> <br /> e-mail: <?php echo $Recordset1['email']; ?> <br /> Celular: <?php echo $Recordset1['cellphone']; ?> <br /> Telefone: <?php echo $Recordset1['telephone']; ?> <br /> Documento de identificação: <?php if(file_exists('imagens/clients/energy_bill/'.$Recordset1['id'].'.jpg')) { echo 'Documento de identificação: <a href=imagens/clients/energy_bill/'.$Recordset1['id'].'.jpg target="_blank"><img src="imagens/view.png" width="24" height="24">'; } else { echo 'Documento de identificação: indisponível'; } ?> </p></td> <td bgcolor="#F5F5F5"><?php $_SESSION['DB_base'] = 'tupa'; $_SESSION['table_base'] = 'people_records'; $query_Recordset2 = "SELECT * FROM {$_SESSION['table_base']} WHERE `link_record` = {$data1['id']} AND `record_caracter_id` = 1 order by {$_SESSION['id_base']} DESC"; $Recordset2 = mysqli_query($connect, $query_Recordset2) or die(mysqli_error($connect)); $row_Recordset2 = mysqli_fetch_assoc($Recordset2); $totalRows_Recordset2 = mysqli_num_rows($Recordset2); while($Recordset2 = mysqli_fetch_assoc($Recordset2)) { echo "Contato: ".$Recordset2["name"]."</br>"; echo "CPF/CNPJ: ".$Recordset2["cpf_cnpj"]."</br>"; echo "e-mail: ".$Recordset2["email"]."</br>"; echo "Celular: ".$Recordset2["cellphone"]."</br>"; echo "Telefone: ".$Recordset2["telephone"]."</br>"; echo "Documento de identificação: ".$Recordset2["name"]."</br>"; echo "</br>"; }?> </td> <td bgcolor="#F5F5F5"><?php $_SESSION['DB_base'] = 'tupa'; $_SESSION['table_base'] = 'projects_link_tpm'; $query_Recordset3 = "SELECT * FROM {$_SESSION['table_base']} where people_record_id = {$row_Recordset1['id']} order by {$_SESSION['id_base']} DESC"; $Recordset3 = mysqli_query($connect, $query_Recordset3) or die(mysqli_error($connect)); $row_Recordset3 = mysqli_fetch_assoc($Recordset3); $totalRows_Recordset3 = mysqli_num_rows($Recordset3); while($data3 = mysqli_fetch_assoc($Recordset3)) { echo "Projeto: ".$Recordset3["id"]."</br>"; echo "</br>"; }?> </td> <td width="3%" bgcolor="#F5F5F5"><form action="mysql/update_process.php" method="POST"> <input type="hidden" name="update_process" value="<?php echo $row_Recordset1[$_SESSION['id_base']] ?>"> <input type="image" name="submit" src="imagens/edit.png" width="24" height="24"> </form></td> <td bgcolor="#F5F5F5"><form action="mysql/del_process.php" method="POST"> <input type="hidden" name="delete_process" value="<?php echo $row_Recordset1[$_SESSION['id_base']] ?>"> <input type="hidden" name="delete_register" value="<?php echo $row_Recordset1['name'] ?>"> <input type="image" name="submit" src="imagens/delete.png" width="24" height="24"> </form></td> </tr> <?php }?> </table> </fieldset> <div id="rec_openModal" class="modalDialog"> <div> <a class="close" title="Fechar" href="#close">X</a> <fieldset> <legend>Realizar cadastro</legend> <br> <label>Modalidade:</label> <select name="modality" onChange="mostraDiv(this.value)"> <option value="1">Cliente CPF</option> <option value="2">Cliente CNPJ</option> <option value="3">Contato de cliente</option> <option value="4">Endereço de cliente</option> </select> <br /> <div id="cpf"> <form action="mysql/insert_process.php" method="post" id='1'> <br> <label>Nome: </label> <input name='name' type='text' /><br /> <br> <label>CPF: </label> <input name='cpf_cnpj' type='number' data-mask='000.000.000-00' /><br /> <br> <label>e-mail: </label> <input name='email' type='text' /><br /> <br> <label>Celular: </label> <input name='cellphone' type='text' data-mask="(00)0000-0000" /><br /> <br> <label>Telefone: </label> <input name='telephone' type='text' data-mask='(00)00000-0000' autocomplete='off' /><br /> <br> <label>Documento de identificação: </label> <input type='file' name='doc_id'><br /> <INPUT TYPE="hidden" NAME="record_caracter_id" VALUE="0"><INPUT TYPE="hidden" NAME="action" VALUE="0"> <br> <label><input type="submit" value="Cadastrar" /> </label><br /> </form> </div> <div id="cnpj"> <form action="mysql/insert_process.php" method="post" id='2'> <br> <label>Nome da empresa: </label> <input name='name' type='text' /><br /> <br> <label>CNPJ: </label> <input name='cpf_cnpj' type='text' data-mask="00.000.000/0000-00" /><br /> <br> <label>e-mail: </label> <input name='email' type='email' /><br /> <br> <label>Celular: </label> <input name='cellphone' type='text' data-mask="00000-000" /><br /> <br> <label>Telefone: </label> <input name='telephone' type='text' /><br /> <br> <label>Documento de identificação: </label> <input name='doc_id' type='file' /><br /> <INPUT TYPE="hidden" NAME="record_caracter_id" VALUE="0"><INPUT TYPE="hidden" NAME="action" VALUE="0"> <br> <label><input type="submit" value="Cadastrar" /> </label><br /> </form> </div> <div id="contato"> <form action="mysql/insert_process.php" method="post" id='3'> <br> <label>Nome: </label> <input name='name' type='text' /><br /> <br> <label>cpf: </label> <input name='cpf' type='number' data-mask='000.000.000-00' /><br /> <br> <label>e-mail: </label> <input name='email' type='text' /><br /> <br> <label>Celular: </label> <input name='cellphone' type='text' data-mask="(00)0000-0000" /><br /> <br> <label>Telefone: </label> <input name='telephone' type='text' data-mask='(00)00000-0000' autocomplete='off' /><br /> <br> <label>Documento de identificação: </label> <input type='file' name='doc_id'><br /> <INPUT TYPE="hidden" NAME="record_caracter_id" VALUE="1"><br> <label>Contato do cliente </label> <select name="link_record"> <?php while ($data = mysqli_fetch_array($Recordset1)) { echo("<option value='".$data['id']."'>".$data['name']."</option>"); } ?> </select><br /> <INPUT TYPE="hidden" NAME="action" VALUE="0"> <br> <label><input type="submit" value="Cadastrar" /> </label><br /> </form> </div> <div id="endereco"> <form action="mysql/insert_process.php" method="post" id='4'> <br> <label>CEP: </label> <input name='cep' type='text' /><br /> <br> <label>Logradouro: </label> <input name='address' type='text' data-mask="00000-000" autocomplete="off" /><br /> <br> <label>Número: </label> <input name='number' type='text' /><br /> <br> <label>Bairro: </label> <input name='neighborhood' type='text' /><br /> <br> <label>Cidade/UF: </label> <input name='city' type='text' /><input name='uf' type='text' /><br /> <INPUT TYPE="hidden" NAME="record_caracter_id" VALUE="4"><INPUT TYPE="hidden" NAME="action" VALUE="1"> <br> <label><input type="submit" value="Cadastrar" /> </label><br /> </form> </div> </fieldset> </div> </div> </body> </html> <?php mysqli_free_result($Recordset1); mysqli_free_result($Recordset2); mysqli_free_result($Recordset3); ?>  
    • Por teteuvec
      Prezados boa noite!
       
      Gostaria de ajuda com um problemas na pesquisa select do trecho abaixo. Devo estar errando na sintaxe.
       
      O erro que retorna é Unknown column 'link_record' in 'where clause', porém esta coluna existe!
       
      <td bgcolor="#F5F5F5"><?php $query_Recordset2 = "SELECT * FROM {$_SESSION['table_base']} WHERE `link_record` = {$data1['id']} AND `record_caracter_id` = '1' order by {$_SESSION['id_base']} DESC"; $Recordset2 = mysqli_query($connect, $query_Recordset2) or die(mysqli_error($connect)); $row_Recordset2 = mysqli_fetch_assoc($Recordset2); $totalRows_Recordset2 = mysqli_num_rows($Recordset2); while($data2 = mysqli_fetch_assoc($Recordset2)) { echo "Contato: ".$data2["name"]."</br>"; echo "CPF/CNPJ: ".$data2["cpf_cnpj"]."</br>"; echo "e-mail: ".$data2["email"]."</br>"; echo "Celular: ".$data2["cellphone"]."</br>"; echo "Telefone: ".$data2["telephone"]."</br>"; echo "Documento de identificação: ".$data2["name"]."</br>"; echo "</br>"; }?> </td>  
×

Informação importante

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