Ir para conteúdo

POWERED BY:

Arquivado

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

Luã Melo

SELECT dentro de while ou algo assim.

Recommended Posts

Boa noite.

 

Pessoal, estou tentando fazem algumas horas, solucionar um problema que achei que seria simples (pra mim, iniciante).

 

Tenho duas tabelas.

 

usuarios

id, user, status, etc...

 

status_users
id, status_val


O que estou tentando fazer é o seguinte. Trazer todos os usuários num while (isso consegui) mas o status na tabela usuarios está numerado, tipo, usuario tal em status está 1 (ativo), usuário fulano em status está 2 (pendente).

 

Só que para apresentar na tela ele vem:

id = 1 | user = fulano | status = 2

Ao invés disso, queria que antes de mostrar o número (2 no caso) ele faça uma busca na tabela status_users e compare com a id e traga o valor de status_val (que será o texto Pendente).

 

Tentei LEFT JOIN, select dentro de select, while dentro de while. E sem sucesso.

 

Agora está assim.

 

 

$sqlShowUsers = "SELECT usuarios.status, status_users.status_val FROM usuarios, status_users WHERE status_users.id=usuarios.status";

 

 

Mas só retorna um resultado.

 

o while completo está assim:

<?php
 
  $sqlShowUsers = "SELECT usuarios.status, status_users.status_val FROM usuarios, status_users WHERE status_users.id=usuarios.status";
        $showUsers = mysql_query($sqlShowUsers);
  while($row = mysql_fetch_object($showUsers)){
 
  $status = $row->status_val;
 
  ?>
<tr id="<?php echo $row->id;?>">
<td data-rel="tooltip" title="<?php echo $row->email;?>"><?php echo $row->user;?></td>
<td class="center"><?php echo $dataReg;?></td>
<td class="center"><?php echo $row->classe;?></td>
<td class="center"><span class="label">_<?php echo $status;?></span></td>
<td class="center">
<div class="btn-group" style="float:left;padding-right:3px">
 <a class="btn btn-primary" href="#"><i class="icon-info-sign icon-white"></i> Status</a>
 <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
 <ul class="dropdown-menu">
<li><a href="#" class="user-status" id="<?php echo $row->id;?>" data-status="1"><i class="icon-ok"></i> Ativar</a></li>
<li><a href="#" class="user-status" id="<?php echo $row->id;?>" data-status="3"><i class="icon-remove"></i> Inativar</a></li>
<li><a href="#" class="user-status" id="<?php echo $row->id;?>" data-status="2"><i class="icon-question-sign"></i> Pendente</a></li>
<li><a href="#" class="user-status" id="<?php echo $row->id;?>" data-status="4"><i class="icon-ban-circle"></i> Banir</a></li>
<li class="divider"></li>
<li><a href="#"><i class="i"></i> Fazer Administrador</a></li>
 </ul>
</div>
<a class="btn btn-success" href="<?php echo BASE.'/../perfil/'.$row->user;?>"><i class="icon-zoom-in icon-white"></i> Vizualizar</a>
<a class="btn btn-info" href="#"><i class="icon-edit icon-white"></i> Editar</a>
<a class="btn btn-danger btn-deletar-usuario" href="content/modal-del-user.php?idDelUser=<?php echo $row->id;?>&user=<?php echo $row->user;?>"><i class="icon-trash icon-white"></i> Deletar</a>
</td>
</tr>
<?php } ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dados da tabela:

 

mysql> select * from `users`;
+----+----------+--------+
| id | user     | status |
+----+----------+--------+
|  1 | Gilberto |      2 |
|  2 | Marcos   |      1 |
|  3 | Rafael   |      4 |
|  4 | Matheus  |      2 |
+----+----------+--------+
4 rows in set (0,00 sec)


mysql> select * from `users_status`;
+----+-------------+
| id | status_val  |
+----+-------------+
|  1 | Pendente    |
|  2 | Bla bla bla |
|  3 | Tanto faz   |
|  4 | Qlqr coisa  |
+----+-------------+
4 rows in set (0,00 sec)

Usando WHERE:

mysql> select `u`.`id`, `u`.`user`, `s`.`status_val` as `status` 
    -> from `users` `u`, `users_status` `s`
    -> where `u`.`status` = `s`.`id`;
+----+----------+-------------+
| id | user     | status      |
+----+----------+-------------+
|  2 | Marcos   | Pendente    |
|  1 | Gilberto | Bla bla bla |
|  4 | Matheus  | Bla bla bla |
|  3 | Rafael   | Qlqr coisa  |
+----+----------+-------------+
4 rows in set (0,00 sec)

[]'s! ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Matheus, valeu pela resposta rápida. Acabei conseguindo colocando um select dentro do while. Testei essa forma que você passou, pois parece ser a correta, mas não me retornou nada =/

 

Obrigado pela ajuda de qualquer forma. :yes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim, se quiser retonar um em especifico adicone o where.

 

 

SELECT  u.*, s.val FROM usuarios as u
inner join status_users as s on u.status = s.id

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

tente assim, se quiser retonar um em especifico adicone o where.

 

 

SELECT  u.*, s.val FROM usuarios as u
inner join status_users as s on u.status = s.id

 

Tinha tentado o seu na madrugada e não consegui, mas não fiquei contente com o select dentro do while tendo outra forma de fazer. Testei novamente o seu exemplo e funcionou.

 

Muito obrigado!

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.