Foros del Web » Programando para Internet » PHP »

Count o mysql_num_rows

Estas en el tema de Count o mysql_num_rows en el foro de PHP en Foros del Web. puede parecer una consulta de mysql, pero no lo es: haciendo la consulta a la base de datos mediante un select (y group by) quiero ...
  #1 (permalink)  
Antiguo 14/04/2011, 12:03
Avatar de floog  
Fecha de Ingreso: enero-2006
Mensajes: 191
Antigüedad: 18 años, 3 meses
Puntos: 2
Count o mysql_num_rows

puede parecer una consulta de mysql, pero no lo es:

haciendo la consulta a la base de datos mediante un select (y group by) quiero que me cuente el numero de registros que hay para esa selección; investigando he visto que con count, se puede hacer una consulta que cuente los valores seleccionados, algo que también se puede hacer con mysql_num_rows (el cual, según la faq de php.net es lo recomendado). la cuestión es que como hago para que me muestre el resto de contenidos de la selección.

muestro aqui el codigo
Código PHP:
<? //filtro de la tabla
    
$siniestros "SELECT * FROM dam_vehiculos GROUP BY v_fecha, v_marca";
    
$sql mysql_query ($siniestros);
?>
<table align="center">
    <tr>
        <td></td>
        <td width="5px"></td>
        <td align="center"><h4>Fecha</h4></td>
        <td width="5px"></td>
        <td align="center"><h4>Medio Cedente</h4></td>
        <td width="5px"></td>
        <td align="center"><h4>Marca</h4></td>
        <td width="5px"></td>
        <td align="center"><h4>Modelo</h4></td>
        <td width="5px"></td>
        <td align="center"><h4>Partes Emitidos</h4></td>
    </tr>
<? // while
$contar mysql_query("SELECT COUNT(v_tipologia) FROM dam_vehiculos GROUP BY v_fecha, v_marca");
while (
$rows mysql_fetch_array ($sql)) { ?>
    <tr>
        <td></td>
        <td width="5px"></td>
        <td align="center"><? echo $rows["v_fecha"]; ?></td>
        <td width="5px"></td>
        <td align="center"><? echo $rows["v_fluce"]; ?></td>
        <td width="5px"></td>
        <td align="center"><? echo $rows["v_marca"]; ?></td>
        <td width="5px"></td>
        <td align="center"><? echo $rows["v_modelo"]; } ?></td>
        <td width="5px"></td>
        <td align="center"><? echo $contar;?></td>
    </tr>
    </table>
</div>
</body>
</html>
lo que se pretende es que nos cuente el numero de registros agrupando los registros por fecha y marca,
sldos
  #2 (permalink)  
Antiguo 14/04/2011, 12:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Count o mysql_num_rows

de hecho si debería ser una tema de SQL, y no de PHP...

la explicación es sencilla, ¿para que seleccionar todos los registros si solo necesitas la cuenta de ellos?

es ridículo, pues dicha consulta contiene bastantes filas, etc, etc... para eso está diseñado COUNT(), que solo obtiene un único resultado con el total computado...

entonces, viendo la relación con tu problema no te hace falta saber el COUNT() si vas a usar los registros para mostrar, ahí si tiene mucho sentido usar mysql_num_rows()

PDTA: en tu consulta podrías hacer esto también, SELECT COUNT(*) AS total, col_a, col_b FROM ... pero no olvides hacer el fetching, porque así como usas la consulta está mal....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 14/04/2011, 12:15
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Count o mysql_num_rows

count es una funcion propia de mysql para operaciones solo en la consulta
mysql_num_rows es una funcion propia de php

para mostrarlo podrias asignarle un alias, pero no es un dato para recorrer
te lo va a mostrar en cada iteracion, salvo que valides que lo muestre solo la primera vez.
  #4 (permalink)  
Antiguo 14/04/2011, 12:22
Avatar de floog  
Fecha de Ingreso: enero-2006
Mensajes: 191
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: Count o mysql_num_rows

gracias a ambos. la cuestión es que es necesario imprimir el resultado de la consulta de esta manera

FECHA | MARCA | NUMERO DE CASOS

En esta situación, al tratarse de un SELECT, como se haría con mysql_num_rows???
  #5 (permalink)  
Antiguo 14/04/2011, 13:09
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Count o mysql_num_rows

lo que te acabamos de decir usa alias!!!

Etiquetas: count
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 13:26.