Como ya te mencionaron se hace con Tablas relacionadas.
Como es esto?
Es sencillo, digamos que tienes tu tabla "Noticias" con esta estructura:
Código :
| Noticias |
|----------|
| ID |
| Titulo |
| Noticia |
| Categoria|
| ... |
|----------|
Si bien, podemos meterle más campos y demás, pero por ahora con eso es suficientemente ilustrativo.
Tu necesitas que otra tabla te diga que
Categoría es, o simplemente que puedas seleccionar una categoría y te muestre solo las noticias de la que acabas de seleccionar.
Usaremos una tabla como esta:
Código :
| Categoria |
|-----------|
| Cat_ID |
| Categoria |
| ... |
|-----------|
Si observas, ahora tenemos 2 Tablas, pero necesitamos enlazarlas, para eso cambiaremos un poco nuestra Tabla "Noticias" y quedaría algo asÍ:
Código :
| Noticias |
|----------|
| ID |
| Titulo | | Categoria |
| Noticia | |-----------|
| Cat_ID | ---------> | Cat_ID |
| ... | | Categoria |
|----------| | ... |
|-----------|
Como se puede ver, vas a apuntar a un ID, o identificador de la tabla Categorias, ahí vas a guardar su ID y su Categoria, y en la tabla "Noticias" vas a almacenar unicamente los ID de las categorías.
Cuando necesites usar solamente cierta categoría sería algo como:
Código :
select * from noticias where cat_id = $categoria_id
Espero te quede más claro.