Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] numero de repeticiones de los registros

Estas en el tema de numero de repeticiones de los registros en el foro de PHP en Foros del Web. Hola a todos, soy un principiante en php y necesito ayuda: Necesito hacer una lista con el nº de veces que se repite el mismo ...
  #1 (permalink)  
Antiguo 01/06/2014, 12:41
 
Fecha de Ingreso: junio-2014
Mensajes: 4
Antigüedad: 10 años, 5 meses
Puntos: 0
numero de repeticiones de los registros

Hola a todos, soy un principiante en php y necesito ayuda:
Necesito hacer una lista con el nº de veces que se repite el mismo registro; es decir, tengo una tabla en la que inserto registros que se pueden o no repetir. Y tener en otra tabla, los mismos registros pero con el nº de repeticiones de cada uno ellos. Per ejemplo, una tabla con registros con el codigo isbn (libros), que repite a lo largo del proceso o no y de forma desordenada. Ahora meto el isbn 1, después el 3, después 4, después el 1, después el 3, después el 1 y por último el 7; quedando la nueva tabla con los registros del siguiente modo:
isbn 1 se repite 3
isbn 3 se repite 2
isbn 4 se repite 1
isbn 7 se repite 1

El código que utilizo es este:

$sql="SELECT * FROM carrito WHERE usuario='$usuario';";
$comprobar=mysql_query($sql,$conexion);
$array=mysql_fetch_array($comprobar);
while ($fila=mysql_fetch_array($comprobar)){
$cantidad=1;
$isbn=$fila['isbn'];
if (in_array($isbn,$array)){
$cantidad=$cantidad+1;
}
$ejemplares=$cantidad;
$sql="INSERT INTO librosvendidos VALUES ('$isbn','$ejemplares');";
$insertarregistro=mysql_query($sql,$conexion);
}
  #2 (permalink)  
Antiguo 01/06/2014, 13:30
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: numero de repeticiones de los registros

La función array_count_values, devuelve un array en el cual, los índices son los valores del array que se le pasó como argumento y los valores representan la cantidad de veces que cada uno de estos valores se repiten. Por ejemplo:

Código PHP:
Ver original
  1. $array = array('isbn1', 'isbn3', 'isbn2', 'isbn1', 'isbn2', 'isbn1', 'isbn3', 'isbn2', 'isbn1', 'isbn4');
  2. foreach (array_count_values($array) as $valor => $cantidad)
  3.     echo $valor . ' se repite ' . $cantidad . ($cantidad > 1 ? ' veces' : ' vez') . '<br />';

Da como resultado lo siguiente:

Código HTML:
Ver original
  1. isbn1 se repite 4 veces
  2. isbn3 se repite 2 veces
  3. isbn2 se repite 3 veces
  4. isbn4 se repite 1 vez

Adapta esto a lo que necesitas, saludos.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 01/06/2014, 17:51
 
Fecha de Ingreso: junio-2014
Mensajes: 4
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: numero de repeticiones de los registros

Gracias por tu respuesta, lo provaré y ya te cuento. Entiendo la idea. Muchas gracias.
  #4 (permalink)  
Antiguo 02/06/2014, 12:37
 
Fecha de Ingreso: junio-2014
Mensajes: 4
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: numero de repeticiones de los registros

Hola de nuevo. Entiendo la idea pero no sé aplicarlo bien. Te paso el código y comento:

$sql="SELECT * FROM carrito WHERE usuario='$usuario';";
$comprobar=mysql_query($sql,$conexion);
$array=mysql_fetch_array($comprobar); --> Creo un array llamado "$array" donde guarda todas las filas de la tabla según consulta.

while ($fila=mysql_fetch_array($comprobar)){ --> Recorre todo el array $fila.
$isbn=$fila['isbn']; --> La variable toma el valor del campo "isbn" de la fila
$array=array('isbn1', 'isbn3', 'isbn2', 'isbn1', 'isbn2', 'isbn1', 'isbn3', 'isbn2', 'isbn1'); --> Aquí que no estoy seguro de cómo ponerlo. Es donde se debe guardar el valor el campo "isbn" obtenido de cada fila de la tabla.
}

Una vez obtenidos los "isbn" y guardados en el array "$array", se recorre el array con el foreach, para averiguar cuantas veces se repite cada "isbn"
foreach (array_count_values($array) as $valor => $cantidad)
echo $valor . ' se repite ' . $cantidad . ($cantidad > 1 ? ' veces' : ' vez') . '<br />';

De manera que al final se muestre como lo has puesto en el echo.

Lo que necesito es saber cómo es el código. Gracias de antemano.
  #5 (permalink)  
Antiguo 02/06/2014, 16:47
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: numero de repeticiones de los registros

Haz esto:

Código PHP:
Ver original
  1. while ($fila = mysql_fetch_array($comprobar))
  2.     $array[] = $fila['isbn'];

Y luego aplicas el código que mostré en la anterior respuesta.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 03/06/2014, 15:58
 
Fecha de Ingreso: junio-2014
Mensajes: 4
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: numero de repeticiones de los registros

Muchas gracias por tu aporte. Cómo te puntuo?. Un saludo

Etiquetas: numero, registro, registros, repeticiones, select, sql, tabla
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:45.