Buenos dias, tengo un problemilla, es al mostrar los datos, no se porqué no me muestra los resultados como debería.
Tengo 17 ambitos, asique debería mostrarme 17 tablas
lo hago mediante este bucle for:
Código:
for ($i = 1; $i < 18; $i++){ }
ok, ahora hago la consulta en la que selecciono los datos dependiendo del codAmbito el cual tiene el valor de $i.
Código:
$sql = mysql_query("SELECT descripAmbito, descripCentro, numeroPregunta, evaluador1, evaluador2, evaluador3, opinPos, opinNeg
FROM ambitos, centros, encuestas
WHERE encuestas.codAmbito = $i
AND ambitos.codAmbito = encuestas.codAmbito
AND centros.codCentro = encuestas.codCentro
ORDER BY encuestas.numeroPregunta");
ahora hago una consulta para que me muestre el nombre del ambito antes de cada tabla con el contenido, en la que vuelvo a coger el nombre del ambito con el $i.
Código:
$sql2 = mysql_query("SELECT descripAmbito FROM ambitos WHERE codAmbito = $i");
while ($nombre = mysql_fetch_row($sql2)){
echo "<b>Ambito:</b> $nombre[0]<br><br>";
}
y ahora creo la tabla antes de empezar a rellenar la tabla, la relleno, y cierro la tabla.
Código:
echo "<table border=\"1\"><tr><td>codAmbito</td><td>codCentro</td><td>numeroPregunta</td>
<td>evaluador1</td><td>evaluador2</td><td>evaluador3</td>
<td>opinPos</td><td>opinNeg</td><td>Media</td><td>Ponderacion</td></tr>";
while ($campo = mysql_fetch_row($sql)){
$media = round(($campo[4] + $campo[5] + $campo[6]) /3);
$ponderacion = round($media * 2);
echo "<tr>";
echo "<td>$campo[0] </td>";
echo "<td>$campo[1] </td>";
echo "<td>$campo[2] </td>";
echo "<td>$campo[3] </td>";
echo "<td>$campo[4] </td>";
echo "<td>$campo[5] </td>";
echo "<td>$campo[6] </td>";
echo "<td>$campo[7] </td>";
echo "<td>$media </td>";
echo "<td>$ponderacion </td>";
echo "</tr>";
}
echo "<br><br>";
Mi pregunta ahora es..
¿porque pasa esto?
Como podeis ver, me muestra un titulo, no me muestra nada, me muestra otro titulo con la tabla que deberia ir junto al titulo anterior.. etc, vamos lo que se ve en la foto.
(En la foto no se siguen rellenando tablas ni poniendo títulos porque no tengo más que 2 ambitos creados de momento).
PD: Dejo el código completo:
Código PHP:
Ver original<?php
include('conex.php');
for ($i = 1; $i < 18; $i++){
$sql = mysql_query("SELECT descripAmbito, descripCentro, numeroPregunta, evaluador1, evaluador2, evaluador3, opinPos, opinNeg FROM ambitos, centros, encuestas
WHERE encuestas.codAmbito = $i
AND ambitos.codAmbito = encuestas.codAmbito
AND centros.codCentro = encuestas.codCentro
ORDER BY encuestas.numeroPregunta");
$sql2 = mysql_query("SELECT descripAmbito FROM ambitos WHERE codAmbito = $i");
echo "<b>Ambito:</b> $nombre[0]<br><br>";
}
echo "<table border=\"1\"><tr><td>codAmbito</td><td>codCentro</td><td>numeroPregunta</td>
<td>evaluador1</td><td>evaluador2</td><td>evaluador3</td>
<td>opinPos</td><td>opinNeg</td><td>Media</td><td>Ponderacion</td></tr>";
$media = round(($campo[4] + $campo[5] + $campo[6]) /3); $ponderacion = round($media * 2); echo "<tr>";
echo "<td>$campo[0] </td>";
echo "<td>$campo[1] </td>";
echo "<td>$campo[2] </td>";
echo "<td>$campo[3] </td>";
echo "<td>$campo[4] </td>";
echo "<td>$campo[5] </td>";
echo "<td>$campo[6] </td>";
echo "<td>$campo[7] </td>";
echo "<td>$media </td>";
echo "<td>$ponderacion </td>";
echo "</tr>";
}
echo "<br><br>";
}
?>