Jump to content

Como listar resultado de uma tabela com uma array


fredericomartins
 Share

Recommended Posts

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

<?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/>';
}
  • Vote 1

developer @ filipealves.net

filipealvesbcl [a] gmail.com

github.com/filipealvesbcl

Link to comment
Share on other sites

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 by Cerzedelo
Link to comment
Share on other sites

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

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 by apocsantos
geshi
Link to comment
Share on other sites

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 by capesone
Link to comment
Share on other sites

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 by apocsantos
geshi
Link to comment
Share on other sites

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.