Buenas, en un colegio donde estoy laburando me pidieron que les imprima la lista de alumnos y padres con sus respectivos usuarios y contraseñas para un sistema que tienen armado para el menú de los chicos.
Armé un script en PHP que se conecta a la bd y consigue los datos. Lo probé desde el navegador en mi localhost y andaba. Pero para mejorar el formato de la impresión de los datos quise imprimir los datos en un pdf.
Para eso utilizo la librería fpdf. Y creo que ahí viene el problema, porque cuando ejecuto el script me devuelve el siguiente error (después de un rato de trabajar):
Cita: Fatal error: Maximum execution time of 60 seconds exceeded in C:\Program Files\xampp\htdocs\manantiales\urecovery\libs\db.p hp on line 39
En la línea 39 de ese archivo se ejecuta una query, que en el script que ejecuté primero andaba sin mayores inconvenientes.
Los códigos son estos:
Código PHP:
<?php
# Muestra para cada alumno su user y pass.
# Al igual que el de sus padres.
include('libs/db.php');
include('libs/pdf/fpdf.php');
conectar();
$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial');
$tot = 0;
$query = "SELECT u.idusuario FROM usuarios u";
$res = mysql_query($query);
if ($res == false){
echo "Fallo la consulta.<br/>";
}else{
while ($row = mysql_fetch_array($res)){
if (esAlu($row[0]) == true){
$dat = nomAlu($row[0]);
$pdf->Cell(40,10,$dat);
$pdf->Ln();
$dat = "<br/>".usAlu($row[0]);
$pdf->Cell(40,10,$dat);
$pdf->Ln();
#datPad($row[0]);
$tot = $tot + 1;
}
}
}
$pdf->Output();
echo "<br/>Resumen:<br/>".$tot." alumnos procesados.";
?>
Código PHP:
<?php
function conectar(){
# Info db:
..........................
}
function esAlu($id){
$query = "SELECT * FROM alumno WHERE alumno.IdUsuario = $id";
$res = mysql_query($query);
if ($res == false){
echo "Error en la consulta de alumno.";
}else{
if (mysql_num_rows($res) == 1){
return true;
}else{
return false;
}
}
}
function yearAlu($id){
$query = "SELECT * FROM alumno WHERE alumno.IdUsuario = $id";
$res = mysql_query($query);
if ($res == false){
echo "Error en la consulta de cursada.";
}else{
return $row[1];
}
}
function nomAlu($id){
$query = "SELECT * FROM usuarios u WHERE u.idusuario = $id";
$res = mysql_query($query);
if ($res == false){
echo "Fallo la consulta de datos de alumno.";
}else{
$row = mysql_fetch_array($res);
$text = "ALUMNO: ".$row[6].", ".$row[7]."<br/>";
return $text;
}
}
function usAlu($id){
$query = "SELECT * FROM usuarios u WHERE u.idusuario = $id";
$res = mysql_query($query);
if ($res == false){
echo "Fallo la consulta de datos de alumno.";
}else{
$row = mysql_fetch_array($res);
$text = "Usuario: ".$row[10]." - Contraseña: ".$row[11]."<br/>";
return $text;
}
}
function datPad($id){
$query = "SELECT u.apellido, u.nombre, u.nombreusuario, u.clave, arr.Alumno_IdUsuario AS Alumno
FROM alumno_relacion_responsable AS arr INNER JOIN usuarios AS u ON arr.Responsable_IdUsuario = u.IdUsuario
WHERE $id = arr.Alumno_IdUsuario";
$res = mysql_query($query);
if ($res == false){
echo "Error en la consulta de datos de datos de padres.";
}else{
echo "PADRES:<br/>";
while ($row = mysql_fetch_array($res)){
echo $row[0].", ".$row[1]."<br/>";
echo "Usuario: ".$row[2]."<br/>";
echo "Contraseña: ".$row[3]."<br/>";
}
}
}
?>
Apriori se me ocurrió cambiar el valor de max_execution_time del php.ini a 0. Pero aún así devuelve el mismo mensaje.
Alguna sugerencia ?.