Resultados 1 al 6 de 6

Problema con php que lista datos desde base Vbulletin!!

Esta es una discusión en el tema Problema con php que lista datos desde base Vbulletin!! dentro del foro Soporte de programación, parte de la categoría Programación avanzada y trabajos Freelance; 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 ...

  1. #1
    Usuario
    Fecha de ingreso
    19/ene/2010
    Mensajes
    12
    Gracias
    4
    Agradecido 1 vez en 1 mensaje
    Poder de Credibilidad
    0

    Predeterminado Problema con php que lista datos desde base Vbulletin!!

    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:

  2. #2
    Usuario
    Fecha de ingreso
    19/ene/2010
    Mensajes
    12
    Gracias
    4
    Agradecido 1 vez en 1 mensaje
    Poder de Credibilidad
    0

    Predeterminado Respuesta: Problema con php que lista datos desde base Vbulletin!!

    Si no se entendio bien lo que quiero hacer con ese script....

    Listar los grupos de usuarios que yo elijo dentro del archivo php en forma de titulo.
    Y abajo del titulo, todos los usuarios que pertenecen a ese grupo con los accesorios que ellos mismos agregaron en su perfil (como campo personalizado, en mi foro, field2).

    Queda así la salida por dar otro ejemplo:

    Los locos del tablon (Nombre de Grupo de Usuario)
    Guido - Ametralladora Uzi
    Juan Carlos - Garrote con clavo en la punta
    Patricio - Lanzallamas


  3. #3
    Administrador Avatar de Jhonnyf
    Fecha de ingreso
    13/jun/2009
    Ubicación
    In my mind
    Mensajes
    1.329
    Gracias
    59
    Agradecido 1.043 veces en 540 mensajes
    Entradas de Blog
    1
    Poder de Credibilidad
    10

    Predeterminado Respuesta: Problema con php que lista datos desde base Vbulletin!!

    en la tabla user hay 2 campos, el usergroupid y membergroupids, el primero guarda el Grupo Primario y el segundo los adicionales, si quieres que te liste los usuarios con más de un Grupo, tienes que combinar los 2 campos para tener un Juego de Grupos de usuarios y segun eso trabajar..

    como dato extra, te comento que en SQL en vez de hacer esto:
    Código PHP:
    $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'"
    Puedes hacer esto
    Código PHP:
    $sql_grupos="select * from mst_usergroup WHERE usergroupid in (10,11,15,16,17,20,24,25,26)"
    No entiendo bien que se intenta hacer con ese PHP, pero ahi te doy esa pista

    [GRACIAS] -> es Boton magico que hace que siempre recibas soporte, USALO!!!

  4. Los siguientes 2 usuarios han agradecido a Jhonnyf por este útil mensaje:

    Chilesat (16/06/2010), zartrix (12/06/2010)

  5. #4
    Usuario
    Fecha de ingreso
    19/ene/2010
    Mensajes
    12
    Gracias
    4
    Agradecido 1 vez en 1 mensaje
    Poder de Credibilidad
    0

    Thumbs up Respuesta: Problema con php que lista datos desde base Vbulletin!!

    Jhonnyf:

    Mil gracias por el tip de las consultas más ordenadas!!! A pesar de que recien empecé a ver todo esto del php algo de idea tengo (muy básica) pero estoy aprendiendo. Ahora me voy a poner a rastrear como combinar los dos campos para sacar la información de los mismos.
    Desde ya muchas gracias por indicarme el rumbo a seguir. Ya con esto tengo para unas cuantas horas de lectura y ponerme a ver si lo logro hacer.
    Graciassss!!!


  6. #5
    Usuario
    Fecha de ingreso
    19/ene/2010
    Mensajes
    12
    Gracias
    4
    Agradecido 1 vez en 1 mensaje
    Poder de Credibilidad
    0

    Predeterminado Respuesta: Problema con php que lista datos desde base Vbulletin!!

    Logré hacerlo andar muchachos!!! quedó más o menos así:

    Código PHP:
    $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 in (10,11,15,16,17,20,24,25,26) ORDER by title ASC";
        
    $result_grupos=mysql_query($sql_grupos);
        while (
    $rows_grupos mysql_fetch_array($result_grupos)){
        
    $id_grupo=$rows_grupos['usergroupid'];
    ?>
    <h1><? echo $rows_grupos['title']; ?></h1>
    <ol>
        <?
        $sql_usuarios
    ="select * from mst_user WHERE usergroupid='$id_grupo' OR membergroupids LIKE '%$id_grupo%'ORDER by username ASC";
        
    $result_usuarios=mysql_query($sql_usuarios);
        while (
    $rows_usuarios mysql_fetch_array($result_usuarios)){

        
    $id_usuario=$rows_usuarios['userid'];

                
    $sql_accesorio="select * from mst_userfield WHERE userid='$id_usuario'";
                
    $result_accesorio=mysql_query($sql_accesorio);
                while (
    $rows_accesorio mysql_fetch_array($result_accesorio)){ 
        
    ?>

            <li><p><strong>Nombre:</strong> <? echo $rows_usuarios['username']; ?> <? if($rows_accesorio['field2']!=''){ ?> | <strong>accesorio:</strong> <? echo $rows_accesorio['field2']; ?><? ?></p></li>
        <? }} ?>  
    </ol>
    <? ?>
    </div>
    <? mysql_close(); ?>
    </body>
    </html>
    Que hace este php???

    Te lista los usuarios separados por GRUPOS DE USUARIOS y te lista los accesorios que utilizan. Es un php externo, lo unico que tienen que hacer es completar con los datos del host de ustedes donde tienen el vbulletin y cambiar los fields y variables que quieran que liste. No se si me explico bien. Entonces cada usuario del foro que cambie los accesorios que utiliza apareceran automaticamente en este PHP.

    La salida sería algo así como:

    Los locos del tablon (Nombre de Grupo de Usuario)
    1.- Nombre: Guido - Accesorio: Ametralladora Uzi
    2.- Nombre: Juan Carlos - Accesorio: Garrote con clavo en la punta
    3.- Nombre: Patricio - Accesorio: Lanzallamas

    Los asesinos de Canterville
    1.- Nombre:Francisco Peñalosa - Accesorio: Estrellitas Ninja.
    2.- Nombre: Juanjo Fat - Accesorio: Katana ultraafilada.


  7. #6
    Usuario
    Fecha de ingreso
    19/ene/2010
    Mensajes
    12
    Gracias
    4
    Agradecido 1 vez en 1 mensaje
    Poder de Credibilidad
    0

    Predeterminado Respuesta: Problema con php que lista datos desde base Vbulletin!!

    Les puede servir para extraer cualquier dato de las bases de vbulletin y listar lo que se les ocurra también.

    Si alguien se le ocurre alguna idea bienvenida sea.

    Saludos!


Etiquetas de este tema

Foro | Chat y Juegos | Hello Kitty | Programacion | Foro Cristiano | XAT | Chat Foro | Perú | SummArg