Foros del Web » Programando para Internet » PHP »

problema con mysql_num_rows

Estas en el tema de problema con mysql_num_rows en el foro de PHP en Foros del Web. Estoy haciendo un sistema para que los usuarios puedan publicar comentarios en las noticias del sitio, tengo dos tablas en la base de datos una ...
  #1 (permalink)  
Antiguo 23/05/2009, 11:22
 
Fecha de Ingreso: mayo-2009
Mensajes: 52
Antigüedad: 14 años, 11 meses
Puntos: 0
Pregunta problema con mysql_num_rows

Estoy haciendo un sistema para que los usuarios puedan publicar comentarios en las noticias del sitio, tengo dos tablas en la base de datos una de usuarios y una de comentarios, y un administrador de los usuarios donde puedo ver su mail nombre etc etc, y uno de comentarios donde los autorizo para que se publiquen o los elimino sin publicarlos en caso de que no sean apropiados.

muy bien en la pagina de noticias donde dependiendo del id de la noticia se publican los comentarios de esa noticia, puse una manera de ver cuantos comentarios hay visibles y cuantos estan esperando a ser autorizados de esta manera.

Código PHP:
<?
    
// publica cuantos comentarios hay validados
    
$request mysql_query("SELECT estado FROM comentarios WHERE estado = 'apto' ORDER BY idComentario ASC") or die(mysql_error()); 
    
$context mysql_num_rows($request) or die(mysql_error()); 
    echo 
$context;
    
?> 
    
    <?
    
// publica cuantos comentarios hay sin validar
    
$request2 mysql_query("SELECT estado FROM comentarios WHERE estado = 'sin validar' ORDER BY idComentario ASC") or die(mysql_error()); 
    
$context2 mysql_num_rows($request2) or die(mysql_error()); 
    echo 
$context2;
    
?>
todo esto funciona de maravilla, ahora bien lo que me gustaria es en el administrador de usuarios que me mostrara cuantos comentarios ha publicado tal usuario independientemente del numero de noticias y la base de datos me muestra una fila por cada comentario publicado por cada usuario el problema esque si uso la instruccion mysql_num_rows como en los ejemplos anteriores me muestra siempre el numero total de comentariso de todos los usuarios, en la tabla de comentarios tengo la el valor idusuario la pregunta es como puedo sacar y contar el valor del usuario numero 5 por ejemplo, o sea cuantas veces aparece el 5 en las filas de idusuario en lugar de todas las filas.

este es el codigo

Código PHP:
<?
    
// publica cuantos comentarios hay por usuario, valido solo para el administrador de usuarios
    
$request3 mysql_query("SELECT idUsuario FROM comentarios ORDER BY idUsuario ASC") or die(mysql_error()); 
    
$context3 mysql_fetch_array($request3) or die(mysql_error()); 
    
?>
cualquier consejo es bienvenido y disculpen si es alfo sencillo aun estoy aprendiendo :)
  #2 (permalink)  
Antiguo 23/05/2009, 11:33
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: problema con mysql_num_rows

Usando una consulta que has escrito, modificándola quedaría así...

Código PHP:
$request2 mysql_query("SELECT COUNT(idUsuario) AS countId FROM comentarios WHERE idUsuario='$idusuario' ") or die(mysql_error()); 
    
$context2 mysql_fetch_assoc($request2); 
    echo 
$context2['countId']; 
Algo similiar uso en postgresql, no sé como será idéntico en mysql D=

Nos vemos D=.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #3 (permalink)  
Antiguo 23/05/2009, 11:52
 
Fecha de Ingreso: mayo-2009
Mensajes: 52
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: problema con mysql_num_rows

estoy mas o menos en la misma situacion porque si lo dejo

Código PHP:
$request2 mysql_query("SELECT COUNT(idUsuario) AS countId FROM comentarios WHERE idUsuario='$idusuario' ") or die(mysql_error());    $context2 mysql_fetch_assoc($request2); 
asi me marca en cada usuario 0 comentarios

y si le pongo asi:
Código PHP:
$request2 mysql_query("SELECT COUNT(idUsuario) AS countId FROM comentarios") or die(mysql_error());    $context2 mysql_fetch_assoc($request2); 
me marca cada usuario con el numero total de comentarios hechos por todos los usuarios
  #4 (permalink)  
Antiguo 25/05/2009, 08:09
 
Fecha de Ingreso: mayo-2009
Mensajes: 52
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: problema con mysql_num_rows

alguien tiene alguna idea que pueda ayudarme ???
  #5 (permalink)  
Antiguo 25/05/2009, 11:57
 
Fecha de Ingreso: mayo-2009
Mensajes: 52
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: problema con mysql_num_rows

sigo sin poder resolver este problema y es bastante frustrante, es solo una consulta a la base de datos, tabla comentarios busca en los comentarios y salen todos en filas hacia abajo y ahi se especifica con dos valores a que noticia pertenecen bajo un id y otro id que dice que usuario la publico solo necesito sacar las filas de un solo idusuario por ejemplo el 5 y que me de el resultado de cuantas veces aparece el numero 5 bajo la columna idusuario en esa tabla

es tan complicado en verdad???
porque tengo ya 4 dias en esto y no lo logro
  #6 (permalink)  
Antiguo 25/05/2009, 12:10
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: problema con mysql_num_rows

trata mejor el query de esta forma

SELECT COUNT(*) AS countId
FROM comentarios
WHERE idUsuario='$idusuario'
GROUP BY idUsuario
  #7 (permalink)  
Antiguo 25/05/2009, 12:51
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: problema con mysql_num_rows

si haces tu consulta asi:

$result = mysql_query("SELECT * FROM comentarios WHERE idUsuario='$idusuario' ") or die(mysql_error());
$num_com = mysql_num_rows($result);
echo $num_com;
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:55.