Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

renatoraioz

problema com mysql_fetch_array()

Recommended Posts

olá pessoal... bom, seguinte:

tenho uma tabela "clientes", onde cadastro os clientes, e outra "contatos", onde cadastro um contato e marco para qual cliente ele é... o processo é bem manual, ou seja, na pagina de contatos eu faço um query no "clientes" e listo todos eles num select, dae basta selecionar um dos clientes para concluir o cadastro do contato...

 

bom, na hora de visualizar o cliente, eu uso dois querys... um na tabela cliente, e outra na tabela contatos, com where cliente='$nome'...

 

mas acontece este erro:

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/raiozhost/www/admin/tpl_ver_contato.php on line 6

 

 

ou seja, no arquivo ver_cliente chamo dois includes, um com o tpl_ver_cliente e outro com tpl_ver_contato... o erro esta no contato.. ja tentei de tudo, mudei variaveis, pedi ajuda em outros foruns.. mas até agora nada...

 

entao me lembrei que minha socia adoora o imasters e me disse que aqui eu conseguiria ajuda :)

 

abaixo relato os codigos de tpl_ver_cliente (funciona bem) e tpl_ver_contato...

 

tpl_ver_cliente:

 

<?include"config.php";$acao=mysql_query("select * from clientes where cliente='$cliente'");while($r=mysql_fetch_array($acao)) {$cliente=$r['cliente'];$c1=$r['1'];$datainclusao=$r['datainclusao'];$nome=$r['nome'];$doc=$r['doc'];$fone1=$r['fone1'];$fone2=$r['fone2'];$fax=$r['fax'];$celular=$r['celular'];$endereco=$r['endereco'];$comp=$r['comp'];$bairro=$r['bairro'];$cep=$r['cep'];$cidade=$r['cidade'];$uf=$r['uf'];$observa=$r['observa']; }echo"<html><head><title></title><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'><link rel='stylesheet' href='css/geral.css' type='text/css'></head><body bgcolor='#FFFFFF' text='#000000'><table width='90%' border='0' cellspacing='5' cellpadding='0' class='geral' align='center'>  <tr>     <td colspan='2'> <table width='100%' border='0' cellspacing='6' cellpadding='0'>        <tr>           <td colspan='2'><a href='alterar_cliente.php?cliente=$cliente'><img src='img/alterar.gif' width='20' height='20' border='0' alt='Alterar Cliente'></a> <a href='imprimir_cliente.php?cliente=$cliente'><img src='img/imprimir.gif' width='20' height='20' border='0' alt='Imprimir'></a> <a href='set.php?acao=delcliente&cliente=$cliente'><img src='img/deletar.gif' width='20' height='20' border='0' alt='Deletar'></a></td>        </tr>      </table></td>  </tr>        <tr>           <td colspan='2' class='ft10'><hr></td>        </tr>  <tr>     <td width=20%>ID:</td>    <td width=80%><strong>$cliente</strong></td>  </tr>    <tr>     <td>Tipo de Cliente:</td>    <td>";    if ($c1=='1') { echo"Pessoa Física"; } else { echo"Pessoa Jurídica"; }    echo"</td>  </tr>  <tr>     <td width=20%>Ativação:</td>    <td width=80%><strong>$datainclusao</strong></td>  </tr>  <tr>     <td>Nome:</td>    <td><strong>$nome</strong></td>  </tr>  <tr>     <td>CPF/CNPJ:</td>    <td>$doc</td>  </tr>  <tr>     <td colspan=2><hr></td>  </tr>  <tr>     <td colspan='2'><hr></td>  </tr>  <tr>     <td>Telefone 1:</td>    <td>$fone1</td>  </tr>  <tr>     <td>Telefone 2:</td>    <td>$fone2</td>  </tr>  <tr>     <td>FAX:</td>    <td>$celular</td>  </tr>  <tr>     <td>Celular:</td>    <td>$celular</td>  </tr>  <tr>     <td colspan='2'><hr></td>  </tr>  <tr>     <td>Endereço:</td>    <td>$endereco</td>  </tr>  <tr>     <td>Complemento:</td>    <td>$comp</td>  </tr>  <tr>     <td>Bairro:</td>    <td>$bairro</td>  </tr>  <tr>     <td>CEP:</td>    <td>$cep</td>  </tr>  <tr>     <td>Cidade:</td>    <td>$cidade</td>  </tr>  <tr>     <td>Estado:</td>    <td>$uf</td>  </tr>  <tr>     <td colspan='2'><hr></td>  </tr>  <tr>     <td colspan='2'>Observações:</td>  </tr>  <tr>    <td colspan='2'>$observa</td>  </tr></table></body></html>";?>

 

tpl_ver_contato:

 

<?include"config.php";$acao1=mysql_query("select * from conattos where cliente='$nome'");while($rc=mysql_fetch_array($acao1)) {$idcontato=$rc['idcontato'];$datainclusaocontato=$rc['datainclusaocontato'];$contato=$rc['contato'];$nascimento=$rc['nascimento'];$email1=$rc['email1'];$email2=$rc['email2'];$observa=$rc['observa']; }echo"<html><head><title></title><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'><link rel='stylesheet' href='css/geral.css' type='text/css'></head><body bgcolor='#FFFFFF' text='#000000'><table width='90%' border='0' cellspacing='5' cellpadding='0' class='geral' align='center'>  <tr>     <td width=18%>Ativação:</td>    <td width=82%><strong>$datainclusao</strong></td>  </tr>  <tr>     <td>Contato:</td>    <td><strong>$contato</strong></td>  </tr>  <tr>     <td>Nascimento:</td>    <td>$nascimento</td>  </tr>  <tr>     <td>E-mail 1:</td>    <td>$email1</td>  </tr>  <tr>     <td>E-mail 2:</td>    <td>$email2</td>  </tr>  <tr>     <td colspan='2'><hr></td>  </tr>  <tr>     <td colspan='2'>Observações:</td>  </tr>  <tr>     <td colspan='2'>$observa</td>  </tr></table></body></html>";?>

 

aguardo ajuda galera!!

obrigado

renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Renato antes de responder a sua pergunta, vou lhe passar umas dicas:

 

$acao=mysql_query("select * from clientes where cliente='$cliente'");

while($r=mysql_fetch_array($acao)) {

 

$cliente=$r['cliente'];

 

Você faz um select, faz um array e depois armazena todos os campos em uma variavel, ou seja, não precisa, economize codigo e memoria do servidor, faça assim:

 

 

$acao=mysql_query("select * from clientes where cliente='$cliente'");

while($r=mysql_fetch_array($acao)) {

 

Na hora de exibir você já colocar direto $r['cliente']; pois ele já é uma variavel, você não precisa armazenar em outra, pode mandar exibir direto.

 

Agora quanto ao seu problema eu não entendi muito bem, veja se é assim:

 

Você tem o cadastro do cliente e um de contato, vamos supor que eu cadastro o cliente xpto, o contato seria um funcionario da xpto?

Na tabela cliente você grava apenas o id do contato?

 

Se assim for você faz apenas um select e mata os coelhos!

 

Aguardo suas resposta para eu terminar de te ajudar.

 

ATENÇÃO:

O select de contatos parece conter um erro, procede?

 

$acao1=mysql_query("select * from conattos where cliente='$nome'");

while($rc=mysql_fetch_array($acao1)) {

 

 

Abraços,

 

Júnior

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu galera!!

valeu mesmo...

 

primeiro, a grande dica de economizar espaço nos arquivos... grande sacada, como sou iniciante comecei a aprener php no estilo "copy paste', entao o codigo que eu tinha era assim e segui rigorosamente o padrao... mas entendi a colocação e vou consertar em todas as paginas, para que o sistema fique rapido!!

 

agora, estou com vontade de me enfiar num buraquinho, pois o erro que eu tinha era exatamente por que eu tentava seleciona numa tabela conattos, que p****, nao existe!!! http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

na verdade a tabela deveria ser "contatos", ou seja, ela é contatos... entao arrumei no codigo e to conseguindo visualizar um contato cadastrado para o cliente X....

 

puxa brigadao galera... o imasters matou a pau.. tom com post em outros foruns e ninguem responde, aqui a galera se prontifica a ajudar!!

 

mais uma vez, brigadão!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi bravanet!! vou ter que pedir sua ajuda... eu troquei o nome da tabela conattos por contatos e funcionou e tal... porem, por exemplo, tenho dois ou tres contatos cadastrados para o cliente X (isso mesmo, o cliente é a empresa ou pessoa fisica e os contatos sao funcionarios dela), mas ao listar o cliente, e consequentemente os contatos, aparece apenas o ultimo contato cadastrado... olhei os codigos, estes que postei acima, e vi que em ambos tem o "tal de" while... ou seja, ele nao deveria listar todos os contatos ao inves de somente o ultimo?!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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