Ver Mensaje Individual
  #10 (permalink)  
Antiguo 04/04/2010, 12:46
delta132
 
Fecha de Ingreso: abril-2006
Ubicación: Bogotá
Mensajes: 251
Antigüedad: 18 años, 6 meses
Puntos: 14
Respuesta: Como recorrer array para insertar en base de datos

Hola hombre, me parecio curioso esto que requerias y por eso implemente eso de la siguiente forma:

Código PHP:
<?php

$link 
mysql_connect("localhost","root");
$db mysql_select_db"prueba",$link);

$sql "SELECT * FROM test";
$eject mysql_query($sql$link);
?>
<html>
    <body>
        <table>
            <form action="save_data.php" method="post">
            <?php while( $ls mysql_fetch_array($eject) ) { ?>
            <tr>
                <td>
                    <input name="cod_jugador[]" type="hidden" value="<?php echo $ls[0]; ?>" />
                    <?php echo $ls[1]; ?>
                </td>
                <td>
                    <input name="puntos<?php echo $ls[0]; ?>" type="text" size="3" maxlength="2" />
                </td>
                <td>
                    <select name="juega<?php echo $ls[0];?>" size="1" >
                        <option value="1">si</option>
                        <option value="2" selected="selected">no</option>
                    </select>
                </td>
            </tr>
            <?php ?>
            <tr><td colspan="3"><input type="submit" value="Enviar >>"></td></tr>
            </form>
        </table>
    </body>
</html>
Lo importante de esta parte es que para poder luego recuperar el valor de la variable "puntos" y "juega" lo que se hace es en el nombre de estos dos campos concatenar el id del jugador.

Código PHP:
<select name="juega<?php echo $ls[0];?>" size="1" >
y

Código PHP:
 <input name="puntos<?php echo $ls[0]; ?>" type="text" size="3" maxlength="2" />
Por lo tanto en el archivo que recibe la información sólo debemos hacer un foreach para recorrer la variable "cod_jugador" que es un arreglo.

Código PHP:
 <?php foreach( $_POST['cod_jugador'] as $jugador ) { ?>
Y en cada iteración concatenamos la palabra clave que fue "puntos" y "juega" con su respectivo id del jugador que sería "$jugador" que fue el que se puso en el foreach, total podemos recibir los datos así:

Código PHP:
<?php

$link 
mysql_connect("localhost","root");
$db mysql_select_db"prueba",$link);

$sql "SELECT * FROM test";
$eject mysql_query($sql$link);

?>
<html>
    <body>
        <table>
            <?php foreach( $_POST['cod_jugador'] as $jugador ) { ?>
            <?php
            $puntaje 
"puntos".$jugador;
            
$juega "juega".$jugador;
            
?>
            <?php $jugador mysql_fetch_rowmysql_query("SELECT cam FROM test WHERE idTab = '$jugador'")) ?>
            <tr>
                <td><?php echo $jugador[0]; ?></td>
                <td><?php echo $_POST[$puntaje];?></td>
                <td><?php echo $_POST[$juega];?></td>
            </tr>
            <?php ?>
        </table>
    </body>
</html>
Nota que en cada iteración hacemos esto:

Código PHP:
            <?php
            $puntaje 
"puntos".$jugador;
            
$juega "juega".$jugador;
            
?>
Que es donde hace la concatenación para luego poder usar:

Código PHP:
                <td><?php echo $_POST[$puntaje];?></td>
                <td><?php echo $_POST[$juega];?></td>
Espero te haya servido yo lo probé y funciono perfectamente, cualquier cosa avisas.

Saludos!!

PD: He adaptado los nombres de los campos dentro de la DB a una base de pruebas que tengo jeje, tienes que colocar los tuyos allí.