Muchas gracias, lo he probado pero nada, lo que has dicho que pongo todo dentro del mismo script... haber eso es parte de una funcion, te la pongo:
Código PHP:
function getCalendarMed($mes, $año, $tipo_profesional) {
global $diaM;
global $mesM;
global $añoM;
global $diaS;
global $idents;
global $consguardias;
$año_ = substr($año, 2, 2);
$cal = "'%" . $mes . $año_ . "_'";
if ($tipo_profesional == 'profesional1') {
$tipo_profesional = '"01"';
$profs = getMedicos();
} elseif ($tipo_profesional == 'profesional2') {
$tipo_profesional = '"06"';
$profs = getEnfermeras();
}
$consulta_dias = 'SELECT DISTINCT `identificador` FROM `guardia` where `identificador` LIKE ' . $cal . 'AND `anio` LIKE ' . $año . ' GROUP BY `identificador` ORDER BY `guardia`.`identificador` ASC';
$consulta_diasC = mysql_query($consulta_dias);
while ($ident = mysql_fetch_array($consulta_diasC, MYSQL_BOTH)) {
$idents[] = $ident;
}
foreach ($idents as $row) {
$diaM = substr($row[0], 0, 2);
$mesM = substr($row[0], 3, 2);
$añoM = substr($row[0], 4, 2);
$diaS = substr($row[0], -1);
if ($diaS == 1) {
$diaS = 'L';
} elseif ($diaS == 2) {
$diaS = 'M';
} elseif ($diaS == 3) {
$diaS = 'X';
} elseif ($diaS == 4) {
$diaS = 'J';
} elseif ($diaS == 5) {
$diaS = 'V';
} elseif ($diaS == 6) {
$diaS = 'S';
} elseif ($diaS == 7) {
$diaS = 'D';
}
$Ndia[] = $diaS;
$Mdia[] = $diaM;
}
$ndias = count($idents) + 1;
$nprof = count($profs) + 2;
$consulta_guardias = 'SELECT DISTINCT `cod_prof`, `id_dia`, `incidencia` FROM `cl_dia` WHERE substring(`cias`, 7, 2) LIKE' . $tipo_profesional . 'AND `id_dia` LIKE ' . $cal . 'AND `centro` LIKE ' . $_SESSION['centro'] . ' ORDER BY `cod_prof` ASC';
$consulta_guardiasC = mysql_query($consulta_guardias);
while ($guardias = mysql_fetch_row($consulta_guardiasC, MYSQL_ASSOC)) {
$consguardias[] = $guardias;
}
$infoProf = array();
foreach ($consguardias as $ar) {
$ard = str_pad($ar['id_dia'], 7, "0", STR_PAD_LEFT);
$ards = substr($ard, 0, 2);
$infoProf[$ar['cod_prof']][$ards] = $ar['incidencia'];
}
if ($mes == 01) {
$mes = 'Enero';
} elseif ($mes == 02) {
$mes = 'Febrero';
} elseif ($mes == 03) {
$mes = 'Marzo';
} elseif ($mes == 04) {
$mes = 'Abril';
} elseif ($mes == 05) {
$diaS = 'Mayo';
} elseif ($mes == 06) {
$mes = 'Junio';
} elseif ($mes == 07) {
$mes = 'Julio';
} elseif ($mes == 08) {
$mes = 'Agosto';
} elseif ($mes == 09) {
$mes = 'Septiembre';
} elseif ($mes == 10) {
$mes = 'Octubre';
} elseif ($mes == 11) {
$mes = 'Noviembre';
} elseif ($mes == 12) {
$mes = 'Diciembre';
}
// DIbujamos el calendario.
$idTable = "calTable";
printf("<form name=datos action=recogida.php method=post>\n
<table id=%s align=center border=1 cellspacing=3 cellpadding=3>\n
<caption>%s</caption>\n", $idTable, $mes);
for ($i = 01; $i <= $nprof; $i++) {
printf("<tr id=Col%s>", $i);
for ($j = 01; $j <= $ndias; $j++) {
$idHref = "href" . ($i - 2) . ($j - 1);
$idInput = "inp" . ($i - 2) . ($j - 1);
if ($i == 1 && $j == 1) { //Celda "profesionales"
print("<td>Profesionales</td>\n");
}
if ($i == 1 && $j >= 2) { //Nombre dias
printf("<td id='%s'>%s</td>\n", $Ndia[$j - 2], $Ndia[$j - 2]);
}
if ($i == 2 && $j == 1) { // Celda de control - Para que no descuadre la tabla.
print("<td></td>");
}
if ($i == 2 && $j >= 2) { //Numero dias
printf("<td>%s</td>\n", $Mdia[$j - 2]);
}
if ($i >= 3 && $j == 1) { //Columna de profesionales
printf("<td id='Prof%s'>%s</td>\n", $profs[$i - 3], $profs[$i - 3]);
}
if ($i >= 3 && $j >= 2){
if ($i_.$j_== $infoProf[$profs[$i_]][$Mdia[$j_]]){
print($infoProf[$profs[$i_]][$Mdia[$j_]]);
} else{
printf("<td>\n<a id=%s href=# class='boton' onClick='darValorID(this.id)'>N</a>\n
<input id=%s name=%s type=hidden value='N'>\n</td>\n", $idHref, $idInput, $idInput);
}
}
}
print("</tr>");
}
print("</table>");
print("</form>");
//getIDTable();
}
este es el array de infoProf:
Código:
Array ( [01] => Array ( [12] => 7 [17] => 7 [25] => 7 [29] => 7 ) [02] => Array ( [11] => 7 [31] => 7 [04] => 7 ) [03] => Array ( [10] => 7 [13] => 7 [19] => 7 [22] => 7 [27] => 7 [30] => 7 [03] => 7 ) [04] => Array ( [20] => 7 [02] => 7 [23] => 7 [29] => 7 [09] => 7 ) [05] => Array ( [10] => 7 [18] => 7 [31] => 7 [06] => 7 ) [08] => Array ( [16] => 7 [25] => 7 [07] => 7 ) [09] => Array ( [17] => 7 [21] => 7 [28] => 7 [05] => 7 ) [10] => Array ( [14] => 7 [18] => 7 [26] => 7 [30] => 7 ) [12] => Array ( [01] => 7 [18] => 7 [21] => 7 [08] => 7 ) [13] => Array ( [13] => 7 [16] => 7 [24] => 7 [08] => 7 ) [15] => Array ( [15] => 7 [20] => 7 [29] => 7 [09] => 7 ) [16] => Array ( [10] => 7 [15] => 7 [27] => 7 [04] => 7 ) [MA1] => Array ( [11] => 7 [17] => 7 [20] => 7 [02] => 7 [23] => 7 [25] => 7 [27] => 7 [04] => 7 [07] => 7 ) [MA2] => Array ( [12] => 7 [14] => 7 [22] => 7 [24] => 7 [26] => 7 [28] => 7 [03] => 7 [06] => 7 ) [MA3] => Array ( [12] => 7 [14] => 7 [16] => 7 [19] => 7 [02] => 7 [23] => 7 [28] => 7 [30] => 7 [05] => 7 [07] => 7 ) [MA4] => Array ( [01] => 7 [15] => 7 [19] => 7 [22] => 7 [26] => 7 [03] => 7 [05] => 7 [08] => 7 [09] => 7 ) [MA5] => Array ( [01] => 7 [11] => 7 [13] => 7 [21] => 7 [24] => 7 [31] => 7 [06] => 7 ) )
como te he dicho, la key de cada array dentro del macro array es el codigo del profesional y dentro de cada array se guarda el tipo de trabajo cuya key es el dia que se realizo.
Aqui el tema es cojer el ID de las celdas donde se imprime el codigo del profesional y comprar con la celda superior para meter la informacion oportuna, segun te entiendo tu lo comparas directamente con el array no ? si te digo la verdad esto es caotico, me han dado un BD ya montada con los datos pero sin relacion alguna entre ellas, (si, como lo lees) y me las tengo que apañar.
Observaras un monton de cosas raras como substring dentro y fuera de las consultas sql es que esta todo mezclado y aveces incompleto, por hay hay alguna funcion de completado para las fechas... es un caos.
Entonces lo que he hecho o intentado, es meterle un id a las celdas donde se escribe el codigo del profesional con el mismo codigo y en las celdas donde van las fechas igual y a partir de hay me gustaria poder comparar pero llevo todo el dia y no he conseguido nada...
Por ultimo te dejo un captura de como deberia quedar la tabla (es como la dibuja la funcion citada)
http://imageshack.us/photo/my-images/203/81633345.png