Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 15
Sexo: Masculino
Localização: Minas Gerais - Uberlandia - Brasil
Contato:

Busca Mysql

30-01-2008 13:47

Boa tarde a todos!

Bom, estou com uma dúvida em fazer uma busca no mysql. Estou fazendo um sistema de help desk onde o usuario abre uma ordem de serviço preenche os campos necessario e ao enviar eu faço dois INSERT, uma para os dados da OS e a outra só para observações, ate ae funciona beleza, quando eu abro a OS novamente e necessito inserir mais de uma observação , o formulario faz um UPDATE das opções anteriores e um INSERT da observação, tudo ocorre direito. Agora minha dúvida é a seguinte, quando eu abro uma OS ja aberta anteriormente eu clico no botão de observações anteriores so que me traz todas as observações de todas as ordens de serviço aberta. Gostaria de saber como que eu faço pra trazer somente as observações da OS aberta, será que isso tem jeito? Agradeço que me tirar essa dúvida e se é que alguem me entendeu a minha dúvida
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17684
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Busca Mysql

30-01-2008 13:52

Você não informou os campos que tem ai, mas, aparentemente vai precisar usar o WHERE com alguma condição.

Assim, vamos supor que essas OS já aberta tem um id 1, e as não aberta tem id 0, ai teria um select da seguinte forma:

SELECT campotal, outrocampo FROM tabelatal WHERE id='1'
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 15
Sexo: Masculino
Localização: Minas Gerais - Uberlandia - Brasil
Contato:

Busca Mysql

30-01-2008 14:28

Bom, acrescentando a minha dúvida.

Conforme falado ao abrir a OS eu faço dois INSERT.

Ex.:

1º) insert

INSERT INTO dados_os_aberta (usuario,cliente,produto,... e etc) e o id auto increment que ao enviar os dados esse id será o protocolo da OS.

2º) insert

INSERT INTO observacoes (id,usuario,observacao,... e etc) nesse insert eu estou enviando o comando ($id = mysql_insert_id();) da os anterior pra tabela de observacoes pra fazer a consulta futura. Isso tudo em um formulario só. Ao enviar os dados acontece esses INSERT e grava no banco gerando o id (Protocolo) de nº 100400 por exemplo. POis vou precisar consultar mais adiante.

Quando eu consulto esse protocolo me traz os dados preenchido anteriormente em outra página e ao abrir a OS e vou precisar inserir mais observações. Nessa página o formulário muda sendo, um UPDATE (UPDATE dados_os_aberta SET cliente = '$cliente', id = '$id',) e o INSERT (INSERT INTO observacoes (id,usuario,observacao,... e etc)) da observacao, nesse insert da observação existe os campos (id_obs,id,usuario,observacao), pois no id será inserido o id da OS aberta anterior ou seja, 100400.

Agora que vem o problema.

Ao clicar no botao de observações anteriores me leva para uma página em pop up com as observações, mas me traz todas as observações de OS diferentes e eu precisava que mostrasse somente as observações da OS 100400, na consulta que traz na janela pop up ta assim: (SELECT id,usuario,data,mensagem FROM observacoes "), como que eu vo fazer pra trazer as 20 observações com id = 100400, lembrando que na tabela observações existe outras observações com outros id, ex: 100453, 100200, etc.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17684
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Busca Mysql

30-01-2008 15:34

Tenta
SELECT id,usuario,data,mensagem FROM observacoes WHERE id='100400'

Com isso, já vai trazer todas com o id 100400

Para retornar somente uma quantidade de linhas acrescenta:
ORDER BY id limit 10

No caso, você pode passar o id para essa consulta por um link.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 15
Sexo: Masculino
Localização: Minas Gerais - Uberlandia - Brasil
Contato:

Busca Mysql

30-01-2008 15:56

WEB

Dessa maneira ae funciona beleza. Mas na consulta que eu faço em uma pagina pop up separada eu não posso deixar essa consulta falando que WHERE id='100400' se não quando eu for abrir outra OS de serviço com um id=100500 vai me trazer as observações do id=100400.

Vo quebrar a cabeça aqui novamente, valeu demais web.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17684
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Busca Mysql

30-01-2008 16:02

Para isso é muito simples, passa o id por link, tipo:
documento.php?id=...

Ai, pega ele no documento.php
$id = $_GET['id'];

e usa na consulta.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 15
Sexo: Masculino
Localização: Minas Gerais - Uberlandia - Brasil
Contato:

Busca Mysql

31-01-2008 16:42

Ae Web!

Eu fiz o que vc me falou da seguinte maneira:

<td><a href="../consulta/busca.php?pega_id=$id" target="_blank">Observações Anteriores</a></td> // Link que leva para página que faz as busca das mensagens

Ae quando eu clico em observações anteriores traz o id certim conforme o código:

http://10.200.94.150/htdocs/version2_1/setor_help_desk_unimed_ura/consulta/busca.php?pega_id=100482 Consulta : "select * from observacoes where id='$id' order by id_obs DESC"

So que não me traz so os id da OS, ta trazendo todos ainda. Agora o problema ta é na consulta né. Se bem que o resultado na tela ta ficando beleza o problema é que não traz só as observações que eu queria. Vlw
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17684
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Busca Mysql

31-01-2008 16:58

Faz o seguinte, faz uma comparação do id que está sendo passado pelo link com os ids que estão cadastrados no bd.

Assim, você vai ver o que tinha que estar vindo, com base nisso pode filtrar melhor a consulta.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 15
Sexo: Masculino
Localização: Minas Gerais - Uberlandia - Brasil
Contato:

Busca Mysql

31-01-2008 21:53

A comparação que vc ta me dizendo é a seguinte ?

SELECT * FROM observacoes INNER JOIN dados_os_aberta ON (observacoes.id=dados_os_aberta.id);
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17684
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Busca Mysql

31-01-2008 21:58

Não, uma consulta é uma busca no bd, portanto, se você usar:
SELECT campotal FROM tabelatal WHERE campotal='valortal'
vai obter um resultado, o que estou indicando é você abra sua tabela no banco de dados e veja qual id que você tem que passar para consulta para mostrar as linhas desejadas, a partir daí, você pode trabalhar somente no link para passar esse id.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 15
Sexo: Masculino
Localização: Minas Gerais - Uberlandia - Brasil
Contato:

Busca Mysql

07-02-2008 14:59

Bom WEB peço desculpa mas conforme lhe falado antes, não consegui compreender essa comparação ou eu to vuando ou eu não sei mesmo.

Abaixo segue o codigo da tabela help_desk_unimed_chamados onde será inserido os dados do chamado para abertura da OS.

CREATE TABLE `help_desk_unimed_chamados` ( `id` int(11) NOT NULL auto_increment, // esse id será o mesmo que vai ser usado na tabela abaixo. `usuario` varchar(25) default NULL, `cliente` varchar(100) default NULL, `produto` varchar(20) default NULL, `produto_netsuper` varchar(30) default NULL, `resolvido` varchar(15) default NULL, `1_nivel` varchar(50) default NULL, `2_nivel` varchar(50) default NULL, `3_nivel` varchar(50) default NULL, `4_nivel` varchar(50) default NULL, `abertura_os` varchar(20) default NULL, `status` varchar(15) default NULL, `vencimento_os` varchar(20) default NULL, `inicio_mo` varchar(20) default NULL, `fila` varchar(20) default NULL, `tecnico` varchar(30) default NULL, `fim_mo` varchar(20) default NULL, `protocolo_lenovo` varchar(10) default NULL, `protocolo_netsuper` varchar(10) default NULL, `protocolo_netsite` varchar(10) default NULL, `observacao` text, `km_inicial` varchar(20) default NULL, `km_final` varchar(20) default NULL, `data` date default NULL, `hora` time default NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM;

Abaixo segue o codigo da tabela mural onde será inserido as observações:

CREATE TABLE `mural` ( `id_obs` smallint(6) NOT NULL auto_increment, `id` varchar(20) default NULL, // Aqui será inserido o id da tabela anterior para consultar futuramente. `usuario` varchar(25) default NULL, `ip` varchar(20) default NULL, `browser` varchar(100) NOT NULL default '', `nome` varchar(100) NOT NULL default '', `para` varchar(30) default NULL, `email` varchar(30) NOT NULL default '', `data` varchar(24) default NULL, `mensagem` text NOT NULL, PRIMARY KEY (`id_obs`) ) TYPE=MyISAM COMMENT='Mural de Recados';

Agora aqui é a página da consulta aonde será mostrado as observações ao clicar no link de observações anteriores.

<link href="../../css/corpo_style_1.css" type="text/css" rel="stylesheet"> <SCRIPT src="../../css/cor_relat.js" type=text/javascript></SCRIPT> <?php $host = "localhost"; // servidor $usur = "root"; // usuário $senha = ""; // senha $banco = "rede_dete"; // nome do db $tabela = "mural"; // tabela usada $con = mysql_connect("$host", "$usur", "$senha") or die ("não foi possivel conectar ao mysql"); mysql_select_db("$banco") or die ("não foi possivel conectar ao db"); $consulta = "SELECT * FROM $tabela order by id_obs DESC"; $resultado = mysql_query($consulta) or die ("Não foi possivel selecionar a tabela de dados"); while ($linha = mysql_fetch_assoc($resultado)) { $id_obs = $linha["id_obs"]; $id = $linha["id"]; $usuario = $linha["usuario"]; $mensagem = $linha["mensagem"]; $data = $linha["data"]; // Abaixo os códigos onde será mostrada as observações das OS cadastrada. echo "<center>"; echo "<table width=\"600px\" height=\"80px\" border=\"0\" cellspacing=\"0\" cellpadding=\"1\" class=\"table_principal\">"; echo "<tr bgcolor=\"#E2E2E2\" onmouseover=\"destacarLinha(this, 1, 'over');\" onmouseout=\"destacarLinha(this, 1, 'out');\" onmousedown=\"destacarLinha(this, 1, 'click');\">"; echo "<td width=22% class=\"\"><font color=\"#000000\"><b>Inserido por: </b></font></td>"; echo "<td width=22% class=\"\">$usuario</td>"; echo "<td width=20% class=\"\"><font color=\"#000000\"><b>Data: </b></font></td>"; echo "<td width=40% class=\"\">$data</td>"; echo "<td width=20% class=\"\"><font color=\"#000000\"><b>Protocolo: </b></font></td>"; echo "<td width=40% class=\"\">$id</td>"; echo "</tr>"; echo "<tr>"; echo "<td colspan=\"6\" class=\"\"><font color=\"#000000\"><b>Observação: </b></font></td>"; echo "</tr>"; echo "<tr>"; echo "<td colspan=\"6\" width=100% class=\"\">$mensagem</td>"; echo "</tr>"; echo "</table>"; echo "<br>"; } ?>

E é isso ae WEB. O que vc ta me dizendo é que eu tenho que comparar nas tabela é o ID de um com outro né.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17684
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Busca Mysql

07-02-2008 15:11

Você tem que ver ai pelo conteúdo que tem em cada bd, não somente pela estrutura.

O select ( SELECT campotal.... ) é um consulta, o que você precisa é entender a base da consulta.

Veja abaixo a seção de vídeo tutoriais, veja algum com base em mysql.
http://www.codigosnaweb.com/forum/viewforum.php?f=34

Porque fica complicado falar se você não entende a estrutura básica do mysql.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 15
Sexo: Masculino
Localização: Minas Gerais - Uberlandia - Brasil
Contato:

Busca Mysql

14-02-2008 14:27

Ae Web dei uma reformulada aqui nos codigo e faltou eu buscar o id no script de busca.php, agora funcionou beleza, ficou assim:

$id = $_GET["pega_id"]; $consulta = "SELECT * FROM $tabela where id = $id order by id_obs DESC";

So faltava isso pra funcionar, mau demais viu, rs

Valeu demais cara.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17684
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Busca Mysql

14-02-2008 15:08

Boa, mas é bom definir que o id é um valor limitando ele com aspas simples

... WHERE id='$id' ...
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 10 postagens
Mais de 10 postagens
Tópico Autor
Mensagens: 15
Sexo: Masculino
Localização: Minas Gerais - Uberlandia - Brasil
Contato:

Busca Mysql

14-02-2008 18:53

Blz, ja ta definido aqui. Ate a proxima dúvida brother. Vlw
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17684
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Busca Mysql

14-02-2008 19:30

¨peaceout¨
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado