Jump to content


Photo

Buscar Um A Um No Mysql


  • Faça o login para participar
9 replies to this topic

#1 joefreire

joefreire

    Novato no fórum

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

Posted 10/09/2008, 12:11

Eai galera bom?

Intao tenho um tenho esse banco

CREATE TABLE `alunos` (
  `mat` int(3) NOT NULL auto_increment,
  `nome` varchar(50) NOT NULL,
  `endereco` varchar(50) NOT NULL,
  `cidade` varchar(20) NOT NULL,
  PRIMARY KEY  (`mat`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2;

CREATE TABLE `cursos` (
  `cod_curso` int(3) NOT NULL auto_increment,
  `curso` varchar(30) NOT NULL,
  PRIMARY KEY  (`cod_curso`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3;

CREATE TABLE `rela` (
  `cur` int(3) NOT NULL,
  `aul` int(3) NOT NULL,
  KEY `cur` (`cur`),
  KEY `aul` (`aul`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


que q eu to querendo, fazer o valor do relacionamento aparecer com o nome do usuario

tipo mostrar qual usuario ta fazendo qual curso

tenho nem ideia de qual consulta fazer

desde ja muito obrigado.

PS: relacionei certo?

intao ja consegui a metade
SELECT alunos.nome, cursos.curso FROM alunos, cursos, rela WHERE alunos.mat=rela.aul AND cursos.cod_curso=rela.cur



so q mostra varias vezes o mesmo nome
eu quero que mostre uma vez o nome e os cursos q o usuario faz

como faço para mostrar um nome de usuario e os cursos que ele vaz
sem repetir o nome

Edição feita por: joefreire, 10/09/2008, 12:13.


#2 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 10/09/2008, 13:28

Espero que ajude :D
http://forum.wmonlin...howtopic=204843

#3 joefreire

joefreire

    Novato no fórum

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

Posted 10/09/2008, 14:17

eu entendi mais ow menos,
a parte do if eu boiei
to começando mais to querendo muito fazer isso

#4 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 10/09/2008, 14:32

Você vai receber uma coleção de resultados assim:

Nome | curso
=========
Rafael | Macumba rápida
Rafael | PHP
Rafael | Linux for Windows Lovers
Wilker | Taxonomia
Paulo | Produção de destilados


Isso é fato.
O que você tem que fazer é, no seu front-end, dar um loop nessa coleção comparando o registro atual com o registro anterior. Se forem iguais, vocÊ não exibe o nome. Só o curso.
Se não for igual, exibe o nome, porque mudou o cara.
Pegou?

#5 joefreire

joefreire

    Novato no fórum

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

Posted 10/09/2008, 15:02

no cara voce tem a manha
captou oque eu quero
mais nao sei como faço isso no if

eu quero fazer assim
se o nome anterior for igual ao atual so mostra o curso


mais nao sei comoo
me da um help tenho uma prova disso daki uma hora


valeu msm

vamos supor q eu tenha isso

<?php
include "cone.php";
$con = mysql_query("SELECT alunos.nome, cursos.curso, alunos.mat FROM alunos, cursos, rela WHERE alunos.mat=rela.aul AND cursos.cod_curso=rela.cur");
while($resu = mysql_fetch_array ($con))
{
echo $resu['nome'];
echo $resu['curso'].;
}
?>

eu tenho q por um if dentro do while.?

#6 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 10/09/2008, 15:10

<?php

include "cone.php";

$con = mysql_query("SELECT alunos.nome, cursos.curso, alunos.mat FROM alunos, cursos, rela WHERE alunos.mat=rela.aul AND cursos.cod_curso=rela.cur");

$ultimoNome = null;

while($resu = mysql_fetch_array ($con)) {

 if ($ultimoNome!= $resu['nome']) {

	echo $resu['nome'];

	$ultimoNome!= $resu['nome'];

 }

echo $resu['curso'].;

}

?>


#7 joefreire

joefreire

    Novato no fórum

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

Posted 10/09/2008, 15:16

retornou a mesma coisa

#8 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 10/09/2008, 15:29

<?php
include "cone.php";
$con = mysql_query("SELECT alunos.nome, cursos.curso, alunos.mat FROM alunos, cursos, rela WHERE alunos.mat=rela.aul AND cursos.cod_curso=rela.cur");
$ultimoNome = null;
while($resu = mysql_fetch_array ($con)) {
 if ($ultimoNome!= $resu['nome']) {
	echo $resu['nome'];
	$ultimoNome = $resu['nome'];
 }
echo $resu['curso'].;
}
?>
Falhou... agora está certo

#9 joefreire

joefreire

    Novato no fórum

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

Posted 10/09/2008, 15:35

retornou de novo a mesma coisa


eu nao entendi oque vc fez ate agora

nao tem q falar q ultimo nome e igual ao ultimo registro nao

o while nao conta os registros nao?

#10 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 10/09/2008, 16:04

:S
Ordene o resultado da seua query por nome, curso




1 user(s) are reading this topic

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

IPB Skin By Virteq