Foros del Web » Programando para Internet » PHP »

duda con select count(*) y mysql_resut()

Estas en el tema de duda con select count(*) y mysql_resut() en el foro de PHP en Foros del Web. Hola gente , estoy intentando entender un script de paginación bastante sencillo pero pero hay una parte que no la entiendo , voy a pegar ...
  #1 (permalink)  
Antiguo 03/12/2008, 15:26
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
duda con select count(*) y mysql_resut()

Hola gente , estoy intentando entender un script de paginación bastante sencillo pero pero hay una parte que no la entiendo , voy a pegar el código:
Código:
if($_pagi_conteo_alternativo == false){
//sustituimos el primer substring por el segundo substring del string $_pagi_sql
 $_pagi_sqlConta = eregi_replace("select[[:space:]](.*)[[:space:]]from", "SELECT COUNT(*) FROM", $_pagi_sql);
 $_pagi_result2 = mysql_query($_pagi_sqlConta);
	
// Si ocurri� error y mostrar errores est� activado
 	if($_pagi_result2 == false && $_pagi_mostrar_errores == true){
		die (" Error en la consulta de conteo de registros: $_pagi_sqlConta. Mysql dijo: <b>".mysql_error()."</b>");
 	}
 	$_pagi_totalReg = mysql_result($_pagi_result2,0,0);//total de registros
Lo que no entiendo es el count(*) , me imagino que al hacerle el mysql_query($_pagi_sqlConta) devolverá un identificador con el número de registros de la consulta (numero de filas ¿no?) .

Pero luego no consigo entender los parámetros que se le pasa a
mysql_result($_pagi_result2,0,0)
¿Para que esos dos ceros?.
He buscado información en php.net pero no consigo entender del todo como funciona este cacho de código, agradecería cualquier aclaración.
Un saludo y gracias de antemano
  #2 (permalink)  
Antiguo 03/12/2008, 15:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: duda con select count(*) y mysql_resut()

Revisa en el Manual: mysql_result.

Claramente dice, el segundo parámetro es la fila, y el tercer parámetro la columna, si tu le pasas, 0, 0, estas pidiendo el primer valor de la primera fila.

Saludos.
  #3 (permalink)  
Antiguo 03/12/2008, 15:47
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: duda con select count(*) y mysql_resut()

Cita:
Iniciado por GatorV Ver Mensaje
Revisa en el Manual: mysql_result.

Claramente dice, el segundo parámetro es la fila, y el tercer parámetro la columna, si tu le pasas, 0, 0, estas pidiendo el primer valor de la primera fila.

Saludos.
Gracias por tu respuesta GatorV te cuento : precisamente por eso no lo entiendo (me he leido el php.net), no lo entiendo porque lo que devuelve es el número de registros (es decir de filas que encuentra) y entonces no entiendo porque el 0,0 , ya que si eso es lo que me comentas tendría que devolver solo 1 ya que sería la fila 0 y el campo 0 , y en cambio si hay 5 post devuelve 5 no 1. Quizá algún concepto no entiendo bien.

Un saludo y gracias de antemano
  #4 (permalink)  
Antiguo 03/12/2008, 15:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: duda con select count(*) y mysql_resut()

Mmm pues entonces tu duda viene con el uso de COUNT(*), lo que hace COUNT() es contar registros, por eso si hay 5, encuentra 5, si hay 1,000, encuentra 1,000.

Saludos.
  #5 (permalink)  
Antiguo 03/12/2008, 16:26
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: duda con select count(*) y mysql_resut()

Cita:
Iniciado por GatorV Ver Mensaje
Mmm pues entonces tu duda viene con el uso de COUNT(*), lo que hace COUNT() es contar registros, por eso si hay 5, encuentra 5, si hay 1,000, encuentra 1,000.

Saludos.
Ok pero aún arriesgándome a ser pesado ¿que función tiene enteonces $_pagi_totalReg = mysql_result($_pagi_result2,0,0);?

porque si el count ha encontrado 100 filas que hace eso de mysql_result($_pagi_result2,0,0)
Se supone que el script nos dice el número de resultados que ha encontrado de esta forma: echo $_pagi_totalReg ; pero por eso no entiendo los parametros 0,0 en este caso.

Saludos y gracias
  #6 (permalink)  
Antiguo 03/12/2008, 16:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: duda con select count(*) y mysql_resut()

Lee lo que te escribi, los parámetros de la función mysql_result son:

Parámetro 1: El Recurso al resultado devuelto por mysql_query.
Parámetro 2: La fila del resultado a extraer (desde 0)
Parámetro 3: La columna a extraer (desde 0).

Que quiere decir? Que si tu haces mysql_result($resultado, 0, 0), le estas diciendo, del recurso $resultado, dame la primera fila, y el primer resultado.

Si tu ejecutas tu SELECT COUNT(*) FROM foo en tu gestor de base de datos favorito vas a ver que solo te devuelve 1 resultado, el cual es el número de columnas.

Por ende, si tu haces mysql_result($resultado, 0, 0), te va a devolver ese resultado de tu consulta.

Saludos
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 15:55.