Resultados 1 al 10 de 10

Acceso a datos de Tablas, (query_first, query_read, query_write)

Esta es una discusión en el tema Acceso a datos de Tablas, (query_first, query_read, query_write) dentro del foro Tutoriales de programación, parte de la categoría Programación avanzada y trabajos Freelance; Cuando estemos haciendo un archivo PHP o un Plugin, que es netamente codigo PHP, vBulletin nos ofrece 3 funciones para accesar a los datos, estos son: Código PHP: $vbulletin -> db -> query_first ( "SELECT" ); $vbulletin -> db -> query_read ( "SELECT" ); $vbulletin -> db -> query_write ( ...

  1. #1
    Administrador Avatar de Jhonnyf
    Fecha de ingreso
    13/jun/2009
    Ubicación
    In my mind
    Mensajes
    1.363
    Gracias
    60
    Agradecido 1.104 veces en 565 mensajes
    Entradas de Blog
    1
    Poder de Credibilidad
    10

    Predeterminado Acceso a datos de Tablas, (query_first, query_read, query_write)

    Cuando estemos haciendo un archivo PHP o un Plugin, que es netamente codigo PHP, vBulletin nos ofrece 3 funciones para accesar a los datos, estos son:
    Código PHP:
    $vbulletin->db->query_first("SELECT");
    $vbulletin->db->query_read("SELECT");
    $vbulletin->db->query_write("INSERT o UPDATE"); 
    Diferencias:

    query_first nos devuelve el primer resultado de la consulta en forma de un arreglo, es util si usas consultas que devuelven 1 sola fila como por ejemplo un conteo de registro o algun registro en especial
    Ejemplo:
    Código PHP:
    $usuario $vbulletin->db->query_first("SELECT *
                        FROM " 
    TABLE_PREFIX "user
                        WHERE userid=1"
    );
    echo 
    $usuario['userid'];
    echo 
    $usuario['username'];
    echo 
    $usuario['email'];
    //Etc de los demas campos 


    query_read
    nos devuelve una coleccion de registros al que debemos recorrer para obtener cada registro
    Ejemplo:
    Código PHP:
    $usuario $vbulletin->db->query_read("SELECT * FROM " TABLE_PREFIX "user"); //todos los registros
    if ($vbulletin->db->num_rows($usuario) > 0//si hay 1 o más registros
    {
        
    $tabla '<table border="0">';
        
    $tabla .= '<tr><td class="tcat">Userid</td><td class="tcat">Nombre</td><td class="tcat">Correo</td></tr>';
        while (
    $reg_usuario $vbulletin->db->fetch_array($usuario)) //lleno $reg_usuario por cada usuario en los registros devueltos
        
    {
            
    $tabla .= '<tr><td class="alt1">'.$reg_usuario['userid'].'</td><td class="alt2">'.$reg_usuario['username'].'</td><td class="alt1">'.$reg_usuario['email'].'</td></tr>';
        }
        
    $tabla .= '</table>';
    }
    echo 
    $tabla//muestra todo una tabla con todos los usuarios del foro 


    query_write no hay mucho que decir de esta funcion... basicamente se usa para hacer INSERTS o UPDATE de campos en tablas
    Código PHP:
    $vbulletin->db->query_write("UPDATE " TABLE_PREFIX "user SET
                    username = 'Nuevo Nick'
                    WHERE userid=1
                    "
    );
    //Actualizar un registro en la Base de datos 
    PD: TABLE_PREFIX es una costante definida en vBulletin que contiene el prefijo que has configurado para tu foro, es recomendable usarlo siempre ya que los nombres de tablas pueden varias de foro en foro (websites)



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

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

    soylms (08/01/2010), ttbbs (01/03/2010)

  3. #2
    Administrador Avatar de Jhonnyf
    Fecha de ingreso
    13/jun/2009
    Ubicación
    In my mind
    Mensajes
    1.363
    Gracias
    60
    Agradecido 1.104 veces en 565 mensajes
    Entradas de Blog
    1
    Poder de Credibilidad
    10

    Predeterminado Respuesta: Acceso a datos de Tablas, (query_first,query_read,query

    *Reservado*

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

  4. #3
    Usuario
    Fecha de ingreso
    23/nov/2009
    Mensajes
    2
    Gracias
    0
    Agradecido 1 vez en 1 mensaje
    Poder de Credibilidad
    0

    Predeterminado Respuesta: Acceso a datos de Tablas, (query_first, query_read, que

    Interesante contenido, lo leeré con detenimiento en casa (estoy en un cyber) esto es para vb4?


  5. El siguiente usuario ha agradecido a Moyses por este útil mensaje:

    kuleshs (22/07/2010)

  6. #4
    Administrador Avatar de Jhonnyf
    Fecha de ingreso
    13/jun/2009
    Ubicación
    In my mind
    Mensajes
    1.363
    Gracias
    60
    Agradecido 1.104 veces en 565 mensajes
    Entradas de Blog
    1
    Poder de Credibilidad
    10

    Predeterminado Respuesta: Acceso a datos de Tablas, (query_first, query_read, que

    es codigo PHP, funciona en cualquier version de vBulletin

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

  7. El siguiente usuario ha agradecido a Jhonnyf por este útil mensaje:

    kuleshs (21/07/2010)

  8. #5
    Usuario
    Fecha de ingreso
    01/mar/2010
    Mensajes
    25
    Gracias
    7
    Agradecido 5 veces en 4 mensajes
    Poder de Credibilidad
    0

    Question Respuesta: Acceso a datos de Tablas, (query_first, query_read, que

    Hola ... no soy experto en php asi que no tengo mucha idea pero me gustaria usando tu codigo hacer que me cree una lista de usuarios VIP con la fecha de VIP que la he creado en campos de perfil y es field15 pero no se como arreglarmelas para que me lea esa tabla y me presente los datos.

    Esto es lo que tengo , si puedes ayudarme.

    Código PHP:
    // Presenta Usuarios VIP
    $usuario $vbulletin->db->query_read("SELECT * FROM " TABLE_PREFIX "user WHERE usergroupid = 8"); //todos los registros   usergroupid = 8 VIP  (9 = VIP+)
    $fechaVip $vbulletin->db->query_read("SELECT * FROM " TABLE_PREFIX "userfield"); //todos los registros de campos perfil personales
    if ($vbulletin->db->num_rows($usuario) > 0//si hay 1 o más registros
    {
       
    $tabla '<table border="1">';
       
    $tabla .= '<tr><td class="tcat">Userid</td><td class="tcat">Nombre</td><td class="tcat">Correo</td><td class="tcat">Fecha VIP</td></tr>';
     
       while (
    $reg_usuario $vbulletin->db->fetch_array($usuario))//lleno $reg_usuario por cada usuario en los registros devueltos
       
       //while($reg_fechaVip = $vbulletin->db->fetch_array($fechaVip)) //lleno $reg_fechaVip por cada usuario en los registros devueltos
        
    {
     
             
    $tabla .= '<tr><td class="alt1">'.$reg_usuario['userid'].'</td><td class="alt2">'.$reg_usuario['username'].'</td><td class="alt1">'.$reg_usuario['email'].'</td><td class="alt2">'.$reg_fechaVIP['field15'].'</td></tr>';
     
     }
        
    $tabla .= '</table>';
    }
    echo 
    $tabla//muestra todo una tabla con todos los usuarios del foro 
    El segundo while que esta comentado no se que hacer con el

    Si deseas ayudarme te lo agradezco.


  9. #6
    Administrador Avatar de Jhonnyf
    Fecha de ingreso
    13/jun/2009
    Ubicación
    In my mind
    Mensajes
    1.363
    Gracias
    60
    Agradecido 1.104 veces en 565 mensajes
    Entradas de Blog
    1
    Poder de Credibilidad
    10

    Predeterminado Respuesta: Acceso a datos de Tablas, (query_first, query_read, que

    tienes que hacer 1 solo select para unir ambas tablas usando un LEFT JOIN y luego recorrer toda la tabla y comparando si pertenece o no a ese grupo ya que haciendo lo que haces solo sirve si su grupo primario es VIP, que tambien es valido si asi lo manejas

    la consulta seria asi (suponiendo que VIP es el grupo Primario):
    Código:
    "SELECT * FROM " . TABLE_PREFIX . "user as u LEFT JOIN " . TABLE_PREFIX . "userfield as uf ON u.userid=uf.userid WHERE u.usergroupid = 8"


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

  10. El siguiente usuario ha agradecido a Jhonnyf por este útil mensaje:

    ttbbs (01/03/2010)

  11. #7
    Usuario
    Fecha de ingreso
    01/mar/2010
    Mensajes
    25
    Gracias
    7
    Agradecido 5 veces en 4 mensajes
    Poder de Credibilidad
    0

    Predeterminado Respuesta: Acceso a datos de Tablas, (query_first, query_read, que

    Muchas gracias ha funcionado a la primera, jejeje

    Por cierto decirte como staff que al recibir el mail de aviso de respuesta este me manda al foro no al tema..


  12. Los siguientes 2 usuarios han agradecido a ttbbs por este útil mensaje:

    Jhonnyf (01/03/2010), kuleshs (21/07/2010)

  13. #8
    Usuario
    Fecha de ingreso
    01/mar/2010
    Mensajes
    25
    Gracias
    7
    Agradecido 5 veces en 4 mensajes
    Poder de Credibilidad
    0

    Predeterminado Respuesta: Acceso a datos de Tablas, (query_first, query_read, que

    Perdona , ya un ultimo favor para que la lista la ordene por la fecha como seria

    Gracias


  14. #9
    Administrador Avatar de Jhonnyf
    Fecha de ingreso
    13/jun/2009
    Ubicación
    In my mind
    Mensajes
    1.363
    Gracias
    60
    Agradecido 1.104 veces en 565 mensajes
    Entradas de Blog
    1
    Poder de Credibilidad
    10

    Predeterminado Respuesta: Acceso a datos de Tablas, (query_first, query_read, que

    Código:
    "SELECT * FROM " . TABLE_PREFIX . "user as u LEFT JOIN " . TABLE_PREFIX . "userfield as uf ON u.userid=uf.userid WHERE u.usergroupid = 8 ORDER BY TUCAMPO DESC"
    veré eso del correo, gracias por avisar

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

  15. El siguiente usuario ha agradecido a Jhonnyf por este útil mensaje:

    ttbbs (02/03/2010)

  16. #10
    Usuario
    Fecha de ingreso
    01/mar/2010
    Mensajes
    25
    Gracias
    7
    Agradecido 5 veces en 4 mensajes
    Poder de Credibilidad
    0

    Predeterminado Respuesta: Acceso a datos de Tablas, (query_first, query_read, que

    Muchisimas gracias, vero que la ordenacion no la realiza bien pero por el tema del formato de la fecha por ejemplo 01/02/2009 asi no lo ordena correctamente, no se si por medio de codigo se podria correjir, y si no seria poner la fecha en formato americano 2009/02/01 no crees.

    Edito: ponerlo en formato (y,m,d) se ve muy feo aqui en España, si fuese posible hacerlo por codigo seria maravilloso.



    El tema del correo es que cuando recibes el aviso de notificacion te manda al foro en general asi que te tienes que leer el mail y ver donde esta localizado.

    Te pongo una copia para que vea como se recibe.

    Hola ttbbs,

    Jhonnyf Acaba de responder a un tema al que estás suscrito, titulado - Acceso a datos de Tablas, (query_first, query_read, query_write) - en el foro Tutoriales de programación de vBSoporte.

    Este tema está localizado en:
    http://www.vbsoporte.com/foros/

    Aquí está el mensaje que acaba de ser creado:
    ***************

    Código:
    ---------
    "SELECT * FROM " . TABLE_PREFIX . "user as u LEFT JOIN " . TABLE_PREFIX . "userfield as uf ON u.userid=uf.userid WHERE u.usergroupid = 8 ORDER BY TUCAMPO DESC"
    ---------

    ***************


    También pueden haber otras respuestas, pero no recibirás ninguna notificación hasta que no visites el foro de nuevo.

    Saludos cordiales,
    vBSoporte


    Última edición por ttbbs; 02/03/2010 a las 02:47

Etiquetas de este tema

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