Foros del Web » Programando para Internet » PHP »

Autoincrementativo dependiente

Estas en el tema de Autoincrementativo dependiente en el foro de PHP en Foros del Web. Buenos días; Estoy tratando de hacer lo siguiente: Partimos de una base de datos que tiene la tabla usuarios, con los siguientes campos: Nombre - ...
  #1 (permalink)  
Antiguo 14/01/2003, 03:14
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Sobre incrementos

Buenos días;

Estoy tratando de hacer lo siguiente:

Partimos de una base de datos que tiene la tabla usuarios, con los siguientes campos:

Nombre - DNI - Apariciones

Pues bien, lo que busco es hacer el campo "Apariciones" auto incrementativo, esto es $Apariciones++, pero dependiendo del DNI. Como no me explico muy bien, pongo un ejemplo práctico. Esta sería la tabla:

Nombre - DNI - Apariciones
Pepe - 12345678N - 1
Carlos - 87654321A - 1
Luis - 45678465S - 1
Pepe - 12345678N - 2
Pepe - 12345678N - 3
Carlos - 87654321A - 2

Nótese que el campo "Apariciones" es autoincrementativo PERO dependiendo de las veces que aparece repetido el campo DNI. Si Pepe escribe el formulario la 1º vez tendrá un 1, al igual que todos los que lo hagan la 1ª vez, y se irá incrementando dependiendo de las veces que los usuarios hayan mandado dicho formulario; si el campo Apariciones de Pepe llega a aparecer 4 veces el campo apariciones debe ser 4 para Pepe, pero sólo 2 para Carlos que mandó el formulario 2 veces.

¿Me ayudan?

Gracias por todo.
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.

Última edición por ferent; 14/01/2003 a las 05:36
  #2 (permalink)  
Antiguo 14/01/2003, 07:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Y donde se supone q vas a guardar esos datos? .. cundo dices "tabla" te refieres a una tabla de una base de datos (SQL) ..?


Si es así, .. sería algo parecido a: (la sentencia SQL para Mysql .. Recuerda siempre mencionar q BD tipo trabajas).

$sql="UPDATE tabla SET apariciones=apariciones+1 WHERE nombre='$nombre'";

el aparaciones=apariciones+1 se encarga de obtener el valor de dicho campo e incrementarlo en una unidad "manualmente" .. ese campo no ha de ser Autoincrement...

Un saludo,
  #3 (permalink)  
Antiguo 14/01/2003, 10:21
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Pero no busco un update, ya que necesito conservar los valores antiguos, así que debe ser un insert. Siguiendo con el ejemplo que puse, Pepe debe estar en la tabla de la base de mySQL con nº 1, con nº2... y así tantas veces como haya mandado dicho formulario.
Supongamos una tienda virtual en la que se vende fruta, y cuyos pedidos se van almacenando en una base de datos a modo de historial. Yo compro 1 kilo de plátanos y 1 de naranjas, y así queda grabado en la DB:

REF_PRODUCTO - NOMBRE - CANTIDAD - CONTADOR
4231 - Plátanos - 1kg. - 1
6533 - Naranjas - 3kg. - 1

Pero de repente me doy cuenta de que necesito más plátanos y añado otro kilo que dejaría la tabla de la DB así:

REF_PRODUCTO - NOMBRE - CANTIDAD - CONTADOR
4231 - Plátanos - 1kg. - 1
6533 - Naranjas - 3kg. - 1
4231 - Plátanos - 1kg. - 2

Y ahí está el asunto, que quede reflejado de forma incrementativa la cantidad de veces que se pidió dicho producto pero que no se borre el anterior ni lo actualice, sino que si ya está plátanos pues que el "contador" ponga el nº siguiente correspondiente al producto que ya pidió un usuario.

En este ejemplo queda algo estupido hacer esto, pero para la página que realizo sí que es fundamental.

Pienso que esto requiere algo de PHP, aunque quizás me vuelva a equivocar y sólo haga falta lenguaje SQL.
¿Sería algo asi?:
Código PHP:
$check_frutas mysql_query("SELECT REF_PRODUCTO , NOMBRE , CANTIDAD , CONTADOR FROM FRUTAS;
if (mysql_num_rows($check_frutas) < "
algo"){
mysql_query ("
insert into FRUTAS... )} 
No tengo ni idea, échenme un cable pliiiisss.
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.

Última edición por ferent; 14/01/2003 a las 10:24
  #4 (permalink)  
Antiguo 14/01/2003, 10:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tu mejor q nadie sabes como va tu modelo de datos .. o como tiene que funcionar ..

4231 - Plátanos - 1kg. - 1
4231 - Plátanos - 1kg. - 2

Por mi parte no entiendo eso .. osese . no le veo sentido al campo cantidad total q guardas en ¿el último registro q coincida su ref.? ....

Creo q lo q tendrias q hacer es solo contar el total de la ref. 4231 en ese caso (plátanos) a la hora de hacer la consulta a esa tabla para obtener cuantos productos tienes de cada producto.

Un saludo,
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 23:57.