Ir para conteúdo

Arquivado

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

Fabyo

Mini Tutorial de Mysql

Recommended Posts

ola amigo você me passo essa dica ae mas nao funciona aqui, mas entrei no PHPADMIN mudei la as senhas e root ai quando vo connectar o phpadmin aparece uma telinha falando do erro e o link para CONFIG.INC.PHP, ai fala que se eu clicar e a telinha aparecer em branco pq ta certo mas sempre fica fazendo isso e nao conecta nao aparece o campo pra colocar o USER nem A SENHA , fala que ta com senha mas nao aparece o campo pra colcar você pode me ajudar nisso ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caras, eu sei trabalhar com instruções SQL sucegadissimooo, meu maior problema é trabalho com o MySQLNo caso, inicia-lo e entrar nele e o usuario e a senha deleEu fui direito na pasta bin e iniciei o mysql.exe e ele abriu o prompt e criei database, tabelas, fiz consultas e etc, isso é errado ? Deveria ter iniciado, colocado senha e etc ?Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola amigo você me passo essa dica ae mas nao funciona aqui, mas entrei no PHPADMIN mudei la as senhas e root ai quando vo connectar o phpadmin aparece uma telinha falando do erro e o link para CONFIG.INC.PHP, ai fala que se eu clicar e a telinha aparecer em branco pq ta certo mas sempre fica fazendo isso e nao conecta nao aparece o campo pra colocar o USER nem A SENHA , fala que ta com senha mas nao aparece o campo pra colcar você pode me ajudar nisso ???

Ola entendi oque falo, mas o negocio eh que meu MYSQL nao tem USER nem SENHA so tem o ROOT do que ja eh o nromal vim no MYSQL, quero saber como faço pra colocar o USER e SENHA do usuario.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola galera nao sei oque acontece no meu MYSQL 4.025, nao aceito nenhum comando no promt dele pra criar bando de dados nem de tabelas fala que a sintax ta errada ou problemas no SQL, gostaria que alguem me desse alguam dicas e postasse aqui um EXEMPLO passo a passo de como criar um bando de dados e uma tabela pra frutas. valew galera conto com vcs, ja to quase desistino de tudo isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pla fabyo, eu temho instaldo tambem o PHPADMIN mas nao consigo criar as tables igual a galera coloca ai nos forun meu mysql eh o 4.025 sempre que coloco os comandos da SINTAX ERRO. Eu querio so saber como criar um banco de dandos e a tablei no promp e depois popular como ta ai logo abaixo, no PROMP do MYSQL eu uso WIN98, ja tenteni tambem cria-la no PHPADMIN mas nao fica como ta aiparece que nao tem todas opçoes dai, mas tava affim mesmo de criar no PROMT do MYSQl. ver se da pramim ajudar ai brow ate parei ja de ver os modulos do curso ai de você ja tem quase 1 mes nao tem como fazer nada no meu MYSQL. ate mais brow fuizzzCREATE TABLE tb_frutas (id_fruta int(3) NOT NULL DEFAULT '0' auto_increment,fruta varchar(50) NOT NULL DEFAULT '0' ,PRIMARY KEY (id_fruta)); e agora popular com isso que ta logo abaixo.INSERT INTO tb_frutas VALUES("1","banana");INSERT INTO tb_frutas VALUES("2","maçã");INSERT INTO tb_frutas VALUES("3","uva");INSERT INTO tb_frutas VALUES("4","pêra");INSERT INTO tb_frutas VALUES("5","acerola");INSERT INTO tb_frutas VALUES("6","jaca");INSERT INTO tb_frutas VALUES("7","laranja");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa query também funciona da mesma maneira:

SELECT times.time, usuarios.usuarioFROM usuarios, times, usuario_timeWHERE usuarios.id_usuario = usuario_time.id_usuarioAND times.id_time = usuario_time.id_time
Acho que é mais simples de entender. As virgulas do FROM funcionam como o INNER JOIN.E tem uma regrinha:

número de junções = número de tabelas da consulta - 1

No caso são três tabelas (usuarios, times, usuario_time) e duaas junções:

usuarios.id_usuario = usuario_time.id_usuariotimes.id_time = usuario_time.id_time

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só um detalhe virgulas sao para select simples, tem consultas que é fundamental saber usar o sql (joins, left, right, etc..) e entender como funciona tudo

 

mas é dificil esses recursos para usuarios que só usam mysql, porque nao tem o costume de montar sqls gigantescos como no caso de sql server ou oracle, vai da necessidade do uso tem coisas que nao da para fazer somente com virgulas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal vou explicar de um modo simples e eficiente como fazer um relacionamento

usando uma tabela de junções, bom o que é uma junção?, na tabela junção existem 2 FKs e as duas formam uma primary key

 

vou montar um exemplo simples de usuarios e times de futebol

 

tabela usuarios

 

usuarios

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)

)

tabela de times de futebol:

 

times

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)

)

tabela de junções usuario_times:

 

usuario_time

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)

)

dessa forma basta dar um select na juncao pra você saber quais times um determinado usuario torce

 

exemplo:

 

listar usuarios com seus repectivos times

 

$cn = mysql_connect("localhost", "usuario", "senha");

mysql_select_db("sistema");

 

$re = mysql_query("SELECT times.time, usuarios.usuario

FROM (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))

{

$usuario = $l["usuario"];

$time = $l["time"];

 

echo "Usuario $usuario torce para o $time </br>";

}

resultado:

 

Usuario Fabyo torce para o Sao Paulo

Usuario Adailton torce para o Palmeiras

Usuario Erick torce para o Fluminense

Usuario Luiz torce para o Flamengo

Usuario Fernando torce para o Vasco

SELECT times.time, usuarios.usuario

FROM (times INNER JOIN usuario_time ON times.id_time = usuario_time.id_time)

INNER JOIN usuarios ON usuario_time.id_usuario = usuarios.id_usuario

explicando:

 

Selecione o campo time da tabela times e usuario da tabela usuarios aonde a tabela times esta ligada a

tabela usuario_time e o campo id_time da tabela times seja = ao campo id_time da tabela usuario_time

e a tabela usuarios onde o campo id_usuario da tabela usuario_time seja igual = ao campo id_usuario da tabela usuarios

 

banco completo:

 

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 unicode

 

qualquer duvida só perguntar

 

valeu http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

todo mundo fala que existe mais niguém demonstra como é que é

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Tava discutindo este assunto no inicial do PHP, mas como tem bastante a ver com esse tutorial, acho legal postar uma parte aqui.

 

Então, se me permitem, como acho que vai acrescentar ao tutorial um exemplo com três tabelas, acho que dá pra continuar a discussão dessa parte em diante, aqui.

 

O tutorial postado pelo Fábyo é com duas tabelas. A dúvida surge qdo temos três tabelas.

 

Por exemplo.

 

new_users

| users_id | username | endereco |

 

categoria

| categ_id | categ_desc |

 

subcateg

| subcateg_id | subcateg_id_categ | subcateg_desc |

 

 

O usuário, após cadastrado, escolhe uma categoria, dentre as opções (combobox), que abre subcategorias.

 

Aí escolhe uma subcategoria daquela categoria e grava.

 

Faz isso quantas vezes for necessário, até um limite pré-estabelecido (5, por exemplo).

 

Pra fazer o relacionamento dessas 3 tabelas, foram criadas as seguintes:

 

users_categ

| userid | categ_id |

 

users_subcateg

| users_id | subcateg_id |

 

Então, qdo o usuário escolhe a categoria e a subcategoria, é nessas duas tabelas que fica registrada sua escolha.

 

A questão é a seguinte. Fazer uma consulta que retorne quais as categorias com suas respectivas subcategorias o usuário 'x' escolheu.

 

A busca com JOIN tem a estrutura (me corrijam se eu estiver errado):

 

SELECT tabela1.campo1, tabela2.campo1FROM (tabela1 INNER JOIN tabela3 ON tabela1.campo2 = tabela3.campo1) INNER JOIN tabela2 ON tabela3.campo2 = tabela2.campo2

E como fazer qdo temos 3 tabelas pra buscar dados, como descrito acima?

 

Com a imensa ajuda dos colegas Void, tmferreira e Adailton, entre outros, chegamos no seguinte código:

 

<?phpinclude ("Connections/conexao.php");$user = $_SESSION['user'];$re = mysql_query("Select new_users.username, categoria.categ_desc, users_categ.*, subcateg.subcateg_desc, users_subcateg.* FROM new_users INNER JOIN users_categ ON new_users.users_id=users_categ.users_id INNER JOIN categoria ON users_categ.categ_id=categoria.categ_idINNER JOIN users_subcateg ON new_users.users_id=users_subcateg.users_idINNER JOIN subcateg ON users_subcateg.users_id=new_users.users_idWHERE new_users.username like '$user'")or die("erro: ".mysql_error());while ($i = mysql_fetch_array($re)){$usuario = $i["username"];$subcateg = $i["subcateg_desc"];$categ = $i["categ_desc"];echo $usuario . " "." " . $categ ." "." " . $subcateg;echo "<br>"."<br>";}?>

Só que tá retornando todas as linhas de categoria e subcategoria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só criar uma junção de 2 tabelas mesmo, pois a sub categoria ja esta relacionada com a categoria entao basta uma junção entre a sub e o usuario que fazendo um select trazia tudo relacionado ao usuario e suas categoris/sub

 

select +- do jeito que voce montou as tabelas:

 

SELECT new_users.username, subcateg.subcateg_desc, categoria.categ_desc
FROM ((user_sub INNER JOIN subcateg ON user_sub.id_sub_cat = subcateg.subcateg_id) INNER JOIN new_users ON user_sub.id_user = new_users.users_id) INNER JOIN categoria ON subcateg.subcateg_id_categ = categoria.categ_id;

 

qualquer duvida posta ai, pois um banco precisa ser bem pensado, nao da para começar um banco criando um select, por isso precisa ver direito

 

mas testa ai pra ver

Compartilhar este post


Link para o post
Compartilhar em outros sites

.... pois um banco precisa ser bem pensado, nao da para começar um banco criando um select, por isso precisa ver direito...

Concordo 100%. Pena que aprendi tarde, pois tô com o site quase terminado. Não fosse o tmferreira e o Void e você também, quando disse num dos teus posts "não faça errado só porque o certo é mais difícil", essa também teria saído bem errado.Valeu pessoal. Aproveitando este. Se eu entendi, toda vez que eu colocar o INNER JOIN eu vou estar selecionando a tabela que vem em seguida com as condições após o "ON". É isso. Sejam quantas tabelas forem?E esse primeiro INNER JOIN que tem uma tabela antes:

FROM ((user_sub INNER JOIN subcateg ON...

Estou selecionando a tabela user_sub ligada à subcateg OU estou selecionando as duas?Outra dúvida é a respeito dos parenteses. Cada INNER JOIN pressupões um novo parenteses?Obrigado pela ajuda e pela "aula".Aliás, funcionou beleza.

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.