alfonso
Posts: 121
|
Posted: 08/15/2008, 4:33 AM |
|
Hola,
Tengo una duda que no se si se podrá resolver, en una página tengo un grid donde muestro las 2 ultimas noticias de la base de datos (sacadas de la tabla noticias), y luego aparte tengo otra tabla llamada comentarios donde tengo los comentarios de las noticias (con un id_not que lo relaciona con cada noticia), el caso es que yo quiero que me cuente cuantos comentarios tiene cada noticia, estoy probando en la consulta sql en otro grid con esto
"SELECT COUNT(comentarios.id) AS 'numcom'
FROM comentarios INNER JOIN noticias ON
noticias.id = comentarios.not_id
WHERE comentarios.not_id=AQUI TIENE QUE IR LA ID DE LA NOTICIA Q QUIERO"
Pero claro, no se como recoger el parametro id(de la noticia) para meterlo en la otra consulta y que así me cuente los comentarios que tiene cada noticia, ¿hay alguna manera de hacerlo o de recoger ese parametro en cada iteración?
muchas gracias.
|
|
|
Giovanni
|
Posted: 08/15/2008, 5:14 AM |
|
Alfonso,
Donde está el id de la noticia, es un parámetro que tienes en la URL?
Si es un parámetro que pasas a tu página lo puedes obtener así:
$idnoticia = CCGetParam('idnoticia');
donde idnoticia = al nombre del parámetro que estás pasando
Espero que esto te sirva.
Saludos cordiales
|
|
|
alfonso
Posts: 121
|
Posted: 08/15/2008, 11:00 AM |
|
Hola giovanni gracias por contestar,
vamos a ver el tema es que ese parametro no se lo paso por url, porque simplemente imprime las 2 ultimas noticias, es decir, hago una consulta sql para imprimir las noticias, pero luego quiero hacer otra consulta que es la que no se como hacer para imprimir el numero de comentarios de cada una de esas 2 noticias... no se si me explico
|
|
|
Giovanni
|
Posted: 08/15/2008, 1:26 PM |
|
Alfonso,
De acuerdo a lo que entiendo que deseas lograr, te detallo como lo haría yo:
$DB = new clsDB();
$DB2 = new clsDB();
$SQL = "SELECT id_noticia ... FROM ..."
$DB->query($SQL);
Como estas obteniendo 2 registros puedes usar un while
while ($DB->next_record())
{
$id_noticia = $DB->f("id_noticia");
// Aca ya tienes el id de la noticia para poder hacer otro SELECT en los comentarios
$SQL2 = "SELECT id_commentario FROM comentarios WHERE id_noticia = '".$id_noticia."'";
$DB2->query($SQL2);
// Como deben ser varios comentarios usas otro while para obtener todos los registros y los imprimes
while ($DB2->next_record())
{
.....
}
}
Espero que esto te se de utilidad.
Saludos
|
|
|
alfonso
Posts: 121
|
Posted: 08/16/2008, 9:49 AM |
|
Y donde tengo que colocar el código??, ¿dónde debo asignar la variable de la id? gracias.
|
|
|
alfonso
Posts: 121
|
Posted: 08/21/2008, 3:31 AM |
|
Bueno muchas gracias, ya lo he solucionado, dejo la solución.
Este código lo añadí a Before Row en el grid donde recojo las noticias.
// RECOGER NUMERO DE COMENTARIOS
$var=$noticias->DataSource->not_id->GetValue();
$DB= new clsDBcon_todasoria();
$SQL="SELECT comentarios.com_id AS num FROM noticias LEFT JOIN comentarios ON comentarios.com_not_id=noticias.not_id WHERE comentarios.com_not_id = " .$var;
$DB->query($SQL);
$var=$DB->num_rows("num");
//Lo guardamos en la etiqueta num_coments
$noticias->num_coments->SetValue($var);
|
|
|
|