Foros del Web » Programando para Internet » PHP »

error al guardar en base de datos

Estas en el tema de error al guardar en base de datos en el foro de PHP en Foros del Web. Hola amigos tengo el siguiente problema al obtener datos de un checkbox dinamico e insertarlo en una tabla de base de datos me arroja en ...
  #1 (permalink)  
Antiguo 19/03/2015, 21:45
 
Fecha de Ingreso: septiembre-2014
Mensajes: 29
Antigüedad: 9 años, 7 meses
Puntos: 0
error al guardar en base de datos

Hola amigos tengo el siguiente problema al obtener datos de un checkbox dinamico e insertarlo en una tabla de base de datos me arroja en vez de nombre alumno "array"

este es el codigo que me extrae del checkbox dinamico con los nombres de los alumnos
en la primera pagina php

echo '<input name="nombre[]" type="checkbox" id="nombre[]" value="'.$row[1].'" checked />'.$row[0]."<br>" ;

y en la pagina de insercion

if(isset($_POST['nombre']) && !empty($_POST['nombre']))
{
$con=mysql_connect($host,$user,$pw) or die ("Problema al conectar");
mysql_select_db($bd,$con) or die ("No se puede conectar a la base de datos");

mysql_query("INSERT INTO asistencia (descripcion) VALUES ('$_POST[nombre]')",$con);

echo "Datos ingresados correctamente";
}else{
echo "Problemas al ingresar Datos";


por favor necesito de su ayuda ....gracias
  #2 (permalink)  
Antiguo 19/03/2015, 22:22
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años
Puntos: 116
Respuesta: error al guardar en base de datos

Para empesar hay 2 instancias de array que no le colocas un index.

echo '<input name="nombre[]" type="checkbox" id="nombre[]" value="'.$row[1].'" checked />'.$row[0]."<br>" ;

La importante es la primera, la del "name".
Como sabes cual es el valor de name? Porque veo que tratas de llamar la variable POST con el nombre de "nombre".

Punto numero 1.
Antes del if coloca un
echo $_POST["name"];

Para ver si te extrae el valor, si no te lo extrae y te da error que la variable no existe, es porque el input que imprimes, no contiene el valor name en tu atributo name=""

Deberias verificar eso, o en su defecto, publica tu codigo en un jsfiddle para poder veerlo acá.
aunque tus errores son basicos.
__________________
Programador jQuery & PHP
  #3 (permalink)  
Antiguo 19/03/2015, 22:43
 
Fecha de Ingreso: septiembre-2014
Mensajes: 29
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: error al guardar en base de datos

hola ZoroRoronoa aqui te dejo el codigo por jsfiddle https://jsfiddle.net/w0fnjjpj/1/
gracias...
  #4 (permalink)  
Antiguo 19/03/2015, 23:21
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años
Puntos: 116
Respuesta: error al guardar en base de datos

Bueno debi suponerlo.

Tu pagina de insercion se llama "chk_asistencia.php"

En tu pagina inicial tienes un input con el nombre
name="name[]"
y en tu pagina de insercion mandas a llamar ese valor mediante POST asi
$_POST['name']


Espero notes la diferencia.

name[] y name.

Para que funcione, los nombres deben ser iguales, es decir.

en el input coloca name="name", elimina esos Corchetes []
__________________
Programador jQuery & PHP
  #5 (permalink)  
Antiguo 19/03/2015, 23:34
 
Fecha de Ingreso: septiembre-2014
Mensajes: 29
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: error al guardar en base de datos

borre los corchetes, pero ahora pe aparece que hubo un error "problema en el ingreso de los datos."..
  #6 (permalink)  
Antiguo 19/03/2015, 23:45
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años
Puntos: 116
Respuesta: error al guardar en base de datos

antes del "if"

if(isset($_POST['nombre']) && !empty($_POST['nombre']))
{

Coloca un

echo $_POST['nombre'];

Para ver, que es lo que te imprime esa variable
__________________
Programador jQuery & PHP
  #7 (permalink)  
Antiguo 19/03/2015, 23:54
 
Fecha de Ingreso: septiembre-2014
Mensajes: 29
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: error al guardar en base de datos

ya lo habia hecho como tu lo dijiste...tal cual y me arroja este mismo error...que ria recalcar que este checkbos lo obtengo de una base de datos, que al aparecer en pantalla aparecen los alumnos con sus chekbox ya tickeados.....nuevamente gracias....se podrá hacer algo mas, igual he leido varios tutoriales, pero nada concreto a esto....
  #8 (permalink)  
Antiguo 20/03/2015, 00:05
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años
Puntos: 116
Respuesta: error al guardar en base de datos

Oye, ando dormido.

$row[0] $row[1]?
Eso está mal.

$result = mysqli_query("SELECT nombre FROM alumno WHERE id_curso='$curso'");
Debe de ser el nombre de tu campo de la tabla es decir $row['nombre']

y sobre el name y el id, debes agregarle un nombre diferente a cada uno, algo asi

Código PHP:
Ver original
  1. $aux = 0;
  2. while ($row = mysqli_fetch_array($result)) {
  3.      
  4. echo "</tr>";
  5. echo '<input  name="nombre_'.$aux.'" type="checkbox" id="nombre_'.$aux.'" value="'.$row["nombre"].'" checked />'.$row["nombre"].'"<br>"';  
  6.  
  7. $aux++;
  8. }
En el HTML esto de imprimira algo asi:
Código PHP:
Ver original
  1. <input  name="nombre_0" type="checkbox" id="nombre_0" value="Juan" checked /> Juan <br>
  2. <input  name="nombre_1" type="checkbox" id="nombre_1" value="Carlos" checked /> Carlos <br>
  3. <input  name="nombre_2" type="checkbox" id="nombre_2" value="John" checked /> John <br>

y con el PHP los extraes asi

$_POST['nombre_0']
$_POST['nombre_1']
$_POST['nombre_2']
etc...

PD: ya me voy a dormir, saludos. Espero te sirva.
__________________
Programador jQuery & PHP

Última edición por ZoroRoronoa; 20/03/2015 a las 00:12
  #9 (permalink)  
Antiguo 20/03/2015, 00:29
 
Fecha de Ingreso: septiembre-2014
Mensajes: 29
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: error al guardar en base de datos

lo puse tal cual me dijiste, pero arroja el mismo error....será necesario hacer un implode para pasar el arreglo a texto plano?...segun lo que leido

$aux=0;
while ($row = mysqli_fetch_array($result)){

echo "</tr>";
echo '<input name="nombre_'.$aux.'" type="checkbox" id="nombre_'.$aux.'" value="'.$row["nombre"].'" checked />'.$row["nombre"]."<br>" ;
$aux++;
}

y la pagina de insercion

?php
include('conexion.php');

echo $_POST["nombre"];
if(isset($_POST['nombre']) && !empty($_POST['nombre']))
{
$con=mysql_connect($host,$user,$pw) or die ("Problema al conectar");
mysql_select_db($bd,$con) or die ("No se puede conectar a la base de datos");

mysql_query("INSERT INTO asistencia(descripcion) VALUES ('$_POST[nombre]')",$con);

echo "Datos ingresados correctamente";
}else{
echo "Problemas al ingresar Datos";
//print_r($_POST['nombre']);

}
?>
  #10 (permalink)  
Antiguo 20/03/2015, 00:33
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años
Puntos: 116
Respuesta: error al guardar en base de datos

Lo que sucede que el dato que se envia mediante POST, no se llama "nombre"

if(isset($_POST['nombre']) && !empty($_POST['nombre']))
{


Si no, que se llaman nombre_0, nombre_1, nombre_2, etc... Son varios datos, depende de la cantidad de nombres que extraes de tu base de datos.

Lo mejor, es que uses otro metodo, o en su defecto crees un input hidden, y con javascript envies un solo valor.

PD: otra cosa, tambien sube screenshots de los errores que te arrojan, cada error es diferente, ayudaria mucho identificar que es lo que esta mal.
__________________
Programador jQuery & PHP
  #11 (permalink)  
Antiguo 20/03/2015, 00:54
 
Fecha de Ingreso: septiembre-2014
Mensajes: 29
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: error al guardar en base de datos

muchas gracias ZoroRoronoa me ayudaste bastante...quede un poco mas claro....
  #12 (permalink)  
Antiguo 20/03/2015, 18:49
 
Fecha de Ingreso: septiembre-2014
Mensajes: 29
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: error al guardar en base de datos

todavia no puedo solucionar mi problema...cuando realizo un print me aparece esto por pantalla

Los nombres seleccionado son:Array ( [0] => [1] => [2] => ) Datos ingresados correctamente
  #13 (permalink)  
Antiguo 20/03/2015, 19:48
 
Fecha de Ingreso: febrero-2015
Mensajes: 61
Antigüedad: 9 años, 1 mes
Puntos: 15
Respuesta: error al guardar en base de datos

hola

Código PHP:
Ver original
  1. mysql_query("INSERT INTO asistencia (descripcion) VALUES ('$_POST[nombre]')",$con);


tu tabla de asistencia QUE DATOS debe almacenar ??

el campo asistencia debe ser una lista de nombres separados con comas ?

o un nombre por fila ?
  #14 (permalink)  
Antiguo 20/03/2015, 21:07
 
Fecha de Ingreso: septiembre-2014
Mensajes: 29
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: error al guardar en base de datos

la tabla asistencia tiene
id_asistencia
rut_inspector
rut_alumno
descripcion

entonces lo que necesito insertar en la tabla descripcion es los nombres de los alumnos obtenidos de un chekbox dinamico...eso ya esta listo...el tema que cuando genero la ejecucion me guarad en la tabla descripcion 0 1 3 , los tres alumnos que seleccione y no el nombre que corresponde
  #15 (permalink)  
Antiguo 20/03/2015, 21:19
 
Fecha de Ingreso: septiembre-2014
Mensajes: 29
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: error al guardar en base de datos

aqui tengo otro codigo que adapte al mio y me funciono en cierta parte

Código PHP:
Ver original
  1. <?php
  2. include('conexion.php');
  3.  
  4.  
  5.  
  6. if (isset($_POST['nombre']) == true) {
  7. echo "Los nombres seleccionado son:";
  8. print_r ($_POST['nombre']);
  9. }
  10. else
  11. {
  12. echo "El nombre no se ha seleccionado.";
  13. }
  14.  
  15.  
  16. //$nombres= array();
  17. //if( !empty($_POST['nombre']) ){
  18. //$nombres[] = ' nombre= "' . implode('" AND nombre = "', $_POST['nombre']) . '"';
  19. if($_POST['nombre'] != "")
  20. {
  21.          if(is_array($_POST['nombre']))
  22.          {
  23.              // realizamos el ciclo
  24.              while(list($id) = each($_POST['nombre']))
  25.             {
  26.  
  27.    
  28.     $con=mysql_connect($host,$user,$pw) or die ("Problema al conectar");
  29.     mysql_select_db($bd,$con) or die ("No se puede conectar a la base de datos");
  30.    
  31.     mysql_query("INSERT INTO asistencia (descripcion) VALUES ('$id')",$con);
  32.    
  33.             }
  34.          }
  35.    
  36. echo "Datos ingresados correctamente";
  37. }else{
  38. echo "Problemas al ingresar Datos";
  39.  
  40. }
  41. ?>

Etiquetas: mysql, select, sql, tabla
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 23:19.