Foros del Web » Programando para Internet » PHP »

Que es mejor para recursos num_rows o fetch_assoc

Estas en el tema de Que es mejor para recursos num_rows o fetch_assoc en el foro de PHP en Foros del Web. Hola buenas, Que es mejor para el tema de recursos de la base de datos? 1) $R = $Bd->consultar("id","ssl_transporte","WHERE (idioma='".$_SESSION['idioma_web']."' and id_sesion='".$crypt->decode($_SESSION['id_cesta'])."' and id_cliente='".$crypt->decode($_SESSION['id_user'])."' and ...
  #1 (permalink)  
Antiguo 05/02/2012, 02:10
Avatar de syntex  
Fecha de Ingreso: noviembre-2002
Ubicación: Cataluña
Mensajes: 978
Antigüedad: 21 años, 5 meses
Puntos: 4
Que es mejor para recursos num_rows o fetch_assoc

Hola buenas,

Que es mejor para el tema de recursos de la base de datos?

1)
$R = $Bd->consultar("id","ssl_transporte","WHERE (idioma='".$_SESSION['idioma_web']."' and id_sesion='".$crypt->decode($_SESSION['id_cesta'])."' and id_cliente='".$crypt->decode($_SESSION['id_user'])."' and finalizado='')","");
$Rn= $Bd->num_rows($R);
$Bd->limpiaconsulta($R);

2)
$R = $Bd->consultar("COUNT(id) as count","ssl_transporte","WHERE (idioma='".$_SESSION['idioma_web']."' and id_sesion='".$crypt->decode($_SESSION['id_cesta'])."' and id_cliente='".$crypt->decode($_SESSION['id_user'])."' and finalizado='')","");
$Rn= $Bd->fetch_assoc($R);
$Bd->limpiaconsulta($R);
$Rn = $Rn['count'];

Muchas gracias.
__________________
------------------------------------------------
La paciencia es el rey de la ciencia
------------------------------------------------

  #2 (permalink)  
Antiguo 05/02/2012, 13:25
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Que es mejor para recursos num_rows o fetch_assoc

Se ve que estás utilizando alguna class tuya por lo tanto no es posible ayudarte, no se puede saber cual es el funcionamiento interno de la clase. Respecto de tu pregunta, mysql_fetch_assoc devuelve un array asociativo, mientras que mysql_fetch_array devulve un array indexado. Puedes utlizar una y otra funcón dependiendo de el problema, no hay una función "mejor" que la otra. Tal vez si haces un pregunta concreta te podamos ayudar, saludos
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 05/02/2012, 17:02
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Que es mejor para recursos num_rows o fetch_assoc

Mas bien creo que esta comparando mysql_num_rows y la sentencia SQL select count(), en la teoria se dice que es mas lento mysql_num_rows, ya que primero se tienen que recuperar todas las posibles filas de a cuerdo a la sentencia SQL y posteriormente se leerá el numero de filas por lo cual, num_rows se ejecutará hasta el final, en cambio select count() es el mismo MySQL el que cuenta las filas de a cuerdo a la sentencia SQL, y retorna el total a PHP, pero esto es en la teoria, es probable que si no vas a manejar gran numero de registros en tu consulta sean igual de rápidas ambas opciones, ahora que si vas a llamar un gran numero de registros es mejor usar select count() y dejar el trabajo a MySQL que hacerlo con num_rows
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #4 (permalink)  
Antiguo 05/02/2012, 23:58
Avatar de syntex  
Fecha de Ingreso: noviembre-2002
Ubicación: Cataluña
Mensajes: 978
Antigüedad: 21 años, 5 meses
Puntos: 4
Respuesta: Que es mejor para recursos num_rows o fetch_assoc

Perfecto. Muchas gracias.
A partir de ahora remplazare:

$d = mysql_query("SELECT COUNT(id) as count FROM tabla",$c);
$R = mysql_fetch_assoc($d);
mysql_free_result($d);
$R = $R['count'];

por mysql_num_rows.

Muchas gracias por vuestra gran ayuda.
__________________
------------------------------------------------
La paciencia es el rey de la ciencia
------------------------------------------------


Etiquetas: recursos
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 22:19.