seleccionar varias categorías de la base de datos

2 minutos de lectura

Estoy trabajando en un sistema de blogs donde los blogs se clasifican y podemos elegir la categoría que queremos. Para esto, tengo que separar las mesas. blogs y categories. Sé cómo obtener blogs de todas las categorías y de una sola categoría, pero no sé cómo obtener blogs de varias categorías, pero no de todas.

Mi código se ve así:

 <?php
   $query = ("SELECT blogs_id, title, body, posted_by, category FROM blogs INNER JOIN categories ON categories.category_id=blogs.category_id where category='cat1' ORDER BY blogs_id desc LIMIT 10");
   $result = mysql_query($query) or die("error:".mysql_error());
    while ($row = mysql_fetch_assoc($result)) {
        $title = $row['title'];
        $body = $row['body']; 
        $posted_by = $row['posted_by'];
      ?>

Este código es para seleccionar una sola categoría y funciona bien, pero ahora quiero elegir varias categorías (pero no todas). Probé algunas opciones diferentes, pero fallé:

 <?php
$query = ("SELECT blogs_id, title, body, posted_by, category FROM blogs INNER JOIN categories ON categories.category_id=blogs.category_id where category='cat1' AND category='cat2' AND category='cat3' ORDER BY blogs_id desc LIMIT 10");

Esto no funcionó.

avatar de usuario
Robby Cornelissen

Utilizar el IN cláusula:

WHERE category IN ('cat1', 'cat2', 'cat3')

Como alternativa, puede utilizar OR:

WHERE category = 'cat1'
   OR category = 'cat2'
   OR category = 'cat3'

Probar OR en lugar de AND (en donde condición). prueba esto:

$query = ("SELECT blogs_id, title, body, posted_by, category FROM blogs INNER JOIN categories ON categories.category_id=blogs.category_id where category='cat1' OR category='cat2' OR category='cat3' ORDER BY blogs_id desc LIMIT 10");

Prueba esto

$query = ("SELECT blogs_id, title, body, posted_by, category FROM blogs INNER JOIN categories ON categories.category_id=blogs.category_id where category IN ('cat1', 'cat2', 'cat3') ORDER BY blogs_id desc LIMIT 10");

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad