Foros del Web » Programando para Internet » PHP »

Contar Registros que cumplan cierta condicion

Estas en el tema de Contar Registros que cumplan cierta condicion en el foro de PHP en Foros del Web. Hola que tal, Espero que me puedan ayudar. Lo que quiero hacer es contar cuantos registros cumplen una condicion en una tabla y despues mostralo. ...
  #1 (permalink)  
Antiguo 09/06/2009, 17:16
 
Fecha de Ingreso: junio-2009
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 0
Pregunta Contar Registros que cumplan cierta condicion

Hola que tal, Espero que me puedan ayudar.
Lo que quiero hacer es contar cuantos registros cumplen una condicion en una tabla y despues mostralo.
Lo hago de la siguiente forma, pero no sé por que, al imprimirlo me muestra un "1" despues de la variable.

Código PHP:
<?php 
$_GET
['noempleado'];
$cuentahost=0;
$link mysql_connect("localhost""basededatos"""); 
mysql_select_db("basededatos"$link); 
$result mysql_query("SELECT noempleado FROM host WHERE noempleado=$noempleado"$link);

while (
$row = @mysql_fetch_array($result)) {
$cuentahost=cuentahost+1;
}
if(
$cuentahost!=0){
echo 
"[ ",$cuentahost," ]";}
?>
osea, el script funciona pero me agrega un "1", no sé por que... Ejemplo: [8]1
Saben alguna otra forma de hacerlo? o por que muestra el "1" ?
THANKS

Última edición por Joohnny; 09/06/2009 a las 17:17 Razón: Agregar codigo
  #2 (permalink)  
Antiguo 09/06/2009, 17:27
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Contar Registros que cumplan cierta condicion

por que le falta el signo de moneda a la variable

while ($row = @mysql_fetch_array($result)) {
$cuentahost=$cuentahost+1;
}
if($cuentahost!=0){
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #3 (permalink)  
Antiguo 09/06/2009, 17:35
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Contar Registros que cumplan cierta condicion

Porque no hacerlo desde la misma consulta.

SELECT COUNT(*) as total FROM tabla WHERE noempleado = $noempleado;

E imprimes total
  #4 (permalink)  
Antiguo 09/06/2009, 18:03
 
Fecha de Ingreso: junio-2009
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 0
Cita:
Iniciado por By_George Ver Mensaje
por que le falta el signo de moneda a la variable

while ($row = @mysql_fetch_array($result)) {
$cuentahost=$cuentahost+1;
}
if($cuentahost!=0){
Uhm no By_George , aun poniendole el signo de pesos sigue mostrado ese "1" ...

Cita:
Iniciado por Ronruby Ver Mensaje
Porque no hacerlo desde la misma consulta.

SELECT COUNT(*) as total FROM tabla WHERE noempleado = $noempleado;

E imprimes total
Mira Ronruby, lo puse así, pero no me muestra nada, debería de mostrar un "1", por que hay un registro con esa condicion. te pongo el codigo, no sé si halla puesto algo mal.


Cita:
<?php
$_GET['noempleado'];
$link = mysql_connect("localhost", "basededatos", "");
mysql_select_db("basededatos", $link);
mysql_query("SELECT COUNT(*) as total FROM host WHERE noempleado = $noempleado", $link);
echo "[ ",$total," ]";
?>

Última edición por GatorV; 09/06/2009 a las 18:50
  #5 (permalink)  
Antiguo 09/06/2009, 18:21
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Contar Registros que cumplan cierta condicion

umm pos el signo lo debe de llevar por que es una variable... pero ademas encuentro otras que te pongo como comentario:

Código PHP:
$noempleado=$_GET['noempleado']; //no asignas el valor de la variable que recibes por get a una variable para manipularla en tu consulta
$cuentahost=0
$link mysql_connect("localhost""basededatos""");  
mysql_select_db("basededatos"$link);  
$result mysql_query("SELECT noempleado FROM host WHERE noempleado=$noempleado"$link); //si es una cadena tu variable  $noempleado debe de llevar comillas simples

while ($row =mysql_fetch_array($result)) { //quita el signo de arroba de tu mysql_fetch_array
$cuentahost=$cuentahost+1//y si agrega el signo de moneda por que cuentahost es una variable y como tal usa ese signo

if(
$cuentahost!=0){ 
echo 
"[ ",$cuentahost," ]";} 
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #6 (permalink)  
Antiguo 09/06/2009, 18:30
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: Contar Registros que cumplan cierta condicion

Cita:
Iniciado por Joohnny Ver Mensaje
Mira Ronruby, lo puse así, pero no me muestra nada, debería de mostrar un "1", por que hay un registro con esa condicion. te pongo el codigo, no sé si halla puesto algo mal.
.. necesitas asignar el resultado de mysql_query() a una variable y recuperar el valor con algún mysql_fetch_xxx ... ¡tal cual lo haces en tu código original!

y qué con $_GET?, no lo asignas a nada ¿?
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 09/06/2009, 18:33
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Respuesta: Contar Registros que cumplan cierta condicion

Mucho más simple así:

Código PHP:
$result mysql_query("SELECT noempleado FROM host WHERE noempleado=$noempleado"$link);
$total mysql_num_rows($result);
echo 
"Hay en total: ".$total

Saludos.
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #8 (permalink)  
Antiguo 09/06/2009, 19:08
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: Contar Registros que cumplan cierta condicion

Sí, más simple, pero más gasto de recursos traer información que no vas a utilizar. Igual la diferencia no debería ser significativa, pero, en principio, es mejor utilizar las funciones nativas de MySQL, en este caso, COUNT().

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #9 (permalink)  
Antiguo 09/06/2009, 20:00
 
Fecha de Ingreso: junio-2009
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 0
De acuerdo Respuesta: Contar Registros que cumplan cierta condicion

Muchas gracias a todos por sus respuestas, a pesar de que todas funcionan a la perfección el resultado no deja de salir como al principio.
Por ejemplo, si el resultado de la variable era '8' al final se mostraba '81'.
Con el famoso '1' del principio...
Pero me he dado cuenta de que eso sucede por el lugar donde quiero que se muestre el resultado, dentro de un DIV.
Si muestro el resultado fuera de un DIV este se muestra como debe de ser un simple '8'.
Si alguien sabe a que se debe eso, me ayudaría mucho si me dijera como resolverlo, aunque no valla en este foro ya.

Gracias por corregirme algunas otras cosas que tenía mal.
  #10 (permalink)  
Antiguo 09/06/2009, 20:35
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Respuesta: Contar Registros que cumplan cierta condicion

Mostranos el código del div y como lo imprimes..
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #11 (permalink)  
Antiguo 09/06/2009, 20:44
 
Fecha de Ingreso: junio-2009
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Contar Registros que cumplan cierta condicion

Código PHP:
echo"<div id=submenu>";
echo
"<div id=menuv><ul>";
        echo
"<li><a id=primero href=pagina1.php>HOST",require("cuentahost.php"),"</a></li>";
    echo
"</ul></div>";
    echo
"</div>"
Código HTML:
#submenu {
	background-color: #FF6633;
	float: left;
}
#menuv {
	border: 1px solid #ACCFE8;
	border-width: 1px 1px 0 1px;
	font: 80% "Trebuchet MS", Arial, Helvetica, sans-serif;
}
#menuv ul, li {
	list-style-type: none;
}

#menuv ul {
	margin: 0;
	padding: 0;
}

#menuv li {
	border-bottom: 1px solid #ACCFE8;
}
#menuv a {
	text-decoration: none;
	color: #3366CC;
	background: #F0F7FC;
	display: block;
	padding: 3px 6px;
	width: 138px;
}
#menuv a:hover {
	background: #DBEBF6;
}
Se muestra adelante del texto de la etiqueta <li> que se encuentra dentro de un div.
Ahí puse lo de la hoja de estilo, por si tiene algo que ver.
THANKS
  #12 (permalink)  
Antiguo 09/06/2009, 20:51
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Respuesta: Contar Registros que cumplan cierta condicion

Dos cositas, podrías probar con include("cuentahost.php"); pero no tendría porque funcionar mal.. y si abris la pagina cuentahost.php te muestra el resultado con o sin el 1? me refiero a abrirla en una nueva ventana, no dentro del div.
Y otra cosa, porque no hacés la consulta en la misma página y dentro del div imprimís el resultado en lugar de incluir toda una página?

Saludos.
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #13 (permalink)  
Antiguo 09/06/2009, 20:57
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: Contar Registros que cumplan cierta condicion



Estás concatenando en tu string la función require() ... dicha función te regresa 1 por haberse ejecutado correctamente, estás imprimiendo ese 1!!!

www.php.net/require

Un tutorial de PHP por favor, consulta las FAQ, hay buenas referencias.

Suerte
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #14 (permalink)  
Antiguo 09/06/2009, 21:09
 
Fecha de Ingreso: junio-2009
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 0
De acuerdo Respuesta: Contar Registros que cumplan cierta condicion

Cita:
Iniciado por McBlink Ver Mensaje
Dos cositas, podrías probar con include("cuentahost.php"); pero no tendría porque funcionar mal.. y si abris la pagina cuentahost.php te muestra el resultado con o sin el 1? me refiero a abrirla en una nueva ventana, no dentro del div.
Y otra cosa, porque no hacés la consulta en la misma página y dentro del div imprimís el resultado en lugar de incluir toda una página?

Saludos.
Probé con include y el resultado sigue siendo el mismo, si abro el resultado en una pagina solamente, ahí si se muestra correctamente, es decir, sin el "1" extra.
y pues decidí poner el require o en tu caso el include por que ese mismo proceso se tiene que hacer para cinco tablas diferentes y yo considero que es demasiado codigo en una sola pagina (hay mucho más php...), lo hacía por cuestion de orden.
Sin embargo, haciendo la consulta en la misma pagina e imprimiendo el resultado dentro del div necesario funciona todo correctamente.
Pero estaría genial saber por que se imprimía ese "1" de más... no?
por lo tanto esto ha quedado resuelto incluyendo todo en la misma pagina.
Y poniendo mucha atención para que no se revuelvan las cosas

Mucha gracias por tu ayuda McBlink

Última edición por Joohnny; 09/06/2009 a las 21:12 Razón: Agregar codigo
  #15 (permalink)  
Antiguo 09/06/2009, 21:24
 
Fecha de Ingreso: junio-2009
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Contar Registros que cumplan cierta condicion

Sin importar que se mande imprimir algo, va a imprimir 1 siempre que se ejecute correctamente?
No entiendo...
En más partes de la pagina uso la funcion require y jamás he visto un 1, y se ejecutan correctamente. Muchas graciar por tu ayuda, si he leido tutoriales de PHP, pero algo de ayuda no vendría nada mal.
  #16 (permalink)  
Antiguo 09/06/2009, 21:30
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Contar Registros que cumplan cierta condicion

Cita:
Iniciado por jam1138 Ver Mensaje


Estás concatenando en tu string la función require() ... dicha función te regresa 1 por haberse ejecutado correctamente, estás imprimiendo ese 1!!!

www.php.net/require

Un tutorial de PHP por favor, consulta las FAQ, hay buenas referencias.

Suerte
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 15:33.