Título: comprobar variables de db Publicado por: gAb1 en 2 Diciembre 2014, 01:44 am Hola, siento que el titulo no sea muy intuitivo pero no encuentro manera de nombrar el problema que tengo.
Estoy reescribiendo un código que imprime una lista con datos de una tabla, pero con ciertas condiciones: Código
Basicamente son esos 2 "TODOs". Las relaciones de las tablas son muy sencillas: 1º members: contiene informacion de todos los usuarios y en este caso obtiene los datos del amigo ($_GET['id']) del usuario. Las columnas utilizadas son -> "id", "status" (0 or 1; inactive/active), "name" and "month1-12" (12 columns: 0 or 1; not paid / paid month). 2º account_type: contiene los diferentes tipos de cuenta (actualmente solo sirve para asignar bonificaciones segun el tipo). Las columnas utilizadas son -> "id" (members.acc_type), "type" (the type name) and "bonus" (5, 10, 15 etc...). 3º friends: contiene información acerca del usuario y las bonificaciones referentes a un amigo. Las columnas utilizadas son -> "friendID" (members.id, el usuario/amigo invitado), "userID" (members.id, el usuario que ha invitado a un amigo), "extra" (1 para los 3 primeros usuarios invitados y 0 para el resto; 1 es bonus doble, 0 es bonus normal. columna temporal), "bonus_month1-12" (12 columns; 0 is para este o un futuro mes, 1+ es el bonus que el usuario ha ganado este mes(el de la tabla: 1-12), referente al amigo) Primero me gustaría poder reemplazar la columna friends.extra que indica si el usuario obtiene doble bonus o no, algo así como: Código
La idea es que los usuarios con tipo de cuenta "Base" obtengan doble beneficio por los tres primeros amigos invitados, teniendo en cuenta que una de las tres primeras cuentas este desactivada (status 0) entonces la siguiente deberia incluirse, un ejemplo: Si la cuenta número 1 no esta activa pero la 2 y la 3 si, entonces la 4 debería incluirse en $match. Pero no se como hacer esto, aunque tengo una ligera idea, ¿sería como crear un array con las ids que solo tengan status 1? Lo otro debería ser más sencillo: una manera de comprobar si el usuario ya recibió la bonificación. Creo que lo mejor es hacer lo mismo que para saber si la mensualidad ha sido pagada, month1-12 usando 0 y 1, en este caso algo como bonus_received_month1-12. Y contar lo que tiene pendiente por recibir y el total recibido: Código
Creo que lo que falla aqui son las variables / arrays que no esta bien puestos... Sinceramente, lo que mas agradecería serían los consejos, si hay fallos en el código y la manera de estructurar la DB (me han dicho que no se deben usar números en los nombres de las columnas por algo llamado normalización). Gracias! |