fredericomartins Posted April 28, 2015 at 03:32 PM Report Share #582057 Posted April 28, 2015 at 03:32 PM Boa Tarde, Estou com uma dúvida e precisava de uma ajudita, É o seguinte tenho duas tabelas utilizador_ano id cdg_utilizador ano utilizadores id nome A ideia é eu listar em primeiro lugar todos os utilizadores do ano, na tabela utilizador_ano todos os que no ano tem 2015 depois desta listagem ficava com vários resultado do "cdg_utilizador" e em seguida teria que listar cada um desses "cdg_utilizador" na tabela utilizadores, de forma a me dar os nomes Penso que da para perceber o que quero, não faço a mínima com o fazer, alguém que me ajude 😉 Abraço Link to comment Share on other sites More sharing options...
chbcl Posted April 28, 2015 at 04:06 PM Report Share #582065 Posted April 28, 2015 at 04:06 PM <?php $connection = "ESTABELECES A CONEXAO NESTA VARIAVEL"; $cmd = "SELECT * FROM utilizador_ano WHERE ano LIKE '2015'"; $res = mysqli_query($connection,$cmd); while($row = mysqli_fetch_array($res)){ print $row['id'] . ' - ' . $row['cdg_utilizador'] . ' - ' . $row['ano'] . '<br/>'; } 1 Report developer @ filipealves.net filipealvesbcl [a] gmail.com github.com/filipealvesbcl Link to comment Share on other sites More sharing options...
fredericomartins Posted April 29, 2015 at 01:38 AM Author Report Share #582095 Posted April 29, 2015 at 01:38 AM Hum, não da assim, a ideia é que vá listar os dados da outra tabela utilizadores (id, nome) O ID é os valores que retomam da $row['id'] Link to comment Share on other sites More sharing options...
Cerzedelo Posted April 29, 2015 at 07:57 AM Report Share #582097 Posted April 29, 2015 at 07:57 AM (edited) A melhor ideia é ao fazer a query em sql, já trazer o nome, através da propriedade JOIN, isto e junção de 2 tabelas. SELECT utilizador_ano.id, utilizadores.nome FROM utilizador_ano JOIN utilizadores WHERE utilizadores_ano.cdg_utilizador=utilizadores.id Depois e só listar $row['nome'] Edited April 29, 2015 at 08:01 AM by Cerzedelo Link to comment Share on other sites More sharing options...
chbcl Posted April 29, 2015 at 02:19 PM Report Share #582125 Posted April 29, 2015 at 02:19 PM Sendo assim, o que precisas é isto: <?php $connection = "ESTABELECES A CONEXAO NESTA VARIAVEL"; $cmd = "SELECT * FROM utilizador_ano INNER JOIN utilizadores ON utilizadores.id = utilizador_ano.cdg_utilizador WHERE ano LIKE '2015'"; $res = mysqli_query($connection,$cmd); while($row = mysqli_fetch_array($res)){ print $row['id'] . ' - ' . $row['cdg_utilizador'] . ' - ' . $row['ano'] . '<br/>'; // e os outros campos todos que quiseres } developer @ filipealves.net filipealvesbcl [a] gmail.com github.com/filipealvesbcl Link to comment Share on other sites More sharing options...
fredericomartins Posted April 29, 2015 at 08:18 PM Author Report Share #582139 Posted April 29, 2015 at 08:18 PM (edited) Está a dar dois erros: Warning: mysqli_query() expects parameter 1 to be mysqli, resource given Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given Penso que o primeiro tem a ver com a conneção... Estou a fazer assim: $easyadmin = mysql_pconnect($hostname_easyadmin, $username_easyadmin, $password_easyadmin) or trigger_error(mysql_error(),E_USER_ERROR); O meu código está assim $cmd = "SELECT * FROM utilizador_anopastoral INNER JOIN utilizadores ON utilizadores.id = utilizador_anopastoral.utilizador WHERE anopastoral LIKE '3'"; $res = mysqli_query($easyadmin,$cmd); while($row = mysqli_fetch_array($res)){ print $row['nome'] . '<br/>'; // e os outros campos todos que quiseres } Edited April 29, 2015 at 10:43 PM by apocsantos geshi Link to comment Share on other sites More sharing options...
capesone Posted April 29, 2015 at 11:39 PM Report Share #582173 Posted April 29, 2015 at 11:39 PM (edited) Olá fredericomartins Vou dar exemplos do codigo que uso, logo nao digo que seja a melhor maneira de fazer as coisas, porque tambem sou um iniciante! Mas o codigo como digo no post abaixo deve funcionar $easyadmin = mysql_pconnect($hostname_easyadmin, $username_easyadmin, $password_easyadmin) or trigger_error(mysql_error(),E_USER_ERROR); ai tens um erro de sintaxe e outro de lógica 1º crias a ligação com a base de dados em modo de mysql 2º chamas mal a funcao de mysql_connect Tambem tens de selecionar a base de dados que vais utilizar #crias a ligacao $easyadmin = new Mysqli("server", "user", "password", "base de dados"); #verifica erros if(mysqli_connect_errno()) die("Erro ao ligar a base de dados"); else return $easyadmin; eu uso esse codigo dentro de uma função especifica que retorna a ligação. Se nao usares funções tiras esse else return... $cmd = "SELECT * FROM utilizador_anopastoral INNER JOIN utilizadores ON utilizadores.id = utilizador_anopastoral.utilizador WHERE anopastoral LIKE '3'"; $res = mysqli_query($easyadmin,$cmd); $res = $easyadmin -> query($cmd); $res -> execute(); Tenta assim Edited April 29, 2015 at 11:47 PM by capesone Link to comment Share on other sites More sharing options...
fredericomartins Posted April 30, 2015 at 02:00 AM Author Report Share #582178 Posted April 30, 2015 at 02:00 AM (edited) Obrigado! Já funciona 😉 Quem sabe sabe! Codigo final $easyadmin = new mysqli("localhost", "root", "", "bd"); if(mysqli_connect_errno()) die("Erro ao ligar a base de dados"); $cmd = "SELECT * FROM utilizador_anopastoral INNER JOIN utilizadores ON utilizadores.id = utilizador_anopastoral.utilizador WHERE anopastoral LIKE '3'"; $res = mysqli_query($easyadmin,$cmd); while($row = mysqli_fetch_array($res)){ print $row['nome'] . '<br/>'; } Edited April 30, 2015 at 01:11 PM by apocsantos geshi Link to comment Share on other sites More sharing options...
chbcl Posted April 30, 2015 at 08:49 AM Report Share #582183 Posted April 30, 2015 at 08:49 AM Obrigado! Já funciona 😉 Quem sabe sabe! Codigo final $easyadmin = new mysqli("localhost", "root", "", "bd"); if(mysqli_connect_errno()) die("Erro ao ligar a base de dados"); $cmd = "SELECT * FROM utilizador_anopastoral INNER JOIN utilizadores ON utilizadores.id = utilizador_anopastoral.utilizador WHERE anopastoral LIKE '3'"; $res = mysqli_query($easyadmin,$cmd); while($row = mysqli_fetch_array($res)){ print $row['nome'] . '<br/>'; } O teu problema foi que ao iniciar a conexão à base de dados iniciaste com mysql em vez de usares mysqli. developer @ filipealves.net filipealvesbcl [a] gmail.com github.com/filipealvesbcl Link to comment Share on other sites More sharing options...
fredericomartins Posted April 30, 2015 at 06:43 PM Author Report Share #582225 Posted April 30, 2015 at 06:43 PM Pois não tinha reparado, tenho que investigar sobre a diferença entre o mysql e mysqli. Link to comment Share on other sites More sharing options...
fredericomartins Posted June 4, 2015 at 01:05 AM Author Report Share #584216 Posted June 4, 2015 at 01:05 AM Estou com outra duvida relacionada com isto, é o seguinte, juntamos as duas tabela e as duas tem um coluna de NOME, como faço para fazer um print $row['nome'] da tabela 2 e não da 1? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now