Foros del Web » Programando para Internet » PHP »

Coun (*) Resource id #4

Estas en el tema de Coun (*) Resource id #4 en el foro de PHP en Foros del Web. Hola a todos tengo la siguuiente consulta: Código PHP: mysql_select_db ( $database_connection ,  $connection ); $query_totalmedios  =  "SELECT count(*) FROM medios" ; $totalmedios  =  mysql_query ( $query_totalmedios ,  ...
  #1 (permalink)  
Antiguo 11/07/2012, 17:05
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Coun (*) Resource id #4

Hola a todos tengo la siguuiente consulta:

Código PHP:
mysql_select_db($database_connection$connection);
$query_totalmedios "SELECT count(*) FROM medios";
$totalmedios mysql_query($query_totalmedios$connection) or die(mysql_error());
$totalRows_totalmedios mysql_fetch_row($totalmedios); 

La cual mando a imprimir asi

Código PHP:
<?php echo $totalmedios?>
y me arroja como resultado:
Resource id #4

intente imprimir
Código PHP:
 <?php echo $totalRows_totalmedios ?>
y me arroja: Array

E leido que tiene que ver mysql_fetch_row(

pero no consigo resolverlo
Gracias de antemano
  #2 (permalink)  
Antiguo 11/07/2012, 17:08
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Coun (*) Resource id #4

Lo resolvi asi

Código PHP:
 <?php
    $query 
"SELECT COUNT(*) as cant FROM medios";
$reg mysql_query($query);
$cant mysql_result($reg0"cant");
echo 
$cant?>
Por si alguien lo necesita
  #3 (permalink)  
Antiguo 11/07/2012, 17:09
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Coun (*) Resource id #4

mysql_fetch_row extrae una fila de tu consulta. Supongo que lo que quieres es mysql_num_rows
  #4 (permalink)  
Antiguo 11/07/2012, 17:12
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Coun (*) Resource id #4

Cita:
Iniciado por ocp001a Ver Mensaje
mysql_fetch_row extrae una fila de tu consulta. Supongo que lo que quieres es mysql_num_rows
Lo cambie pero aun no me arroja nada
al final probe con otro codigo aun asi sería interesante saber porque no funciono en mi código
  #5 (permalink)  
Antiguo 11/07/2012, 17:16
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Coun (*) Resource id #4

lo deje asi


mysql_select_db($database_connection, $connection);
$query_totalmedios = "SELECT count(*) FROM medios";
$totalmedios = mysql_query($query_totalmedios, $connection) or die(mysql_error());
$totalm= mysql_num_rows($totalmedios);


e imprime
$totalm
me arroja 1 como resultado
deberia ser 4
  #6 (permalink)  
Antiguo 11/07/2012, 17:18
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Coun (*) Resource id #4

Debes entender cómo funcionan ambas cosas:
si haces una consulta x, mysql_num_rows te va a decir cuantas filas existen con la condición dada.

Pero si tu consulta es un count(), count te va a contar lo que hay en bd según las condiciones, y te lo va a devolver en 1 fila, por eso, al hacer mysql_num_rows sobre la consulta con count te da 1.
  #7 (permalink)  
Antiguo 11/07/2012, 17:21
Avatar de naiger67  
Fecha de Ingreso: enero-2011
Mensajes: 22
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Coun (*) Resource id #4

Recuerda que esta linea
$totalRows_totalmedios = mysql_fetch_row($totalmedios); te devuelve un array
con el resultado de tu consulta en tu caso SELECT COUNT(*)
un array unidimesional al q deberas acceder por la notacion de corchetes de esta manera
$totalRows_totalmedios[0]. Y eso es toddy....
Si no te funca hazle un var_dump a ese arreglo y postea lo q te muestre
  #8 (permalink)  
Antiguo 11/07/2012, 17:22
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Coun (*) Resource id #4

Cita:
Iniciado por ocp001a Ver Mensaje
Debes entender cómo funcionan ambas cosas:
si haces una consulta x, mysql_num_rows te va a decir cuantas filas existen con la condición dada.

Pero si tu consulta es un count(), count te va a contar lo que hay en bd según las condiciones, y te lo va a devolver en 1 fila, por eso, al hacer mysql_num_rows sobre la consulta con count te da 1.
Bueno lo resolvi asi

mysql_select_db($database_connection, $connection);
$query_totalmedios = "SELECT count(*) as totalm FROM medios";
$totalmedios = mysql_query($query_totalmedios, $connection) or die(mysql_error());
$totalm= mysql_result($totalmedios,0,"totalm");


Guiandome en la solución que ya habia encontrado Gracias x tu tiempo
  #9 (permalink)  
Antiguo 11/07/2012, 17:33
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Coun (*) Resource id #4

La otra manera fue asi
Código PHP:
<?php $cc mysql_query("SELECT * FROM medios");
$cant mysql_num_rows($cc);
echo 
$cant;?>
Ahora bien me gustaría que alguien me explicara (por fis)
cual es la diferencia en usar cout o mysql_num_rows
que ventajas tiene uno sobre otro... he leido que count
consume menos recursos es verdad esto????
  #10 (permalink)  
Antiguo 11/07/2012, 17:39
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Coun (*) Resource id #4

Depende de tus necesidades.

Count consume menos recursos, pues sólo hace un conteo, pero debes usarlo si sólo necesitas saber la cantidad de elementos que cumplan cierta condición.

Si necesitas saber cuántos elementos obtuviste en tu consulta (por ejemplo en una paginación de tablas) tendrás que usar mysql_num_rows, que te dirá de la consulta que hiciste cuántos registros hay.
  #11 (permalink)  
Antiguo 11/07/2012, 17:41
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Coun (*) Resource id #4

Cita:
Iniciado por ocp001a Ver Mensaje
Depende de tus necesidades.

Count consume menos recursos, pues sólo hace un conteo, pero debes usarlo si sólo necesitas saber la cantidad de elementos que cumplan cierta condición.

Si necesitas saber cuántos elementos obtuviste en tu consulta (por ejemplo en una paginación de tablas) tendrás que usar mysql_num_rows, que te dirá de la consulta que hiciste cuántos registros hay.
Ok me queda claro ¡Mil Gracias!

Etiquetas: mysql, resource, sql
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:13.