Vectores o matrices ... (perdón por lo extenso)
Alberto Rivera
rivera.alberto en gmail.com
Mie Nov 8 20:14:16 CLST 2006
Hola señores, soy nuevo en esta lista y quisiera solicitar su ayuda, les
explico el problema; resulta que necesito recuperar de una tabla una
serie de registros, imprimirlos en una página y añadirles "N" valores
cuya cantidad es recuperada de otra trabla, para ser más concretos, el
problema es similar al del libro de notas, o sea, cada alumno debe ser
sacado de una tabla y cada una de las pruebas tambien, siendo cada una
de estas pruebas las que se deben ingresar. En este momento estoy
recuperando los registros y almacenandolos sólo con un valor de la
siguiente forma :
(pagina principal)
<?php
$consulta1=mysql_query("select * from persona",$link);
?>
codigo html de las tablas y todo lo demas
<?php
$numero_total = mysql_num_rows($consulta);
while($datos = mysql_fetch_array($consulta)) {
$codpersona = $datos["cod_persona"];
$appaterno = $datos["appaterno"];
$cont++;
echo "
<tr>
<td>$cont</td>
<td><b>".$datos["appaterno"]."
".$datos["apmaterno"]." ".$datos["nombres"]." </td>
<td><INPUT type=\"text\" size=\"2\"
name=\"valor$cont\" value=\"0\"></td>
<input type=\"hidden\" value=\"$codpersona\"
name=\"cpersona$cont\">
<input type=\"hidden\" value=\"$appaterno\"
name=\"apellido$cont\">
</tr>";
}
mysql_free_result($consulta);
mysql_close($link);
?>
más código html y esto :
<input type="hidden" name="total"
value="<?php echo $numero_total; ?>">
en la otra página en la que recupera se tiene que :
<?php
$total = $_POST['total'];
include("../includes/conex.phtml");
$link=conectarse();
for($i=1;$i<=$total;$i++) {
$cpersona[$i] = $_POST['cpersona'.$i];
$valor[$i] = $_POST['valor'.$i];
$appaterni[$i] = $_POST['apellido'.$i];
}
mysql_query("CREATE TABLE tmp1 (
contador INT NOT NULL,
cpersona INT(8) NOT NULL,
appaterno VARCHAR(100) NOT NULL,
valor INT NOT NULL
) TYPE = INNODB;",$link);
for($i=1;$i<=$total;$i++) {
$insertar=mysql_query("INSERT INTO `tmp1` (
`contador`,`cpersona`,`appaterno`)
VALUES ('$i', '$cpersona[$i]','$appaterni[$i]','$valor[$i]');");
echo "Insertado ".$i."</br>";
}
?>
Si esto lo prueban funciona a la perfección, pero la cosa es que el
valor no es sólo uno, estoy recuperando estos valores de la siguiente
forma :
<?php
$consulta1=mysql_query("select * from persona",$link);
$consulta2=mysql_query("select * from pruebas",$link);
?>
codigo html
<?php
while($columna=mysql_fetch_array($consulta2)) {
$cont1++;
echo "<td align=center
width=\"160\"><b>".$columna["descripcion"]."</td>";
}
?>
más código html para ordenar la cosa ...
<?php
$numero_total = mysql_num_rows($consulta);
while($row = mysql_fetch_array($consulta)) {
$codpersona = $row["cod_persona"];
$appaterno = $row["appaterno"];
$cont++;
echo "
<tr>
<td align=center><b>".$row["rut"]." -
".$row["dv"]."</td>
<td align=center><b>".$row["appaterno"]."
".$row["apmaterno"]." ".$row["nombres"]."</td>
<td>
<TABLE align=\"center\" border=\"0\"
width=\"100%\">
";
for ($a=0;$a<$cont1;$a++) {
echo " <td align=\"center\"> <INPUT type=\"text\"
size=\"5\" maxlength=\"10\" name=\"valor$cont$a\" value=\"$cont/$a\">";
}
echo "</td></TABLE></td>
<input type=\"hidden\"
value=\"$codpersona\" name=\"cpersona$cont\">
<input type=\"hidden\"
value=\"$appaterno\" name=\"apellido$cont\">
</tr>";
}
mysql_free_result($consulta);
mysql_close($link);
?>
<input type="hidden" name="total" value="<?php echo $numero_total; ?>">
<INPUT type="hidden" name="total2" value="<?php echo $a; ?>">
Esto es lo que tengo en realidad no he podido avanzar más disculpen por
lo extenso de esta consulta ... espero que se entienda y que el código
sirva a alguien también :)
atte.
Más información sobre la lista de distribución PHP