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