Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Count (*) en php no me anda

Estas en el tema de Count (*) en php no me anda en el foro de PHP en Foros del Web. HOla tengo un problema grande, tengo el siguiente codigo de llamada a una base de datos Código: $cuenta= 'SELECT count(id_rol) FROM persona WHERE id_rol = ...
  #1 (permalink)  
Antiguo 17/03/2015, 07:56
Avatar de mostaza4  
Fecha de Ingreso: octubre-2008
Mensajes: 74
Antigüedad: 15 años, 6 meses
Puntos: 0
Count (*) en php no me anda

HOla tengo un problema grande, tengo el siguiente codigo de llamada a una base de datos
Código:
$cuenta= 'SELECT count(id_rol) FROM persona WHERE id_rol = "'.$rol.'"'
y cuando lo ejecuto en phpmyadmin me funciona, me da el resultado requerido, pero cuando lo uso en php no.
En php si lo uso me sale de resultado Resourse id #7 por ejemplo, pero no el numero de loq ue necesito. Me pueden guiar como resolver el problema. Gracias
  #2 (permalink)  
Antiguo 17/03/2015, 07:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Count (*) en php no me anda

Un poco mal escrito. Ten en cuenta que las comillas y los apostrofos tienen diferente uso en PHP que en SQL.

Código PHP:
$cuenta"SELECT count(id_rol) FROM persona WHERE id_rol = '$rol'"
Por supuesto que además esto lo debes enviar a aejecutar a MySQL... suponiendo que lo estés haciendo, debes agregar en ese momento un or die( ) que permita visualziar si MySQL está retornando algun tipo de error.
Si no capturas los errores de la base jamás sabrás qué es lo que pasa.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 17/03/2015, 08:07
Avatar de mostaza4  
Fecha de Ingreso: octubre-2008
Mensajes: 74
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Count (*) en php no me anda

Muchas gracias no sabia lo de or die, ahora lo pruebo y aviso.
  #4 (permalink)  
Antiguo 17/03/2015, 08:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Count (*) en php no me anda

Postea el codigo completo de cuando mandas a ejecutar la query.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 17/03/2015, 08:14
Avatar de mostaza4  
Fecha de Ingreso: octubre-2008
Mensajes: 74
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Count (*) en php no me anda

lo ejecuto con
Código:
mysql_query($cuenta,$cnx) or die(mysql_error())
y sigue devolviendo
id resource #7

:/ no me tira ningun error tampoco
  #6 (permalink)  
Antiguo 17/03/2015, 08:17
Avatar de mostaza4  
Fecha de Ingreso: octubre-2008
Mensajes: 74
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Count (*) en php no me anda

fucniones.php
Código:
function cuenta($rol,$cnx){
	$cuenta= 'SELECT count(id_rol) FROM persona WHERE id_rol = "$rol"';
	$cuenta=mysql_query($cuenta,$cnx) or die(mysql_error());
	return $cuenta;
	}
Si no uso el "return $cuenta" no devuelve nada en el campo que lo necesito "<li>

codigo principal donde llamo a la funcion
Código:
<li onClick="usuarios(1)">Listos(<?php print  cuenta(1,$cnx);?>)</li>
  #7 (permalink)  
Antiguo 17/03/2015, 08:19
 
Fecha de Ingreso: marzo-2015
Ubicación: Peru
Mensajes: 34
Antigüedad: 9 años, 1 mes
Puntos: 6
Respuesta: Count (*) en php no me anda

si el id_rol es un int no es necesario encerrar con las comitas simples. prueba asi, y si te sigue botando error copia y pega todo tu codigo hasta donde muestras el resultado para ver donde esta el problema.
  #8 (permalink)  
Antiguo 17/03/2015, 08:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Count (*) en php no me anda

Cita:
Iniciado por mostaza4 Ver Mensaje
fucniones.php
Código:
function cuenta($rol,$cnx){
	$cuenta= 'SELECT count(id_rol) FROM persona WHERE id_rol = "$rol"';
	$cuenta=mysql_query($cuenta,$cnx) or die(mysql_error());
	return $cuenta;
	}
Si no uso el "return $cuenta" no devuelve nada en el campo que lo necesito "<li>

codigo principal donde llamo a la funcion
Código:
<li onClick="usuarios(1)">Listos(<?php print  cuenta(1,$cnx);?>)</li>
Notas la diferentia entre lo que te puse yo:
Código PHP:
$cuenta"SELECT count(id_rol) FROM persona WHERE id_rol = '$rol'"
y como lo pones tu:
Código PHP:
$cuenta'SELECT count(id_rol) FROM persona WHERE id_rol = "$rol"'
Como te dije, el uso de comillas y apostrofes no es igual entre PHP y MySQL.

Normalmente para la base de datos las comillas (") se usan para los nombres de objetos de BBDD, como tablasm columnas, etc. Solo si el servidor está configurado de ceirta forma no usual, los toma como delimitadores de cadenas.
Es preferible usar apostrofos (') para eso, o en el caso de numeros, no poner nada.
Así:
Código PHP:
$cuenta"SELECT count(id_rol) FROM persona WHERE id_rol = '$rol'"
o así:
Código PHP:
$cuenta"SELECT count(id_rol) FROM persona WHERE id_rol = $rol"
Y en cualquiera de los dos casos, no uses la misma variable para la query que para el resultado... eso es básico:
Código PHP:
function cuenta($rol,$cnx){
    
$sql'SELECT count(id_rol) FROM persona WHERE id_rol = "$rol"';
    
$cuenta=mysql_query($sql,$cnx) or die(mysql_error());
        
$fila mysql_fetch_array($resultadoMYSQL_NUM);
    return 
$fila[0];
    } 
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 17/03/2015, 09:12
Avatar de mostaza4  
Fecha de Ingreso: octubre-2008
Mensajes: 74
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Count (*) en php no me anda

Cita:
Iniciado por gnzsoloyo Ver Mensaje
[/B]
Código PHP:
function cuenta($rol,$cnx){
    
$sql'SELECT count(id_rol) FROM persona WHERE id_rol = "$rol"';
    
$cuenta=mysql_query($sql,$cnx) or die(mysql_error());
        
$fila mysql_fetch_array($resultadoMYSQL_NUM);
    return 
$fila[0];
    } 
Si ahora note la diferencia, por las dudas en este codigo que me pasaste lo puse como me dijiste, tambien cambie $resultado por $cuenta y me funciono!!

Muchisimas Gracias gnzsoloyo sos un copado!
  #10 (permalink)  
Antiguo 17/03/2015, 09:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Count (*) en php no me anda

Lo siento. Se me olvido reemplazar esa variable...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: anda, count, select
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 11:54.