Se que cuando se ve un post tan largo como este no dan ni ganas de leerlo, pero para lo siguiente me gustarían mucho las opiniones de los más phperos posibles o de cualquiera que pueda dar una idea, solo necesito un empujón con la lógica. Del código yo me encargo. Es que ya llevo varios días encerrado en el problema, no pido todo hecho, solo un pequeño aventón.
Estoy haciendo un pequeño selector de registros (canciones para ser mas exacto) en PHP y Mysql. De una lista de categorías se tienen que seleccionar las canciones correspondientes, pero la selección tiene que empezar con aquellas que contengan menos canciones.
Las categorías están contenidas en un array secuencial, asi:
Código PHP:
/* Estas son las categorias */
$categoria[0]='POP'; /* Tiene 10 canciones */
$categoria[1]='BALADA'; /* Tiene 25 canciones */
$categoria[2]='RANCHERO';/* Tiene 5 canciones */
$categoria[3]='BANDA'; /* Tiene 6 canciones */
El orden por número de canciones quedaria así:
Código PHP:
/* Estas son las categorias ordenadas por el numero de canciones */
$conteo[2]=5; /* RANCHERO */
$conteo[3]=6; /* BANDA */
$conteo[0]=10; /* POP */
$conteo[1]=25; /* BALADA */
Y como la selección la hago dependiendo el numero de canciones de cada categoría y no en el orden en que se van a mostrar en pantalla (como quiere el usuario) pues no se como controlar la separación de los interpretes. Probé almacenado los interpretes en una tabla aparte conforme se van seleccionando y usando en la consulta para seleccionar la canción la cláusula “NOT IN” pero no me funciono por que el orden en que se eligen las canciones no es como se van a mostrar al final, entonces nunca va a quedar la separación correctamente. Se entiende?
Espero que alguien me pueda dar alguna idea de cómo se puede implementar la lógica para separar los interpretes, si algo no quedo entendible háganme saber que parte no es clara y lo vuelvo a explicar.
Saludos y de antemano 1000 gracias.