Foros del Web » Programando para Internet » PHP »

Tomar valor comun en tabla MySQL para varios registros

Estas en el tema de Tomar valor comun en tabla MySQL para varios registros en el foro de PHP en Foros del Web. Hola Amigos, les hago una consulta. Actualmente tengo una tabla de clientes con fechas de vencimientos y costos. Una tarea cron corre en el servidor ...
  #1 (permalink)  
Antiguo 17/04/2019, 15:27
 
Fecha de Ingreso: noviembre-2007
Mensajes: 69
Antigüedad: 12 años, 1 mes
Puntos: 0
Tomar valor comun en tabla MySQL para varios registros

Hola Amigos, les hago una consulta.

Actualmente tengo una tabla de clientes con fechas de vencimientos y costos. Una tarea cron corre en el servidor y cuando encuentra un registro que coincide en fecha envía un email al registro con el costo que debe abonar.

Ahora bien, muchos registros tienen el mismo valor de costo, por lo que cuando tengo que actualizar precios, suelo actualizar todo el valor con:

UPDATE `tabla` SET `costo` = replace(costo,'valor-antiguo','valor-nuevo');


Pero hay muchos que no tienen ese precio y debo ir editandolos a mano.

Lo que necesitaria es algo que por ejemplo al cliente 1 le asigne el costo A, al cliente 2 el costo B, y así sucesivamente, cosa que después solo tenga que actualizar A y B.

No estoy muy empapado en el tema de programación y el sistemita lo he hecho copiando aquí y alla de distintos ejemplos en internet e ir adaptándolo a mis necesidades. No se si necesito otratabla o puedo colocar esos valores en alguna columna extra de la tabla.

Les agradeceré mucho su ayuda y orientación.
  #2 (permalink)  
Antiguo 22/04/2019, 10:28
 
Fecha de Ingreso: noviembre-2014
Ubicación: peru-lima
Mensajes: 32
Antigüedad: 5 años, 2 meses
Puntos: 2
Respuesta: Tomar valor comun en tabla MySQL para varios registros

"Ahora bien, muchos registros tienen el mismo valor de costo, por lo que cuando tengo que actualizar precios, suelo actualizar todo el valor con:"...
*cual es el motivo para actualizar?
puede ser que el día de hoy es fecha de vencimiento y el costo debe aumentar por mora.


tabla clientes(
ncliente
fechaVencimiento
costos -- a pagar
);

y quieres enviar un mensaje....
la fecha de vencimiento se cumplió y debe abonar el 10% más del costo indicado (o una mora ya establecida: 10 soles )

cliente: yo
fecha de vencimiento: 22/04/2019
costo: 100 soles

mora: [10% del costo] o [mora ya establecida]
total: costo + mora

---------
quizá cada cliente tiene diferente mora(mejor añade la tabla moratipocli, así la mora puede crecer o disminuir según varias condiciones)
moratipocli(
id
mora
)
cliente(
ncliente
fecven
costo
tipocli
)

entonces
mora= obtienes mora por tipo de cliente,
obtienes cliente por la fecha de vencimiento
  #3 (permalink)  
Antiguo 22/04/2019, 10:59
 
Fecha de Ingreso: noviembre-2007
Mensajes: 69
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Tomar valor comun en tabla MySQL para varios registros

Hola ut261c.

Te cuento un poco mas porque no me he explicado bien que es lo que necesito, tengo esta lista de clientes los cuales algunos tienen que abonar el producto "A", otros el producto "B" y algunos tienen que abonar el prodcuto "A" y "B", o tienen que abonar un tercer producto "C".

El producto A tiene un costo de $100. El producto B sale $50. El producto C sale $150, y así sucesivamente.

Por UPDATE se complica, no porque sean muchos productos sino porque son muchos clientes y hay que ir revisando toda la tabla para editar algunos a mano en phpmyadmin.

Por eso se me ocurrio que cada cliente le asigne una letra como producto, por ejemplo: uncliente le asigno el producto "A", a otro el producto "B" y así sucesivamente, de esta manera cuando tenga que modificar el precio cambio el valor asignado a A, B, y C y listo :

El tema es que no se muy bien como encararlo, seguramente necesitaré otra tabla.

Lo que tengo ahora y me funciona es:

Código PHP:
// Realizo la consulta preguntando si hay concidencias en dia mes 
// y si enviado es distinto al año de actual
// La finalidad del campo enviado la explicare al final del codigo 
$consulta "SELECT * FROM `tabla` WHERE dia='$hoydia' and mes='$hoymes' and enviado<>'$hoyano' " ;
$resultado $conn->query($consulta);
$num_resultados=mysqli_num_rows($resultado); // numeros de resultados



while($row=mysqli_fetch_array($resultado))
 {
$id=$row["id"];
$nombre=$row["nombre"];
$mail=$row["mail"];  
$cliente=$row["cliente"];
$costo=$row["costo"];
$descripcion=$row["descripcion"];
$web=$row["web"];
$vence=$row["vence"]; 
Esto me trae el valor que tengo en "costo" el cual actualmente es un valor de moneda, por ejemplo $100.

Si yo cambio ese valor por ejemplo por la letra "A", ¿como tendría que hacer para que me traiga el valor correspondiente a "A"?

Muchas gracias desde ya.

Última edición por jotaperez; 22/04/2019 a las 11:23
  #4 (permalink)  
Antiguo 23/04/2019, 22:23
 
Fecha de Ingreso: noviembre-2014
Ubicación: peru-lima
Mensajes: 32
Antigüedad: 5 años, 2 meses
Puntos: 2
Respuesta: Tomar valor comun en tabla MySQL para varios registros

dibuja o escribe el antes y después de los resultados.
mostrar resultados (antes) -> variables de entrada -> mostrar resultado (después)
Entiendo un poco lo que quieres hacer... es un sistema de cuotas donde el cliente tiene que abonar a uno o varios productos(creo)
si es así son 4 tablas -a mi parecer-
-----------------por qué quieres actualizar el costo -----------------------------
-----------------costo ¿es la suma total de precios de los productos adquiridos por un cliente? ---------
-----------------y cual es la condición para actualizar el costo--------------------

Última edición por ut261c; 23/04/2019 a las 22:38

Etiquetas: mysql
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 16:03.