Ayuda con SELECT
Hola.
Tengo 2 tablas:
categorias
---------------------
| id | nombre |
---------------------
y contenido
---------------------------
| id | titulo | catid |
---------------------------
Lo que quisiera hacer es que mostrara el contenido segun la categoria, ejm:
Categoria 1
titulo del contenido 1
titulo del contenido 2
Categoria 2
titulo del contenido 1
titulo del contenido 2
titulo del contenido 3
titulo del contenido 4.......
Entonces hice esto:
$buscar=mysql_query("SELECT cat.id, cat.name, con.id, con.title, con.catid FROM mos_categories AS cat, mos_content AS con WHERE con.catid=cat.id AND con.state='-1' AND LEFT(created,10) = '$fechaMysql'",$link);
while($row = mysql_fetch_array($buscar)) {
$tituloCat =$row['name'];
titulo =$row['title'];
echo $tituloCat;
echo $titulo;
}
Como se ve, cuando imprimo sale asi:
Categoria 1
titulo del contenido 1
Categoria 1
titulo del contenido 2
Categoria 1
titulo del contenido 3
Categoria 2
titulo del contenido 1
Categoria 2
titulo del contenido 2......
Como podrÃa hacerlo segun el formato que quiero?
Gracias y Salu2
Tengo 2 tablas:
categorias
---------------------
| id | nombre |
---------------------
y contenido
---------------------------
| id | titulo | catid |
---------------------------
Lo que quisiera hacer es que mostrara el contenido segun la categoria, ejm:
Categoria 1
titulo del contenido 1
titulo del contenido 2
Categoria 2
titulo del contenido 1
titulo del contenido 2
titulo del contenido 3
titulo del contenido 4.......
Entonces hice esto:
$buscar=mysql_query("SELECT cat.id, cat.name, con.id, con.title, con.catid FROM mos_categories AS cat, mos_content AS con WHERE con.catid=cat.id AND con.state='-1' AND LEFT(created,10) = '$fechaMysql'",$link);
while($row = mysql_fetch_array($buscar)) {
$tituloCat =$row['name'];
titulo =$row['title'];
echo $tituloCat;
echo $titulo;
}
Como se ve, cuando imprimo sale asi:
Categoria 1
titulo del contenido 1
Categoria 1
titulo del contenido 2
Categoria 1
titulo del contenido 3
Categoria 2
titulo del contenido 1
Categoria 2
titulo del contenido 2......
Como podrÃa hacerlo segun el formato que quiero?
Gracias y Salu2
yo creo que te complicaste en extremo la vida con eso que mandas, si sólo quieres una categoria simplemente la eliges mediante sql,
"SELECT * FROM `tabla` WHERE `categoria`='$la_que_busco'"
un bucle while para que muestre el contendo de la categorÃa,
-------
Otra opción podrÃa ser dos while el primero obtiene la categorÃa sobre la que se requiere y el otro anidado solicitando el resultado de esa categorÃa solamente. si tienes una sóla cantidad de categorÃas y éstas no son incrementadas constantemente podrÃa manejarse con punteros estilo C , algo asÃ
$a=1;
$CategoriasNum=20; // <-- CategorÃas
while($a>=$CategoriasNum){
$categoria="categoria".$a;
$id=$a;
$Query1="SELECT * FROM `tabla` WHERE `categoria`='$$categoria' AND `id`='$id'";
$Q=mysql_db_query("data_base",$Query1);
while($i=mysql_fetch_array($Q)){
echo $i['mi_dato'];
}
$a++;
}
En este caso igual podrÃa servir manejarse por punteros como en el ejemplo, no creo que sea presisamente lo que buscas pero ojalá te sirva , un poco rudimentaria la idea de hacerlo ejecutando tantos consultas a la base de datos xD pero fue lo único que se me ocurrió !
Saludos !
"SELECT * FROM `tabla` WHERE `categoria`='$la_que_busco'"
un bucle while para que muestre el contendo de la categorÃa,
-------
Otra opción podrÃa ser dos while el primero obtiene la categorÃa sobre la que se requiere y el otro anidado solicitando el resultado de esa categorÃa solamente. si tienes una sóla cantidad de categorÃas y éstas no son incrementadas constantemente podrÃa manejarse con punteros estilo C , algo asÃ
$a=1;
$CategoriasNum=20; // <-- CategorÃas
while($a>=$CategoriasNum){
$categoria="categoria".$a;
$id=$a;
$Query1="SELECT * FROM `tabla` WHERE `categoria`='$$categoria' AND `id`='$id'";
$Q=mysql_db_query("data_base",$Query1);
while($i=mysql_fetch_array($Q)){
echo $i['mi_dato'];
}
$a++;
}
En este caso igual podrÃa servir manejarse por punteros como en el ejemplo, no creo que sea presisamente lo que buscas pero ojalá te sirva , un poco rudimentaria la idea de hacerlo ejecutando tantos consultas a la base de datos xD pero fue lo único que se me ocurrió !
Saludos !
La pagina donde se seleciona la categoria puedes hacerla con un while:
$query = mysql_query("SELECT * FROM categorias")or die('Error');
while($row = mysql_fetch_array($query)) {
echo '<a href="segunda_pagina.php?categoria='.$row['id'].'">'.$row['nombre'].'</a>';
}
Y en la pagina que muestra el contenido:
$query = mysql_query("SELECT * FROM contenido WHERE catid='$_GET[categoria]'");
while($row = mysql_fetch_array($query)) {
echo $row['titulo'];
}
Espero que te sirva!
Salu2
Rainbow2
http://www.eurion.net
$query = mysql_query("SELECT * FROM categorias")or die('Error');
while($row = mysql_fetch_array($query)) {
echo '<a href="segunda_pagina.php?categoria='.$row['id'].'">'.$row['nombre'].'</a>';
}
Y en la pagina que muestra el contenido:
$query = mysql_query("SELECT * FROM contenido WHERE catid='$_GET[categoria]'");
while($row = mysql_fetch_array($query)) {
echo $row['titulo'];
}
Espero que te sirva!
Salu2
Rainbow2
http://www.eurion.net
