Hola gente!!
El motivo de este post es para ver si alguien me puede dar una mano con un problema que estoy teniendo. Un amigo que algo sabe de php me pasó un codigo en php que utiliza 3 tablas de vbulletin para armar un listado de usuarios y un campo del perfil filtrando por grupo de usuarios.
El php arma una tabla con
Nombre de Equipo (Grupo de Usuarios)
nombre_de_usuario1 | Accesorio que utiliza (campo2 del perfil = field2)
nombre_de_usuario2 | Accesorio que utiliza
nombre_de_usuarion | Accesorio que utiliza
...
...
Ahora bien, para armar este listado el php toma los datos de 3 tablas del foro.
mst_users
mst_usergroup
mst_userfield
El problema que estoy teniendo es que no me lista los usuarios que tienen más de un "grupo de usuario" asignado por más que pertenezcan al grupo que quiero listar. Como no utilizo en mst_users la tabla de grupo de usuarios principal, sino la secundaria no puedo entrelazar bien los datos me parece.
Si alguien puede darme alguna idea... se que es PHP unicamente... y que el problema parece ser la integracion de datos entre las 3 tablas que estoy tratando de sincronizar y tomar los datos separados por comas desde este mismo PHP. Alguien tiene alguna idea al respecto? Mi conocimiento de php es muy, pero muy básico. Desde ya muchas gracias!!! Y aprovechen.... que pueden armar un php como este, modificarlo un poquito y les puede servir para listar varias cosas de cualquier tabla del foro!!! Lo unico que tienen que hacer es subir el php al servidor y empezar a probar!
Espero que alguno la tenga un poco más clara con PHP para que pueda ayudarme. Gracias!
Abajo les pasteo el codigo que estoy probando actualmente.
Código PHP:$host="localhost";
$username="Usuario_de_base_de_datos_del_foro";
$password="contraseña_de_base_de_datos_del_foro";
$db_name="nombre_de_base_de_datos_del_foro";
mysql_connect("$host", "$username", "$password")or die("No se pudo conectar con el server");
mysql_select_db("$db_name")or die("No se pudo conectar con la tabla");
mysql_query ("SET NAMES 'utf8'");
?>
<div id="maincontainer">
<?
?>
<?
$sql_grupos="select * from mst_usergroup WHERE usergroupid='10' OR usergroupid='11' OR usergroupid='15' OR usergroupid='16' OR usergroupid='17' OR usergroupid='20' OR usergroupid='24' OR usergroupid='25' OR usergroupid='26'";
$result_grupos=mysql_query($sql_grupos);
while ($rows_grupos = mysql_fetch_array($result_grupos)){
$id_grupo=$rows_grupos['usergroupid'];
/*
En este código de arriba lo que hago es tomar los grupos de usuario 10, 11, 15, 16, 17, 20, 24, 25 y 26 que son los me interesan. El problema parece ser como tomar los usuarios que pertenecen a varios grupos a la vez y están separados por "comas". Tengan en cuenta que ningun usuario que pertenezca a estos grupos puede pertener a otro. O sea, si hay un usuario que está en el 10, no puede pertenecer NUNCA a los demás numeros que tomo para armar el listado (aclaro esto porque por ahi con alguna exclusion o algo así pueden solucionar lo de tomar los datos separados por comas de alguna manera).
*/
?>
<h1><? echo $rows_grupos['title']; ?></h1>
<table>
<?
$sql_usuarios="select * from mst_user WHERE membergroupids='$id_grupo'";
$result_usuarios=mysql_query($sql_usuarios);
while ($rows_usuarios = mysql_fetch_array($result_usuarios)){
$id_usuario=$rows_usuarios['userid'];
$sql_accesorios="select * from mst_userfield WHERE userid='$id_usuario'";
$result_accesorios=mysql_query($sql_accesorios);
while ($rows_accesorios = mysql_fetch_array($result_accesorios)){
/*
En este código de arriba lo que hago es tomar de los usuarios los accesorios de cada uno (siguiendo el ejemplo anterior que postee).
*/
?>
<tr>
<td><p><? echo $rows_usuarios['username']; ?></p></td>
<td><p><? echo $rows_accesorios['field2']; ?></p></td>
/*
Acá lo que hace el código es mostrar en la tabla los usuarios y el field2 de los perfiles de usuarios (en mi caso del ejemplo cada usuario puede poner la marca de botines que usa).
*/
</tr>
<? }} ?>
</table>
<? } ?>
</div>
<? mysql_close(); ?>
</body>
</html>
Temas Similares:


LinkBack URL
About LinkBacks
Responder Citando
