Foros del Web » Programando para Internet » PHP »

Problema con consulta mysql con php

Estas en el tema de Problema con consulta mysql con php en el foro de PHP en Foros del Web. Hola, tengo un problema que no logro solucionar, seguramente es una tontería, pero no llevo mucho tiempo con php and mysql y no se como ...
  #1 (permalink)  
Antiguo 08/12/2011, 19:47
 
Fecha de Ingreso: diciembre-2011
Mensajes: 7
Antigüedad: 12 años, 4 meses
Puntos: 0
Problema con consulta mysql con php

Hola, tengo un problema que no logro solucionar, seguramente es una tontería, pero no llevo mucho tiempo con php and mysql y no se como realizar lo siguiente. Antes de todo muchas gracias por la ayuda.


Tengo 3 tablas con los siguientes campos:

Admin

id_admin
tipo_admin
user_admin
pass_admin
correo_admin


Usuario:

id_usuario
nom_usuario
pass_usuario
id_admin
id_empresa

Empresa:

id_empresa
nom_empresa
cif_empresa
dir_empresa
cp_empresa
telf_empresa
email_empresa
ciudad_empresa
id_admin

----

El tema es que quiero mostrar un listado de "usuarios" en los que tienen que salir los siguientes datos:

Nombre de usuario: Nombre de administrador: Nombre de empresa:

Conseguirlo tan solo por el ID del usuario "id_usuario" para un solo registro es sencillo mediante esta sentencia sql

Código PHP:
$sql="SELECT us.nom_usuario,ad.user_admin,em.nom_empresa FROM 
empresa as em,admin as ad,usuario as us 
where 
us.id_usuario=2 //Este dato estaría en un registro de la tabla usuarios
and
ad.id_admin=10 //Este dato estaría en un registro de la tabla usuarios
and
em.id_empresa=1"
//Este dato estaría en un registro de la tabla usuarios 
Los datos de la consulta anterior serían pasados por POST en el caso de ser para un solo registro.

Luego muestro el registro con el nombre de cada campo con:
Código PHP:
$resultados=mysql_query($sql, $con);

  <?php
  
if($mostrar=  mysql_fetch_array($resultados)){
  
     
  
?>
 
  <tr>
    <td align="center" bgcolor="#FFFFFF"><?php echo $mostrar['nom_usuario']; ?></td>
    <td align="center" bgcolor="#FFFFFF"><?php echo $mostrar['user_admin']; ?></td>
    <td align="center" bgcolor="#FFFFFF"><?php echo $mostrar['nom_empresa']; ?></td>
    <td align="center" bgcolor="#FFFFFF"><a href="editar_usuario.php?id_admin=<?php echo $mostrar['id_usuario']; ?>"><img src="imagenes/mini/editdocument.png" width="32" height="32" alt="Editar" /></a></td>
    </tr>
<?php

  
}
?>
Funciona a la perfección como comento para un registro. Pero si quiero mostrar un listado en el que me muestre lo mismo?

Recordemos que en la tabla Usuario los campos son:

id_usuario
nom_usuario
pass_usuario
id_admin
id_empresa

Y lo que quiero es sacar el nombre de los valores relacionados para

"Nombre de usuario: Nombre de administrador: Nombre de empresa:"

Que en las tablas "admin" y "empresa" serían id_admin y id_empresa.

Espero haberme explicado bien, y me ayudeis a sacar la consulta o script necesario para listar los datos que pido.

Muchísimas gracias a todos!
  #2 (permalink)  
Antiguo 08/12/2011, 19:52
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema con consulta mysql con php

pues en vez de hacer las cosas con un if hazlo con un bucle
Código PHP:
Ver original
  1. $query = mysql_query(/*tu consulta*/) or die(mysql_error());
  2. while($row = mysql_fetch_array($query)) {
  3.     echo $row['campo1'] . "<br />";
  4.     echo $row['campo2'] . "<br />";
  5.     /*y asi para todos tus campos*/
  6. }
ya el html lo haces tu, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 08/12/2011, 20:12
 
Fecha de Ingreso: diciembre-2011
Mensajes: 7
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Problema con consulta mysql con php

Cita:
Iniciado por carlos_belisario Ver Mensaje
pues en vez de hacer las cosas con un if hazlo con un bucle
Código PHP:
Ver original
  1. $query = mysql_query(/*tu consulta*/) or die(mysql_error());
  2. while($row = mysql_fetch_array($query)) {
  3.     echo $row['campo1'] . "<br />";
  4.     echo $row['campo2'] . "<br />";
  5.     /*y asi para todos tus campos*/
  6. }
ya el html lo haces tu, saludos
Gracias Carlos por tu ayuda, pero no es eso lo que quiero. Al hacer el bucle como me pones duplica todos los campos por consulas, te pongo un ejemplo.

Si tengo en usuario 2 registros, por ejemplo:

Cita:
id_usuario nom_usuario pass_usuario id_admin id_empresa
1 user1 123456 10 1
2 user2 123456 10 1

En admin 2 registros, por ejemplo:

Cita:
id_admin tipo_admin user_admin pass_admin correo_admin
1 1 admin1 123456 [email protected]
2 2 admin2 654321 [email protected]
y en empresa 1 registro por ejemplo:

Cita:
id_empresa nom_empresa cif_empresa dir_empresa cp_empresa telf_empresa email_empresa ciudad_empresa id_admin
1 empresa1 B87564315 direcc1 28001 911111111 [email protected] Madrid 10

Los datos que muestra al realizar el listado son:

Cita:
Nombre de usuario Administrador Empresa

user2 admin1 Empresa1
user2 admin2 Empresa1

Como ves está repitiendo los nombres del user2, y el user1 donde está?, y recuerda que tiene que salir los datos referentes al usuario, por lo que al hacer el while no funciona!

Alguna ayuda con esto??

gracias por adelantado
  #4 (permalink)  
Antiguo 08/12/2011, 20:19
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema con consulta mysql con php

el problema ya es de tu consulta, te recomiendo que uses join en tus consultas, para que quede, lo que necesitas con php era hacer el bucle ya el como traes los datos es cuestion de tu consulta, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 08/12/2011, 20:29
 
Fecha de Ingreso: mayo-2008
Mensajes: 103
Antigüedad: 15 años, 11 meses
Puntos: 14
Respuesta: Problema con consulta mysql con php

Es decir, una consulta en la que salgan todos los id_usuarios y sus nombreAdmin y nombreEmpresa relacionados?

Lo suyo es que primero consigas la consulta SQL que te interesa (la ejecutas en tu phpmyadmin), una vez te funcione allí intenta sacarla por php (para separar problemas)

Prueba con la consulta

Código:
SELECT us.nom_usuario,ad.user_admin,em.nom_empresa FROM 
empresa as em,admin as ad,usuario as us 
where 
us.id_admin=ad.id_admin
and
us.id_empresa=em.id_empresa
  #6 (permalink)  
Antiguo 09/12/2011, 02:36
 
Fecha de Ingreso: diciembre-2011
Mensajes: 7
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Problema con consulta mysql con php

Cita:
Iniciado por Urdaris_Nox Ver Mensaje
Es decir, una consulta en la que salgan todos los id_usuarios y sus nombreAdmin y nombreEmpresa relacionados?

Lo suyo es que primero consigas la consulta SQL que te interesa (la ejecutas en tu phpmyadmin), una vez te funcione allí intenta sacarla por php (para separar problemas)

Prueba con la consulta

Código:
SELECT us.nom_usuario,ad.user_admin,em.nom_empresa FROM 
empresa as em,admin as ad,usuario as us 
where 
us.id_admin=ad.id_admin
and
us.id_empresa=em.id_empresa
Hola Urdaris, muchas gracias por la ayuda.

Esta consulta me ha funcionado perfectamente! Exáctamente era esto lo que buscaba.

Muchísimas gracias!

Etiquetas: mysql, registro, sql, tabla, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:24.