Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Insertar datos de formulario dinamico de Java/PHP en MySQL

Estas en el tema de Insertar datos de formulario dinamico de Java/PHP en MySQL en el foro de PHP en Foros del Web. Hola por favor necesito ayuda, soy novato en esto y estoy creando una pagina web que requiere registrase y enviar documentos (www.jounalcic.com). Estoy creando un ...
  #1 (permalink)  
Antiguo 28/10/2013, 17:37
 
Fecha de Ingreso: octubre-2013
Mensajes: 4
Antigüedad: 10 años, 5 meses
Puntos: 0
Insertar datos de formulario dinamico de Java/PHP en MySQL

Hola por favor necesito ayuda, soy novato en esto y estoy creando una pagina web que requiere registrase y enviar documentos (www.jounalcic.com). Estoy creando un formulario dinámico para agregar autores a un trabajo según haga falta, pero no consigo insertar los datos en MySQL. He leído mil foros e intentado de mil maneras pero simplemente no se insertan!! Alguna idea?? Ahí va el código, muchas gracias!!

Código PHP:
<script type="text/javascript" language="javascript">// <![CDATA[

var posicionCampo 1;


function 
agregarUsuario() {

    
nuevaFila document.getElementById("tablaUsuarios").insertRow(-1);

    
nuevaFila.id posicionCampo;

    
nuevaCelda nuevaFila.insertCell(-1);

    
nuevaCelda.innerHTML "<td><input type='text' size='15' name='nombre[" posicionCampo "]'></td>";

    
nuevaCelda nuevaFila.insertCell(-1);

    
nuevaCelda.innerHTML "<td><input type='text' size='10' name='web[" posicionCampo "]'></td>";

    
nuevaCelda nuevaFila.insertCell(-1);

    
nuevaCelda.innerHTML "<td><input type='text' size='10' name='correo[" posicionCampo "]'></td>";

    
nuevaCelda nuevaFila.insertCell(-1);

    
nuevaCelda.innerHTML "<td><input type='button' value='Eliminar' onclick='eliminarUsuario(this)'></td>";

    
posicionCampo++;

}


function 
eliminarUsuario(obj) {

    var 
oTr obj;

    while(
oTr.nodeName.toLowerCase() != 'tr') {

        
oTr=oTr.parentNode;

    }

    var 
root oTr.parentNode;

    
root.removeChild(oTr);

}

</script> 
Código PHP:
     <form action="Untitled-10.php" method="post"><table id="tablaUsuarios">
        <
tbody>
         <
tr>
                <
td align="left"><input onclick="agregarUsuario()" type="button" value="Agregar usuario"></td>
            </
tr>
            <
tr>
                <
td width="176">Nombre</td>
                <
td width="149">Sitio Web</td>
                <
td width="125">Correo Electrónico</td>
            </
tr>
        </
tbody>
    </
table>
    <
input type="submit" value="Send" /> 
    </
form
Este es el Untitled-10.php

Código PHP:
<?php
 
$nombre
= array();
$correo= array();
$web= array();
 
foreach(
$_POST['nombre'] as $key=>$value)
    
$nombre[]= $value;
 
foreach(
$_POST['correo'] as $key=>$value)
    
$correo[]= $value;
 
foreach(
$_POST['web'] as $key=>$value)
    
$web[]= $value;
 
$conexionmysql_connect("localhost""root""");
mysql_select_db("usuarios"$conexionJCIC);
 
for(
$i=0$i<count($nombre); $i++) 
{
   
mysql_query("INSERT INTO usuarios (nombre, correo, web) VALUES($nombre[$i], '$correo[$i]', $web[$i])",$conexionJCIC)or die(mysql_error());
}
 
?>
  #2 (permalink)  
Antiguo 28/10/2013, 18:21
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Insertar datos de formulario dinamico de Java/PHP en MySQL

Obtienes algún mensaje de error?

Antes de cualquier cosa, revisa lo que estás obteniendo en $_POST con:

var_dump($_POST);
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 29/10/2013, 04:42
 
Fecha de Ingreso: octubre-2013
Mensajes: 4
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Insertar datos de formulario dinamico de Java/PHP en MySQL

Hola gracias por tu respuesta. No me muestra ningún error. Esta es la consulta:

Código PHP:
Ver original
  1. array (size=3)
  2.   'nombre' =>
  3.     array (size=3)
  4.       1 => string 'Carlos' (length=6)
  5.       2 => string 'Esteban' (length=7)
  6.       3 => string 'Jose' (length=4)
  7.   'web' =>
  8.     array (size=3)
  9.       1 => string 'carlos.com' (length=10)
  10.       2 => string 'esteban.com' (length=11)
  11.       3 => string 'jose.com' (length=8)
  12.   'correo' =>
  13.     array (size=3)
  14.       1 => string '[email protected]' (length=17)
  15.       2 => string '[email protected]' (length=19)
  16.       3 => string '[email protected]' (length=13)

Sigo intentando pero nada!
  #4 (permalink)  
Antiguo 29/10/2013, 08:00
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Insertar datos de formulario dinamico de Java/PHP en MySQL

Ya te fijaste en los índices del array?, van del 1 al 3, sin embargo, tu for inicia desde cero y si configuras PHP para mostrar todos los errores, seguramente verás algún mensaje de índice no definido (undefined index)

Por ahora es lo único que veo mal... bueno, aparte de que estás usando mysql_* en lugar de mysqli_* o PDO y que no estás escapando los datos antes de usarlos en la consulta.

Lee esto: http://www.forosdelweb.com/f18/aport...8/#post4265377
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 29/10/2013, 08:29
 
Fecha de Ingreso: octubre-2013
Mensajes: 4
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Insertar datos de formulario dinamico de Java/PHP en MySQL

Hola, muchas gracias por tu ayuda, cambie ligeramente el codigo del For como me dijiste pero no funciona.

Código PHP:
Ver original
  1. <?php
  2.  
  3. $nombre= array();
  4. $correo= array();
  5. $web= array();
  6.  
  7. foreach($_POST['nombre'] as $key=>$value)
  8.     $nombre[]= $value;
  9.  
  10. foreach($_POST['correo'] as $key=>$value)
  11.     $correo[]= $value;
  12.  
  13. foreach($_POST['web'] as $key=>$value)
  14.     $web[]= $value;
  15.  
  16. $conexion= mysql_connect("localhost", "root", "");
  17. mysql_select_db("test", $conexion);
  18.  
  19. for($i=1; $i<count($nombre); $i++)
  20. {
  21.    mysql_query("INSERT INTO usuarios (nombre, correo, web) VALUES($nombre[$i], $correo[$i], $web[$i])",$conexion)or die(mysql_error());
  22. }
  23.  ?>

Ahora a parece un error.:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@esteban.com, esteban.com)' at line 1"
No se a que hace referencia porque en la linea 1 no hay nada. Lo del mysqli_ lo leí en el foro, pero supera ampliamente mis conocimientos. Ya no se que hacer, gracias!
  #6 (permalink)  
Antiguo 29/10/2013, 09:15
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Insertar datos de formulario dinamico de Java/PHP en MySQL

El error no es de PHP, sino de MySQL, porque no estás poniendo comillas en los campos, tu consulta debería ser más o menos así:

Código PHP:
Ver original
  1. mysql_query("INSERT INTO usuarios (nombre, correo, web) VALUES('{$nombre[$i]}', '{$correo[$i]}', '{$web[$i]}')",$conexion)or die(mysql_error());

Si tienes dudas de porque las llaves revisa: http://www.forosdelweb.com/f18/como-...s-bien-588701/
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 29/10/2013, 18:21
 
Fecha de Ingreso: octubre-2013
Mensajes: 4
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Insertar datos de formulario dinamico de Java/PHP en MySQL

Hola muchas gracias!! Funciona perfecto!! Crea cada uno de los arrays en un nueva fila!! Ahí va el código funcionando:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $nombre= array();
  4. $correo= array();
  5. $web= array();
  6.  
  7. foreach($_POST['nombre'] as $key=>$value)
  8.     $nombre[]= $value;
  9.  
  10. foreach($_POST['correo'] as $key=>$value)
  11.     $correo[]= $value;
  12.  
  13. foreach($_POST['web'] as $key=>$value)
  14.     $web[]= $value;
  15.  
  16. $conexion= mysql_connect("localhost", "root", "");
  17. mysql_select_db("test", $conexion);
  18.  
  19. for($i=0; $i<count($nombre); $i++)
  20. {
  21.    mysql_query("INSERT INTO usuarios (nombre, correo, web) VALUES('$nombre[$i]', '$correo[$i]', '$web[$i]')",$conexion)or die(mysql_error());
  22. }
  23.  ?>

En el for($i=0; $i<count($nombre); $i++), el $i lo deje igual a "0", porque si le daba $i=1, no insertaba la primera fila.

Como quería todas las entradas en la misma fila (columna1=todos los nombres, columna2=todos los correos, etc), utilice la función serialize(). Con esto codifique los arrays y los guarde por columnas en la misma fila. Les dejo el código funcionando por si alguien lo necesita:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $nombre= array();
  4. $correo= array();
  5. $web= array();
  6.  
  7. foreach($_POST['nombre'] as $key=>$value)
  8.     $nombre[]= $value;
  9.  
  10. foreach($_POST['correo'] as $key=>$value)
  11.     $correo[]= $value;
  12.  
  13. foreach($_POST['web'] as $key=>$value)
  14.     $web[]= $value;
  15.    
  16. $serialize_nombre= serialize($nombre);
  17. $serialize_correo= serialize($correo);
  18. $serialize_web= serialize($web);
  19.  
  20. $conexion= mysql_connect("localhost", "root", "");
  21. mysql_select_db("test", $conexion);
  22.  
  23. mysql_query("INSERT INTO usuarios (nombre, correo, web) VALUES('$serialize_nombre', '$serialize_correo', '$serialize_web')",$conexion)or die(mysql_error());
  24.  ?>

Muchas gracias Triby!! Eres un genio!!

Etiquetas: dinamico, formulario, html, mysql, select, sql, tabla, usuarios
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 05:18.