QuaseNada 0 Denunciar post Postado Janeiro 10, 2007 Então Fabyo, mais no caso você explicou do começo, ou seja, para criar as tabelas também. Eu não teria que ter relacionado elas com o REFERENCES antes de fazer a consulta?Pq no banco de dados que você criou não tem references para relacionar as tabelas... Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 11, 2007 neste caso nao precisa pois usei tabela de junções, como voce pode ver é só testar o script e vera que funciona Compartilhar este post Link para o post Compartilhar em outros sites
QuaseNada 0 Denunciar post Postado Janeiro 13, 2007 banco de teste CREATE TABLE usuario_time ( id_usuario smallint(5) unsigned NOT NULL default '0', id_time smallint(5) unsigned NOT NULL default '0', PRIMARY KEY (id_usuario, id_time))CREATE TABLE usuarios ( id_usuario smallint(5) unsigned NOT NULL auto_increment, usuario varchar(40) collate utf8_unicode_ci NOT NULL default '', PRIMARY KEY (id_usuario))INSERT INTO usuarios VALUES (1, 'Fabyo');INSERT INTO usuarios VALUES (2, 'Adailton');INSERT INTO usuarios VALUES (3, 'Erick');INSERT INTO usuarios VALUES (4, 'Luiz');INSERT INTO usuarios VALUES (5, 'Fernando');CREATE TABLE times ( id_time smallint(5) unsigned NOT NULL auto_increment, time varchar(40) collate utf8_unicode_ci NOT NULL default '', PRIMARY KEY (id_time))INSERT INTO times VALUES (1, 'Sao Paulo');INSERT INTO times VALUES (2, 'Santos');INSERT INTO times VALUES (3, 'Flamengo');INSERT INTO times VALUES (4, 'Fluminense');INSERT INTO times VALUES (5, 'Palmeiras');INSERT INTO times VALUES (6, 'Vasco');INSERT INTO times VALUES (7, 'Corinthians');CREATE TABLE usuario_time ( id_usuario smallint(5) unsigned NOT NULL default '0', id_time smallint(5) unsigned NOT NULL default '0', PRIMARY KEY (id_usuario,id_time)) INSERT INTO usuario_time VALUES (1, 1);INSERT INTO usuario_time VALUES (2, 5);INSERT INTO usuario_time VALUES (3, 4);INSERT INTO usuario_time VALUES (4, 3);INSERT INTO usuario_time VALUES (5, 6);obs: para quem usa mysql muito antigo nao funcionara esse banco dai nesse caso monte um banco sem o unicodequalquer duvida só perguntarPorque você criou 2 vezes a tabela usuario_time? não entendí... Compartilhar este post Link para o post Compartilhar em outros sites
espanka 0 Denunciar post Postado Janeiro 13, 2007 Ola pessoal, gostaria de saber se alguem tem um sistema ai ja pronto mesmo que simples, mas que use varias tabelas relacionadas onde o mesmo Sujeito posso ter varias opçoes difirente, no caso de um TORCEDO DE TIME DE FUTEBOL, varios times pra um torcedor so, no caso CARRO varios acessorios para o mesmo, com formulario de cadastro, se alguem tiver ai e poder me enviar em zip ou rar fico fico agradecido. valew galera ate mais... Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 15, 2007 Ja corrigi, é que no exemplo ta tabela estava certo, só depois na tabela completa que eu devo ter duplicado sem querer, mas o proprio banco de dados nao deixaria cadastrar de novo a mesma tabela banco de testeCREATE TABLE usuario_time ( id_usuario smallint(5) unsigned NOT NULL default '0', id_time smallint(5) unsigned NOT NULL default '0', PRIMARY KEY (id_usuario, id_time) ) CREATE TABLE usuarios ( id_usuario smallint(5) unsigned NOT NULL auto_increment, usuario varchar(40) collate utf8_unicode_ci NOT NULL default '', PRIMARY KEY (id_usuario) ) INSERT INTO usuarios VALUES (1, 'Fabyo'); INSERT INTO usuarios VALUES (2, 'Adailton'); INSERT INTO usuarios VALUES (3, 'Erick'); INSERT INTO usuarios VALUES (4, 'Luiz'); INSERT INTO usuarios VALUES (5, 'Fernando'); CREATE TABLE times ( id_time smallint(5) unsigned NOT NULL auto_increment, time varchar(40) collate utf8_unicode_ci NOT NULL default '', PRIMARY KEY (id_time) ) INSERT INTO times VALUES (1, 'Sao Paulo'); INSERT INTO times VALUES (2, 'Santos'); INSERT INTO times VALUES (3, 'Flamengo'); INSERT INTO times VALUES (4, 'Fluminense'); INSERT INTO times VALUES (5, 'Palmeiras'); INSERT INTO times VALUES (6, 'Vasco'); INSERT INTO times VALUES (7, 'Corinthians'); CREATE TABLE usuario_time ( id_usuario smallint(5) unsigned NOT NULL default '0', id_time smallint(5) unsigned NOT NULL default '0', PRIMARY KEY (id_usuario,id_time) ) INSERT INTO usuario_time VALUES (1, 1); INSERT INTO usuario_time VALUES (2, 5); INSERT INTO usuario_time VALUES (3, 4); INSERT INTO usuario_time VALUES (4, 3); INSERT INTO usuario_time VALUES (5, 6); obs: para quem usa mysql muito antigo nao funcionara esse banco dai nesse caso monte um banco sem o unicode qualquer duvida só perguntar Porque você criou 2 vezes a tabela usuario_time? não entendí... Compartilhar este post Link para o post Compartilhar em outros sites
::..Hunter..:: 1 Denunciar post Postado Fevereiro 7, 2007 desculpe mas não entendi qual a diferença entre WHERE e INNER JOIN, alguém poderia me explicar o benefício de uma e de outra? :mellow: Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 7, 2007 O Where filtra a busca por um ou mais campos. Ex: Select * From tabela Where nome = 'Beraldo' And cidade = 'Curitiba'; O Inner Join refere-se ao campo que faz a ligação entre as duas tabelas. Ex: Select t1.id, t2.campoX From tabela1 as t1 Inner Join tabela2 as t2 On t1.id = t2.id_usuario Where t1.nome = 'Beraldo'; Nesse caso, o campo id_usuario da tabela 2 está ligado ao campo id da tabela 1. O que vem logo após o On define a ligação entre os campos. Mais detalhes: http://dev.mysql.com/doc/refman/5.1/en/join.html http://dev.mysql.com/doc/refman/5.1/en/select.html Se eu falei algo errado, podem corrigir! :P []'s Compartilhar este post Link para o post Compartilhar em outros sites
::..Hunter..:: 1 Denunciar post Postado Fevereiro 8, 2007 Mesmo exemplo só com where: Select t1.id, t2.campoX From tabela1 as t1, tabela2 as t2 WHERE (t1.id = t2.id_usuario) AND (t1.nome = 'Beraldo'); Mas qual a vantagens em fazer com o inner join? É mais rápido? Acho que ainda não entendi. Compartilhar este post Link para o post Compartilhar em outros sites
::..Hunter..:: 1 Denunciar post Postado Março 2, 2007 Alguém aí pode me explicar a diferença entre usar JOIN ou somente "virgula" para fazer o relacionamento de tabelas? Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 5, 2007 voce precisa entender, mas para isso você tem que saber para que serve e como usar: INNER JOIN LEFT OUTER JOIN RIGHT OUTER JOIN tem coisas que da para voce fazer com uma simples comparação tabela1.id = tabela2.id, mas tem coisas nao da vai depender muito das complexibilidades de suas tabelas e do tipo de resultados que você quer tirar delas Compartilhar este post Link para o post Compartilhar em outros sites
Robertson Matos 0 Denunciar post Postado Março 28, 2007 Excelente iniciativa Fabyo, gostei muito da "aula" Só que gostaria que se possivel fosse você explicasse tambem como faria pra agrupar varios times ao mesmo usuario. Exemplo. Quando eu inclui um novo time para o usuario Fabyo ficou assim "Fabyo torce para o time Sao Paulo" "Fabyo torce para o time Botafogo" (Eu tambem. hehe) A pergunta é nao teria como listar assim: Fabyo torce para Sao Paulo, Botafogo... etc Pois peguei seu exemplo e estou fazendo uma listagem de um Menu atraves de BD Exemplo. Menu Grupo1 Subgrupo1 Subgrupo2 Grupo2 Subgrupo3 SubGrupo4 A minha tabela esta igual a sua... a unica diferença eh que mudei o nome time pra "grupo" e usuario pra "subgrupo" Grato pela atencao e pela aula mais uma vez! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 28, 2007 tem sim, assim que der eu faço um exemplo pra você ver e se der ainda hj t+ Compartilhar este post Link para o post Compartilhar em outros sites
Robertson Matos 0 Denunciar post Postado Março 28, 2007 tem sim, assim que der eu faço um exemplo pra você ver e se der ainda hj t+ :rolleyes: eu nao tinha esperanças que você responderia pois fazia tempo que o topico nao era citado, mas fiquei bastante feliz por saber que ainda existem pessoas como você dispostas a ajudar compartilhando seus conhecimentos com toda paciencia do mundo! (So podia ser Sao Paulino mesmo) http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Valeu mesmo!Aguardo ancioso! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Robertson Matos 0 Denunciar post Postado Março 29, 2007 tem sim, assim que der eu faço um exemplo pra você ver e se der ainda hj t+ :rolleyes: eu nao tinha esperanças que você responderia pois fazia tempo que o topico nao era citado, mas fiquei bastante feliz por saber que ainda existem pessoas como você dispostas a ajudar compartilhando seus conhecimentos com toda paciencia do mundo! (So podia ser Sao Paulino mesmo) http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Valeu mesmo!Aguardo ancioso! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif :( Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 30, 2007 opa desculpe a demora é porque ta uma correria aqui, mas beleza entao o que você quer fazer da para fazer de varias maneiras diferentes, aproveitando o mesmo tutorial sem precisar mudar o select voce pode fazer assim dentro do while: while($l = mysql_fetch_array($re)) { $usuarios[$l["usuario"]][] = $l["time"]; } para testar: echo "<pre>"; print_r($usuarios); echo "</pre>"; dai depois você ve como quer mostrar esses dados Compartilhar este post Link para o post Compartilhar em outros sites
Robertson Matos 0 Denunciar post Postado Março 31, 2007 opa desculpe a demora é porque ta uma correria aqui, mas belezaentao o que você quer fazer da para fazer de varias maneiras diferentes, aproveitando o mesmo tutorial sem precisar mudar o select voce pode fazer assim dentro do while: while($l = mysql_fetch_array($re)){ $usuarios[$l["usuario"]][] = $l["time"];}para testar:echo "<pre>";print_r($usuarios);echo "</pre>";dai depois você ve como quer mostrar esses dadosOlá amigo, saiu tipo assim...Como faço pra arrumar esse codigo ? <_< Array( [Fabyo] => Array ( [0] => Sao Paulo [1] => Santos ) [Adailton] => Array ( [0] => Palmeiras ) [Erick] => Array ( [0] => Fluminense ) [Luiz] => Array ( [0] => Flamengo ) [Fernando] => Array ( [0] => Vasco ))o meu codigo ficou assim:<?$cn = mysql_connect("localhost", "root", "");mysql_select_db("juncao");$re = mysql_query("SELECT times.time, usuarios.usuarioFROM (times INNER JOIN usuario_time ON times.id_time = usuario_time.id_time) INNER JOIN usuarios ON usuario_time.id_usuario = usuarios.id_usuario");mysql_close($cn);while($l = mysql_fetch_array($re)){ $usuarios[$l["usuario"]][] = $l["time"];}echo "<pre>";print_r($usuarios);echo "</pre>";?>Grato mais uma vez pela atencao! Compartilhar este post Link para o post Compartilhar em outros sites
Robertson Matos 0 Denunciar post Postado Março 31, 2007 So para ficar claro...o Fabyo torce para o fantastico Internacional de Bebedouros http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif tem sim, assim que der eu faço um exemplo pra você ver e se der ainda hj t+ :rolleyes: eu nao tinha esperanças que você responderia pois fazia tempo que o topico nao era citado, mas fiquei bastante feliz por saber que ainda existem pessoas como você dispostas a ajudar compartilhando seus conhecimentos com toda paciencia do mundo! (So podia ser Sao Paulino mesmo) http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Valeu mesmo! Aguardo ancioso! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif HAuhUAHuhA... o Inter de Beira Rio ?! ou é outro Inter de SP ?! Acho que no fundo no fundo ele é Sao Paulino! http://forum.imasters.com.br/public/style_emoticons/default/grin.gif Compartilhar este post Link para o post Compartilhar em outros sites
Robertson Matos 0 Denunciar post Postado Abril 3, 2007 Olá amigo, saiu tipo assim...Como faço pra arrumar esse codigo ? Array([Fabyo] => Array([0] => Sao Paulo[1] => Santos)[Adailton] => Array([0] => Palmeiras)[Erick] => Array([0] => Fluminense)[Luiz] => Array([0] => Flamengo)[Fernando] => Array([0] => Vasco))o meu codigo ficou assim:<?$cn = mysql_connect("localhost", "root", "");mysql_select_db("juncao");$re = mysql_query("SELECT times.time, usuarios.usuarioFROM (times INNER JOIN usuario_time ON times.id_time = usuario_time.id_time) INNER JOIN usuarios ON usuario_time.id_usuario = usuarios.id_usuario");mysql_close($cn);while($l = mysql_fetch_array($re)){$usuarios[$l["usuario"]][] = $l["time"];}echo "<pre>";print_r($usuarios);echo "</pre>";?> Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Abril 4, 2007 Sou Sao Paulino sim entao Robertson o exemplo que te passei esta certo, você tem um array com os usuario e seus times agora você usa o array da forma que achar melhor no seu sistema. Compartilhar este post Link para o post Compartilhar em outros sites
Robertson Matos 0 Denunciar post Postado Abril 4, 2007 Sou Sao Paulino simentao Robertson o exemplo que te passei esta certo, você tem um array com os usuario e seus timesagora você usa o array da forma que achar melhor no seu sistema.Grande Fabyo,Cara eu já tentei de tudo pra sair direitinho sem aqueles ARRAY no codigo mas nao conseguidiz ai so um exemplo de como ficaria pra sair - FabyoSao PauloSantos- FernandoCorinthias... etcsem aqueles codigos no meio do printAgradeço desde já pela grande ajuda! Compartilhar este post Link para o post Compartilhar em outros sites