Jump to content


Photo

Selecao De Dados Em 3 Ou + Tabelas


  • Faça o login para participar
1 reply to this topic

#1 allGNUtil

allGNUtil

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado

Posted 22/10/2009, 03:43

Ola pessoal.
Sou bem novato, se este topico estiver em lugar errado, coloquem no local correto por favor.
Moro no Japao e tenho 11 anos, moro com meus pais e meus irmaos.
Estou na escola japonesa. Sem os horarios que estou na escola brinco de aprender a programar.
Nasci no japao e fiquei apenas alguns meses no brasil, se escrever algumas coisas erradas liguem nao.
Agora estou brincando de aprender programacao em php.
Estou tentando lancar-fazer o seguinte codigo funcionar.

tenho estas 3 tabelas.

TABLE `clients_dados` (
`cliente_codigo` int(10) unsigned NOT NULL auto_increment,
`cliente_sobrenome` varchar(20) NOT NULL default '',
`cliente_sobrefuri` varchar(20) NOT NULL default '',
`cliente_nome` varchar(60) NOT NULL default '',
`cliente_nomefuri` varchar(20) NOT NULL default '',
`cliente_email` varchar(60) default NULL,
`cliente_endereco` int(10) unsigned NOT NULL default '0',
`cliente_newsletter` tinyint(1) unsigned NOT NULL default '0',
`cliente_status` tinyint(1) unsigned NOT NULL default '0',
`cliente_company` varchar(20) default NULL,
`cliente_depart` varchar(20) default NULL,
PRIMARY KEY (`cliente_codigo`)
) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 PACK_KEYS=0 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=1 ;

TABLE `clients_ends` (
`endereco_codigo` int(11) unsigned NOT NULL auto_increment,
`cliente_codigo` int(11) unsigned NOT NULL default '0',
`endereco_nome` varchar(60) default NULL,
`endereco_cep` varchar(30) default NULL,
`endereco_provincia` smallint(6) NOT NULL default '0',
`endereco_cidade` varchar(100) default NULL,
`endereco_complemento` varchar(255) default NULL,
PRIMARY KEY (`endereco_codigo`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 PACK_KEYS=0 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=1 ;

TABLE `clients_tels` (
`telefone_codigo` int(14) unsigned NOT NULL auto_increment,
`cliente_codigo` int(14) unsigned NOT NULL default '0',
`telefone_tipo` tinyint(3) unsigned NOT NULL default '0',
`telefone_numero` varchar(60) NOT NULL default '',
`telefone_ren` varchar(60) default NULL,
`telefone_fax` varchar(60) default NULL,
PRIMARY KEY (`telefone_codigo`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 PACK_KEYS=0 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=1 ;

TABLE `clients_senhas` (
`codigo` int(10) unsigned NOT NULL auto_increment,
`cliente` int(10) unsigned NOT NULL default '0',
`senha` varchar(50) NOT NULL default '',
`chave` varchar(4) NOT NULL default '',
`data` datetime NOT NULL default '0000-00-00 00:00:00',
`status` tinyint(1) unsigned NOT NULL default '0',
`ip` varchar(30) default NULL,
`host` varchar(255) default NULL,
PRIMARY KEY (`codigo`)
) ENGINE=MyISAM AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 PACK_KEYS=0 AUTO_INCREMENT=18 ;

<?php
if (strlen($_POST[frm_email])>5) {

$senha = md5($_POST[frm_senha]);

$result = mysql_query("SELECT cliente_codigo AS codigo, cliente_sobrenome AS sobrenome, cliente_nome AS prenome, cliente_email AS climail, cliente_endereco AS cliendereco, cliente_company AS clicomp, cliente_depart AS clidepart FROM clients WHERE cliente_email = '$_POST[frm_email]' AND cliente_senha = '$senha'");

if ($result ==0) { echo "<b> ERRO " . mysql_errno() . ": " . mysql_error() . "</b>"; die();}

if(mysql_affected_rows() >= 1){ // -----> Dados do cliente estao corretos
$row = mysql_fetch_array($result);

$clicodcli = $row[codigo];
$nomes = explode(" ",$row[sobrenome]);
$nomcli = $nomes[0];
$prenome = $row[prenome];
$cliemail = $row[climail];
$cliendereco = $row[cliendereco];
$clicomp = $row[clicomp];
$clidepart = $row[clidepart];

$ultimo_login = getMysqlDatetime(time());
$_SESSION['codcli'] = $codcli;
$_SESSION['nomcli'] = $nomcli;
$_SESSION['ultimo_login'] = $ultimo_login;
$_SESSION['qtde'] = 0;
$_SESSION['prenome'] = $prenome;
$_SESSION['cliemail'] = $cliemail;
$_SESSION['cliendereco'] = $cliendereco;
$_SESSION['clicomp'] = $clicomp;
$_SESSION['clidepart'] = $clidepart;
?>

Os dados da tabela clients estou capturando, mas queria capturar os dados das outras tabelas de acordo com o dado do cliente nas outras tabelas e armazenar na array session tambem, como devo escrever???

Meu pai esta me ajudando so que ele esta no trabalho agora, alem de que ele nao conhece muito, o que voces me ensirarem eu vou ensinar para ele.

Oh pessoal, beleza ai, da uma forca. Valeu

#2 Guilherme Venerato

Guilherme Venerato

    Normal

  • Usuários
  • 68 posts
  • Sexo:Masculino
  • Localidade:Presidente Prudente

Posted 22/10/2009, 10:04

$result = mysql_query("SELECT cliente_codigo AS codigo, cliente_sobrenome AS sobrenome, cliente_nome AS prenome, cliente_email AS climail, cliente_endereco AS cliendereco, cliente_company AS clicomp, cliente_depart AS clidepart FROM clients WHERE cliente_email = '$_POST[frm_email]' AND cliente_senha = '$senha'");
?>


No select você deve colocar as tabelas que quer buscar
Ex:
FROM clients c, clients_end ce, WHERE c.cliente_codigo = ce.cliente_codigo...

Assim com todas as tabelas que quiser usar, onde 'c' e 'ce' são as referencias para as tabelas clients e clients_end respectivamente.

Edição feita por: Guilherme Venerato, 22/10/2009, 10:05.

Guilherme Venerato - Soluções para Web
http://www.guilhermevenerato.com




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq