Foros del Web » Programando para Internet » PHP »

contar filas de un array de session

Estas en el tema de contar filas de un array de session en el foro de PHP en Foros del Web. Buenas compañeros; tengo un problemilla, que me parecía sencillo pero parece ser que no y se me complica la cosa, así que os cuento: Necesito ...
  #1 (permalink)  
Antiguo 27/04/2006, 08:51
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 5 meses
Puntos: 3
contar filas de un array de session

Buenas compañeros;

tengo un problemilla, que me parecía sencillo pero parece ser que no y se me complica la cosa, así que os cuento:

Necesito sacar el total de productos(filas) que tengo en un array que viene por session, tipo carro de la compra, y necesito sacar el numero total de productos, pèeeeeeeeeeeeeeeeeeeeeero no se como... lo he intentado con y no he sido capaz, esta es mi consulta que muestra los resultados:

Código PHP:
$suma=0
  
//antes de recorrer todos los valores de la matriz carro, ponemos a cero la variable $suma, 
  //en la que iremos sumando los subtotales del costo de cada item por la cantidad de unidades que se especifiquen 
$conta_linea=0;
$pagina=1;

foreach(
$carro as $campo => $valor){
   
//recorremos la matriz que tiene todos los valores del carro, calculamos el subtotal y el total 
   
$sql="select *
            from productos
            where id_producto='"
.$valor["id_producto"]."'";

    
$result=mysql_query($sql$link) or die (mysql_error());
    
$row=mysql_fetch_array($result);
    
    
$nombre=$row["nombre"];
    
$precio=$row["precio"];
    
$referencia=$row["referencia"];
    
$rcount=mysql_num_rows($result);//con esto solo me imprime 1

    
   
$subto=$valor['cantidad']*$precio
   
$op=number_format($subto,2,'.',''); 

   
$suma=$suma+$op
   
$conta_linea++; 
entonces, si meto mysql_num_rows dentro me va a sacar solo un resultado, así que tengo que hacer una consulta fuera de esta para que me saque todos, pero no soy capaz, a alguien se le ocurre como puedo hacerlo???????????

os estoy muy agradecida

Un saludo a todossss y viva el calorcitoo
  #2 (permalink)  
Antiguo 27/04/2006, 09:04
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo

Pues si lo que quieres es recorrer el resultado de tu query lo solucionas con un while

Código PHP:
<?php
while($rcount=mysql_num_rows($result))
{
    echo 
$rcount["nombre"]."<br>"
    echo 
$rcount["precio"]."<br>";  
    echo 
$rcount["referencia"]."<br>";  
}
?>
  #3 (permalink)  
Antiguo 27/04/2006, 09:15
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 5 meses
Puntos: 3
no me entero ...XD

creo que me he explicado mal o no te sigo en la explicación.. sorris me refiero a que necesito contar el numero total de registros (productos) que tengo añadido a mi cesta de la compra, es decir, he añadido a la cesta de la compra 5 productos que están guardados en la variable $carro de sessión. He hecho un foreach para sacar todos los productos sin problemas, pero lo que quiero es saber el total de productos que tengo en el carro, en número, he escogido 5 productos pues quiero que me imprima en nº : 5

pero no se me ocurre como hacer una consulta a:
$carro=$_SESSION['carro'];

para sacar ese número total de productos....
  #4 (permalink)  
Antiguo 27/04/2006, 09:26
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Ya probaste con la funcion count()
  #5 (permalink)  
Antiguo 27/04/2006, 09:36
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 5 meses
Puntos: 3
Sí, count lo tengo presente, pero no se como montar la consulta, como puedo hacer... porque esto no es correcto supongo..:

"select count('".$valor["id_producto"."']) from productos";

como le indico que quiero contar todos los id de productos que hay almacenados en el array $carro... snif snif snfino caigo, he mirado en el foro haber si había algun ejemplo parecido pero nada, ...y seguro que count lo tengo que utilizar el problema es que no se que poner para que cuente
  #6 (permalink)  
Antiguo 27/04/2006, 09:37
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 19 años, 4 meses
Puntos: 6
echo count($tuarray);

salu2
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #7 (permalink)  
Antiguo 27/04/2006, 09:39
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
echale un ojo a a este link http://dev.mysql.com/doc/refman/5.0/...ting-rows.html
  #8 (permalink)  
Antiguo 27/04/2006, 09:51
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 5 meses
Puntos: 3
sii!!!, el count era la clave, gracias por vuestra aclaración me ha ayudado mucho, la primera prueva a sido válida, ahora voy a intentar adaptarlo a mi script a ver que tal sale, muchas gracias de verdad por la ayuda.

$total_registros=count($carro);
echo $total_registros;

thankius mauled y aldo1982
  #9 (permalink)  
Antiguo 27/04/2006, 09:58
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 5 meses
Puntos: 3
una pregunta mas:

$total_registros=count($carro);
$total_paginas=($total_registros/5);

echo $total_paginas;

si por ejemplo tubiera 8(total_registros) dividido entre 5= 1.6(total_paginas)

entonces como puedo hacer para que la variable $total_paginas sea un número entero pero aproxime para arriba, es decir, si da: 1.6 sea =2. Juraría que hay una función para eso pero no logro saber cual es.... alguien sabe????...

de todos modos muchísimas gracias por lo otro que peso me he quitaoo.. pufff
  #10 (permalink)  
Antiguo 27/04/2006, 10:13
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
http://www.php.net/manual/es/function.ceil.php
  #11 (permalink)  
Antiguo 27/04/2006, 10:56
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 5 meses
Puntos: 3
GRACIASS

al final he utilizado esto porque me convenía mejor:
$total_paginas_entero=number_format($total_paginas ,0,'.','');

pero lo de ceil no la conocía y es muy buena, una cosa nueva que aprendo , thankiusss!!!
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:42.