Foros del Web » Programando para Internet » PHP »

insertar varios registros y varios arrays

Estas en el tema de insertar varios registros y varios arrays en el foro de PHP en Foros del Web. Muy buenas amigo les escribo pq tengo el siguiente problema resulta que estoy intentando insertar varios registros de una sola vez, tengo un formulario donde ...
  #1 (permalink)  
Antiguo 25/01/2009, 00:32
 
Fecha de Ingreso: diciembre-2007
Mensajes: 4
Antigüedad: 16 años, 4 meses
Puntos: 0
Mensaje insertar varios registros y varios arrays

Muy buenas amigo les escribo pq tengo el siguiente problema
resulta que estoy intentando insertar varios registros de una sola vez, tengo un formulario donde se van creando varias filas dependiendo de cuantos registre almacene una tabla, ahi perfecto me los genera tal cual, no me repite nombres de input text ni nada, pero cuando inserto no encuentro como recuperar los datos, dejo los codigos para que me ayuden
Código HTML:
  do 
  { 
  	$i++;
  ?>
        <tr>
          <td><?php echo $row_Alumno['acarnet']; ?><input name="acarnet" type="hidden" value="<?php echo $row_Alumno['acarnet']; ?>" /></td>
          <td><?php echo $row_Alumno['aapellido']; ?>, <?php echo $row_Alumno['anombre']; ?></td>
          <td><input name="A<?php echo $i ?>" type="text" id="Nota1" size="5" maxlength="5" /></td>
          <td><input name="B<?php echo $i ?>" type="text" id="Nota2" size="5" maxlength="5" /></td>
          <td><input name="C<?php echo $i ?>" type="text" id="Nota3" size="5" maxlength="5" /></td>
        </tr>
        <?php } while ($row_Alumno = mysql_fetch_assoc($Alumno)); ?> 
Código PHP:
for ($x=1$x==$i$x++)
        {
            echo 
"$x<br>";
            
$insertSQL sprintf("INSERT INTO nota (idNota, Nota1, Nota2, Materia_idMateria, Alumno_acarnet) VALUES (%s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['idNota'], "int"),
                       
GetSQLValueString($_POST['A[$x]'], "int"),
                       
GetSQLValueString($_POST['B[$x]'], "int"),
                       
GetSQLValueString($_POST['select'], "text"),
                       
GetSQLValueString($_POST['acarnet'], "text"));

              
mysql_select_db($database_conexion$conexion);
            
$Result1 mysql_query($insertSQL$conexion) or die(mysql_error());
        } 
Gracias desde antemano!!!
  #2 (permalink)  
Antiguo 25/01/2009, 08:41
Avatar de sweetlydark  
Fecha de Ingreso: septiembre-2008
Mensajes: 391
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: insertar varios registros y varios arrays

Con recuperar los datos, preguntas como leer los datos que acabas de insertar a tu banco de datas? Si eso es lo haces igual a como lo estas haciendo en el primer código solo que seleccionas la tabla nota.

Si no pues pido que expliques un poco mas.
__________________
Por fin vuelvo a tener internet!
http://www.anidandoetiquetas.com/
  #3 (permalink)  
Antiguo 25/01/2009, 11:03
 
Fecha de Ingreso: diciembre-2007
Mensajes: 4
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: insertar varios registros y varios arrays

Si tienes razon, creo que no me di a entender, el problema que no los puedo recuperar los voy a insertar, pq siempre me dice q no deje el campo idNota que es la llave, q no la deje en blanco, osea q no esta recibiendo los valores para poder hacer el insert, no se si ahora me explique
  #4 (permalink)  
Antiguo 25/01/2009, 11:26
Avatar de sweetlydark  
Fecha de Ingreso: septiembre-2008
Mensajes: 391
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: insertar varios registros y varios arrays

Una pregunta has hecho un impresión de tus datos para verificar si lo esta tomando bien? Yo no soy un experto en php pero creo que no esta entendiendo como funciona $_POST[] y los formularios.

No veo ningún elemento de tu formulario como el atributo name=idNota lo cual es necesario para que $_POST['idNota'] tenga un valor. Claro también tienes que asignarle un valor al elemento que tenga el atributo name=idNota recordando que como este es tu llave no pueden repetirse.

Si no tienes ya un modelo o si no necesitas uno para identificarlos, yo usuaria autoincrement como llave ya que así no tienes esto problemas.
__________________
Por fin vuelvo a tener internet!
http://www.anidandoetiquetas.com/
  #5 (permalink)  
Antiguo 25/01/2009, 13:14
 
Fecha de Ingreso: diciembre-2007
Mensajes: 4
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: insertar varios registros y varios arrays

Mira antes que nada, te agradesco por estarme ayudando, aprecio tu tiempo
Mira efectivamente hice un impresion y no me arroja resultado. Aqui el codigo
Código PHP:
for ($x=1$x<=$i$x++)
        {
            ++
$a;
            
$A[$x] = $_POST['A[$x]'];
            
$B[$x] = $_POST['B[$x]'];
            
$select $_POST['select'];
            
$acarnet[$x] = $_POST['acarnet[$x]'];
            echo 
"IdNota: $a <br>Carnet: $acarnet[$x]<br>Nota1: $A[$x]<br>Nota2: $B[1]<br> Materia: $select <br> ------------ <br>";
        } 
A[$x] recogeria el valor de un input text generado en el formulario, pero m lo recog null, aqui esta el resultado
Código:
IdNota: 1
Carnet:
Nota1:
Nota2:
Materia: CCNN
y puse otra otra manera de q me impirma los array, por ejemplo el A[ ] con este codigo
Código PHP:
echo "<pre>";
        
var_dump($A);
        echo 
"</pre>"
y me arroja esto
Código:
array(3) {
  [1]=>
  NULL
  [2]=>
  NULL
  [3]=>
  NULL
}
  #6 (permalink)  
Antiguo 25/01/2009, 13:20
Avatar de sweetlydark  
Fecha de Ingreso: septiembre-2008
Mensajes: 391
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: insertar varios registros y varios arrays

Por ahora te digo que para ser el array que quieres en los inputs de nota haga esto:

name="A[]"

Asimismo con [] vació y automáticamente te hace un array de los valores de todo los inputs llamado A[].

Luego miro lo demás cuando tengo mas tiempo.
__________________
Por fin vuelvo a tener internet!
http://www.anidandoetiquetas.com/
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:43.