Justi 23 de junio de 2008 a las 14.28
   Imprimir artículo
elWebmaster.com

Taller de PHP: MySql – Consultas más usadas


Taller online de PHP gratisBuenas, en la clase de hoy vamos a ver una forma de traer valores puntuales de la base de datos.

También veremos cómo evitar hacer cuentas o cálculos complejos y cómo aplicar “count“, los tipos de consultas “max” y “min“, “sum” y “limit“.

Así que manos a la obra y ya saben que cualquier duda que vaya surgiendo pueden dejármela en los comentarios que trataré de responderlos a medida que van llegando.

Count

El count nos va a dar el número de veces que se repite un valor en la db, es decir el número de registros almacenados que correspondan con nuestra consulta. Por ejemplo, en nuestra tabla de noticias, si queremos saber cuántas noticias hay publicadas entonces la consulta que hacemos es:

SELECT COUNT(*) FROM noticias WHERE estado = 'publicado';

Ahora que pasa si queremos agregar algún otro campo en la consulta, por ejemplo el número de noticias publicadas por cada autor:

SELECT autor, count(*) FROM noticias GROUP BY autor;

Fíjense que agregamos a la consulta GROUP BY que nos permite agrupar por el valor que queremos, por ejemplo, la consulta anterior nos traería como resultados posibles:

Justi – 3
Juan Manuel – 8
Wilkilen – 1

Max y Min

Otro tipo de consulta muy común es traer el valor máximo o mínimo de un listado de valores. Supongamos que tenemos una tabla de productos con sus respectivos precios, si queremos traer el precio máximo o mínimo lo hacemos de la siguiente manera:

SELECT MAX(precio) FROM productos;

SELECT MIN(precio) FROM productos;

Y si queremos saber, por ejemplo, cuál es el precio promedio del producto con id 15 podemos hacer:

SELECT AVG(precio) FROM productos WHERE idProducto = 15;

SUM

Por último tenemos la suma. Por ejemplo, si tenemos un carrito de compras y seleccionamos 5 productos y queremos saber cuánto es el total a pagar por el usuario con id 3 deberíamos hacer:

SELECT sum(precio) FROM carrito WHERE idUsuario = 3;

LIMIT

Algo que es muy común también es limitar la cantidad de registros que queremos traer de la base de datos, por lo general algunas tablas pueden llegar a tener miles de registros y traer a todos haría demasiado uso de servidor y demoraría demasiado para lo que realmente necesita el script, es por ello que es muy comun limitar las consultas a la cantidad de resultados que necesitamos (si es que realmente conocemos este dato).

Por ejemplo si hacemos una consulta con un count(*) porque queremos saber el total de registros de una tabla, al final le colocaremos LIMIT 1.

SELECT count(*) FROM productos LIMIT 1;

Otra forma de usar el limit es pasándole dos argumentos en lugar de uno, por ejemplo, si ponemos:

SELECT * FROM productos LIMIT 5,10;

El primer valor que ponemos es desde qué registro queremos empezar a traer (el primero es 0) y el segundo cuántos valores, por lo que la consulta anterior va a traer desde el producto con id 6 al 15.

Es muy común utilizar el limit con dos argumentos cuando se desea hacer un paginado.

Bueno, eso es todo por hoy, hasta la semana que viene!

<< CLASE ANTERIOR

CLASE SIGUIENTE >>


Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Comentarios (13)

  1. jose guerra dice:

    que pasa con el resto de las clases del taller de php

  2. Juan Manuel dice:

    ¡Hola, José!

    Todavía no están publicadas todas las clases. Cada lunes encontrarás una nueva entrega, puedes ver las que están disponibles desde el panel “Talleres” de la derecha.

    ¡Saludos!

  3. Fidel dice:

    ¡Hola ! ¿Que tal? espero muy bien.
    Tengo un problema, estoy haciendo una sitio web para una inmobiliaria ya tengo las tablas y hago consultas y lo que tengo hecho esta funcionando, es la dirección que mando en sitio web.
    El problema es que no se como insertar fotos a la tabla, lo he intentado como tipo de datos bloc
    y cuando hago la consulta me da todos los datos pero en la foto solo me salen garabatos, estoy empesando en esto y me encanta solo queria saber si me puedes esplicar o si puedes hacer una leccion de como solucionar ese problema.
    Atentamente Fidel
    Gracias por el curso que estas haciendo es muy bueno.

  4. Frank Diaz dice:

    Me gustaria saber si existe otra forma de guardar datos y que al llegar a 30 datos repetidos por dia me de un mensaje
    Gracias de ante mano…

  5. Betty dice:

    para ver si ya existe un ususario registrado con el mismo nombre
    public function ExisteUsuario ($nombre ,$apellido){
    $result = $this->get(“select * from conactos where nombre = $nombre and apellido = $apellido”);

    if(!$result){
    return null;
    }else{
    return $result;
    }

    }

  6. Betty dice:

    necesito ayuda …!!!

  7. veronica Rodriguez Acosta dice:

    hola tengo una consulta espero me ayuden porq es urgente tendo utilizando Creemos nuestra base de datos en sql—-eso ya esta creada

    con una tabla que es ciudad con sus respectivos dados

    el quiere q nosotros ingresemos datos en la tabla SERVICIOS por ejemplo

    departamento =Cajamarca provincia=Celendín distrito Celendín

    pero que esos datos ingresados pasen a php pero transformados en una imagen
    mejor dicho en flash nosotros tenemos nuestro mapa ya y al momento de que nosotros ingresemos los datos a través de sql quiere q los datos se graben en la imagen que es el mapa pero que especifique con una línea la ruta seleccionada o escrita a través de sql

  8. johanna dice:

    hola queria saber si me podias ayudar con algo. Tengo 3 tablas, una es postulantes, otra es empleos, y otra es empleos_postulados la cual guarda el cod de postulante y el cod de empleo al que se postula el postulante.
    Yo quiero ver en mi pantalla el nombre del empleo y abajo toooodos los que se postularon a ese empleo…. que haya un espacio y aparezca otro empleo y tooodos lso que se postularon a ese… me explico???? Espero tu respuesta ya que necesito much poder resolver esto, muchas gracias!!!!!

  9. Araceli dice:

    Una pregunta como puedo guardar imagenes en php para despues poder cambiar la imagen.
    Me dijieron que existe un codigo en php, pero no lo he encontrado es pero y medi a entender.

  10. Guada dice:

    Para qué se pone LIMIT 1 en count?? No se explica.

    Por ej., A ver… ¿qué pasa si en:

    SELECT count(*) FROM productos LIMIT 1;

    no indicamos “LIMIT 1”?

  11. Rebeca dice:

    Hola buenas tardes tengo una pregunta para el apartado de editar noticia no me hace en lo obsoluto nada.
    Tengo otra duda como puedo definir el acceso a bd por medio del nombre de una imagen, es decir para almacenar imagenes para buscarla o poder jalarlas de la red.

    Quedo de usted.

  12. Heliana del pilar sandoval dice:

    Hola necesito saber como realizar un sistema de comentarios tipo blog para mi pagina web usando php uno así como este donde se pueda comentar sin estar registrados sin pasword ni nada de eso plis!!! necesito eso URGENTE!

  13. Luciano dice:

    Muy Buen Tutorial, Gracias! Como se puede combinar un count(*) con un match()?

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Acceder