Foros del Web » Programando para Internet » PHP »

Ayuda con ingresar datos a la bd!!!!!!!!!!

Estas en el tema de Ayuda con ingresar datos a la bd!!!!!!!!!! en el foro de PHP en Foros del Web. hola que tal estoy un poco urgido... no se como hacer esto.....tengo una tabla notas donde tengo los sgtes campos: id_alumno nombre_asignatura nombre_curso nota_1 nota_2 ...
  #1 (permalink)  
Antiguo 25/11/2009, 22:09
 
Fecha de Ingreso: noviembre-2009
Mensajes: 20
Antigüedad: 14 años, 5 meses
Puntos: 0
Ayuda con ingresar datos a la bd!!!!!!!!!!

hola que tal estoy un poco urgido... no se como hacer esto.....tengo una tabla notas donde tengo los sgtes campos:
id_alumno
nombre_asignatura
nombre_curso
nota_1
nota_2
nota_3
nota_4
tengo el siguiente codigo:

Código PHP:
<?php
    
include("Connections/Escuela.php");
    
//Le asigno el valor del textbox a $Nota
    
$Nota $_POST['nota'];
    
$Rut $_POST['id_alumno'];
    
//Valido si la nota esta fuera de los parametros
    
if($Nota<10||$Nota>70)
        
header("location:Error_Nota.php");
    else
    {
        
//Verifico que la nota sea un numero
        
if($asignatura==''||$id_alumno=='')
            
header("location:Error_Nota.php");
        else
        {
            if(
is_numeric($Nota))
            {    
                
//Selecciono la base de datos a utilizar
                
mysql_select_db($database_Escuela,$Escuela);
                
//Consulto el curso que corresponde el id_alumno
                
$ConsultaCurso=mysql_query("SELECT nombre_curso FROM curso WHERE id_alumno ='$Rut';",$Escuela);  
                
//Verifico si hay datos o no en la bd
                
if(mysql_num_rows($ConsultaCurso)==0)
                {    
                    
// No hay resultados, por tanto el curso no existe  
                    
echo "<script language=JavaScript>alert('El Curso No Esiste');</script>";  

                }
                
//Rescato el nombre del curso de la consulta generada
                
list($nombre_curso) = mysql_fetch_row($ConsultaCurso);        
                
//Ingreso los datos a la bd                        
                
$consulta "INSERT INTO notas (nombre_asignatura, id_alumno, nombre_curso, nota_1) 
                             VALUES ('$asignatura','$Rut','$nombre_curso','$Nota')"
;  
                
//Se almacenan los datos
                
$resultado mysql_query($consulta$Escuela);
                
header("location:NotaSubida.php");
            }
        }
    }
    
mysql_free_result($resultado); 
    
mysql_close("Connections/Escuela.php"); 
?>
hasta ahi funciona perfect....lo que quiero hacer es que si el alumno con la asignatura correspondiente existe grabe la nota en nota_2 en caso de que nota_1 estuviese ocupada y asi sucesivamente.actualmente lo guarda de la sgte manera:

id_alumno nombre_asignatura nombre_curso nota_1 nota_2 nota_3 nota_4
15580632-k Historia Primero Básico 34 0 0 0
15580632-k Historia Primero Básico 22 0 0 0

y lo ideal que quedara asi:
id_alumno nombre_asignatura nombre_curso nota_1 nota_2 nota_3 nota_4
15580632-k Historia Primero Básico 34 22 0 0

lo malo es que no se trabajar con arreglos....ojala me puedan ayudar
  #2 (permalink)  
Antiguo 25/11/2009, 22:15
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Ayuda con ingresar datos a la bd!!!!!!!!!!

Bueno con un INSERT agregas un nuevo registro a la base de datos, pero con UPDATE puedes modificar uno de los datos, por ejemplo ese 0 a 22, te pongo un ejemplo usando tu tabla:

UPDATE notas SET nota_2=22 where id_alumno=1


Entonces lo que tienes que hacer es controlar con algunas lineas PHP el $_POST['id_alumno'] corresponde a:

1. Un nuevo alumno (hacemos el insert tal como tienes)
2. Alumno existente con 1 sola nota (hacemos update de nota_2)
3. Alumno existente con 2 notas (hacemos update de nota_3)
4. Alumno existente con 3 notas (hacemos update de nota_4)
5. Alumno con 4 horas (mostramos mensaje de error ya que dicho alumno ya tiene las 4 notas)


Me suscribo a este tema por si tienes mas dudas, saludos
  #3 (permalink)  
Antiguo 25/11/2009, 22:19
 
Fecha de Ingreso: noviembre-2009
Mensajes: 20
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda con ingresar datos a la bd!!!!!!!!!!

oka gracias voy a probar haber que resulta
  #4 (permalink)  
Antiguo 26/11/2009, 00:00
 
Fecha de Ingreso: noviembre-2009
Mensajes: 20
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda con ingresar datos a la bd!!!!!!!!!!

Cita:
Iniciado por Vun Ver Mensaje
ahi trate de acomodarlo a mi codigo....si el id_alumno no esta dentro de la tabla lo ingresa con la nota_1, al ingresar al mismo id_alumno con su asignatura correspondiente ingresa la nota_2 pero llego hasta ahi ...kisas tengo un error en los if ....aca dejo el codigo...
Código PHP:
<?php
    
include("Connections/Escuela.php");
    
//Le asigno el valor del textbox a $Nota
    
$Nota $_POST['nota'];
    
$Rut $_POST['id_alumno'];
    
$Asignatura $_POST['asignatura'];
    
//Valido si la nota esta fuera de los parametros
    
if($Nota<10||$Nota>70)
        
header("location:Error_Nota.php");
    else
    {
        
//Verifico que la nota sea un numero
        
if($asignatura==''||$id_alumno=='')
            
header("location:Error_Nota.php");
        else
        {
            if(
is_numeric($Nota))
            {    
                
//Selecciono la base de datos a utilizar
                
mysql_select_db($database_Escuela,$Escuela);
                
//Verificamos si la nota_1 esta ocupada
                
$ConsultaNota=mysql_query("SELECT nota_1 FROM notas 
                                            WHERE id_alumno ='$Rut' and nombre_asignatura='$Asignatura';"
,$Escuela);  
                
//Ingreso los datos a la bd                        
                
if(mysql_num_rows($ConsultaNota)==0)
                {
                    
$consulta "INSERT INTO notas (nombre_asignatura,id_alumno,nota_1) 
                                 VALUES ('$asignatura','$Rut','$Nota')"
;  
                    
//Se almacenan los datos
                    
$resultado mysql_query($consulta$Escuela);
                    
header("location:NotaSubida.php");
                }
                
//Indica que la nota_1 esta ocupada
                
else
                {
                    
$ConsultaNota2=mysql_query("SELECT nota_1 FROM notas 
                                                WHERE id_alumno ='$Rut' and nombre_asignatura='$Asignatura';"
,$Escuela);  
                    
//Compruebo si la nota_2 esta ocupada
                    
if($ConsultaNota2=!'')
                    {
                        
//Ingreso los datos a la nota_2
                        
$consulta ="UPDATE notas SET nota_2='$Nota' ";
                        
//Se almacenan los datos
                        
$resultado mysql_query($consulta$Escuela);
                        
header("location:NotaSubida.php");
                    }
                    
//Indica que nota_2 esta ocupada
                    
else
                    {
                        
//Verifico si la nota_3 esta ocupada
                        
$ConsultaNota3=mysql_query("SELECT nota_1, nota_2 FROM notas 
                                                WHERE id_alumno ='$Rut' and nombre_asignatura='$Asignatura';"
,$Escuela);  
                        if(
$ConsultaNota3!='')
                        {
                            
//Ingreso los datos a la nota_3
                            
$consulta ="UPDATE notas SET nota_3='$Nota' ";
                            
//Se almacenan los datos
                            
$resultado mysql_query($consulta$Escuela);
                            
header("location:NotaSubida.php");
                        }
                        
//Indica que la nota_3 esta ocupada
                        
else
                        {
                            
//Verifico si la nota_4 esta ocupada
                            
$ConsultaNota4=mysql_query("SELECT nota_1,nota_2,nota_3 FROM notas 
                                                        WHERE id_alumno ='$Rut' and nombre_asignatura='$Asignatura';"
,$Escuela);  
                            if(
$ConsultaNota4!='')
                            {
                                
//Ingreso los datos a la nota_4
                                
$consulta ="UPDATE notas SET nota_4='$Nota' 
                                            WHERE id_alumno='$Rut' and nombre_asignatura='$Asignatura'"
;
                                
//Se almacenan los datos
                                
$resultado mysql_query($consulta$Escuela);
                                
header("location:NotaSubida.php");
                            }
                            else
                            {
                                
//Indica que los campos estan llenos
                                
header("location:Error_Ingreso.php");
                            }
                        }
                    }
                }
            }
        }
    }
    
mysql_free_result($resultado); 
    
mysql_close("Connections/Escuela.php"); 
?>
  #5 (permalink)  
Antiguo 26/11/2009, 00:30
 
Fecha de Ingreso: diciembre-2007
Mensajes: 50
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Ayuda con ingresar datos a la bd!!!!!!!!!!

Gaushito, como lo pintas me imagino q solo se registra una nota a la vez, bueno si es ese el caso antes de actualizar primero debes saber que nota fue la ultima ingresada, esto lo puedes saber con una consulta:

Código PHP:
// preguntando en orden si el campo es nulo devuelo el nombre del campo
// en caso las 4 notas esten llenas devolvemos "notas completas"
$sql="select if(isnull(nota_1), 'nota_1', if(isnull(nota_2), 'nota_2', if(isnull(nota_3), 'nota_3', if(isnull(nota_4), 'nota_4', 'notas completas')))) as campo 
      from notas 
      where id_alumno='$Rut' 
      and nombre_curso ='$nombre_curso' 
      and nombre_asignatura ='$asignatura'"
;
$result=mysql_query($sql$Escuela); 
 
//ya se realizo un registro hay q actualizarlo
if (mysql_fetch_row($result)>0):
    
$rs=mysql_fetch_array($result);
    
$campo=$rs['campo']; //obtenemos el campo a actualizar
    
if($campo!="notas completas"): // validamos que las 4 notas aun no esten ingresadas
        
$sql="update notas set $campo=$Nota 
              where id_alumno='$Rut' and nombre_curso ='$nombre_curso' 
              and nombre_asignatura ='$asignatura'"
;
    endif;
else: 
// si no hay registro hacemos un insert
    
$sql="insert into notas (nombre_asignatura,id_alumno,nota_1) values 
         ('$asignatura','$Rut','$nombre_curso','$Nota')"
;
endif;
$result mysql_query($sql$Escuela); 
Para ello tu tabla notas deberia estar diseñada para almacenar valores nulos, pues si tuviera la restriccion de not null, este almacenaria en los campos nota_1, nota_2, nota_3 y nota_4 el valor por defecto de 0 y el isnull no funcionaria, si bien puedes preguntar por si la es cero esto no te dejaria avanzar para el caso en q el alumno realmente tenga cero. espero te sirva de ayuda este codigo, en realidad no lo he probado pero debe de funcionar. Cualquier cosa como es costumbre en este foro no dudes en publicarla.


Salu2,
K-suma
  #6 (permalink)  
Antiguo 26/11/2009, 19:57
 
Fecha de Ingreso: noviembre-2009
Mensajes: 20
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda con ingresar datos a la bd!!!!!!!!!!

hola nuevamente trate de hacerlo como el caso anterior y no me funco....de la forma ke tengo el codigo ahora funciona hasta ingresar la nota_ 2 al querer ingresar la nota 3 me modifica la nota_2...creo que puede ser algun problema con los if.....aca les dejo el codigo
Código PHP:
<?php
    
include("Connections/Escuela.php");
    
//Le asigno el valor del textbox a $Nota
    
$Nota $_POST['nota'];
    
$Rut $_POST['id_alumno'];
    
$Asignatura $_POST['asignatura'];
    
//Valido si la nota esta fuera de los parametros
    
if($Nota<10||$Nota>70)
        
header("location:Error_Nota.php");
    else
    {
        
//Verifico que la nota sea un numero
        
if($asignatura==''||$id_alumno=='')
            
header("location:Error_Nota.php");
        else
        {
            if(
is_numeric($Nota))
            {    
                
//Selecciono la base de datos a utilizar
                
mysql_select_db($database_Escuela,$Escuela);
                
//Verificamos si la nota_1 esta ocupada
                
$ConsultaNota=mysql_query("SELECT nota_1 FROM notas 
                                            WHERE id_alumno ='$Rut' and nombre_asignatura='$Asignatura';"
,$Escuela);  
                
//Ingreso los datos a la bd                        
                
if(mysql_num_rows($ConsultaNota)==0)
                {
                    
$consulta "INSERT INTO notas (nombre_asignatura,id_alumno,nota_1) 
                                 VALUES ('$asignatura','$Rut','$Nota')"
;  
                    
//Se almacenan los datos
                    
$resultado mysql_query($consulta$Escuela);
                    
header("location:NotaSubida.php");
                }
                
//Indica que la nota_1 esta ocupada
                
else
                {
                    
$ConsultaNota2=mysql_query("SELECT nota_2 FROM notas 
                                                WHERE id_alumno ='$Rut' and nombre_asignatura='$Asignatura';"
,$Escuela);  
                    
//Compruebo si la nota_2 esta ocupada
                    
if($ConsultaNota2!='0')
                    {
                        
//Ingreso los datos a la nota_2
                        
$consulta ="UPDATE notas SET nota_2='$Nota'";
                        
//Se almacenan los datos
                        
$resultado mysql_query($consulta$Escuela);
                        
header("location:NotaSubida.php");
                    }
                    
//Indica que nota_2 esta ocupada
                    
else
                    {
                        
//Verifico si la nota_3 esta ocupada
                        
$ConsultaNota3=mysql_query("SELECT nota_3 FROM notas 
                                                WHERE id_alumno ='$Rut' and nombre_asignatura='$Asignatura';"
,$Escuela);  
                        if(
$ConsultaNota3!='0')
                        {    
                            
//Ingreso los datos a la nota_2
                            
$consulta ="UPDATE notas SET nota_3='$Notas'";
                            
//Se almacenan los datos
                            
$resultado mysql_query($consulta$Escuela);
                            
header("location:NotaSubida.php");
                        }
                        
//Indica que la nota_3 esta ocupada
                        
else
                        {
                            
//Verifico si la nota_4 esta ocupada
                            
$ConsultaNota4=mysql_query("SELECT nota_4 FROM notas 
                                                        WHERE id_alumno ='$Rut' and nombre_asignatura='$Asignatura';"
,$Escuela);  
                            if(
$ConsultaNota4==NULL)
                            {
                                
//Ingreso los datos a la nota_4
                                
$consulta ="INSERT INTO notas nota_3 VALUES('$Nota')";
                                
//Se almacenan los datos
                                
$resultado mysql_query($consulta$Escuela);
                                
header("location:NotaSubida.php");
                            }
                            else
                            {
                                
//Indica que los campos estan llenos
                                
header("location:Error_Ingreso.php");
                            }
                        }
                    }
                }
            }
        }
    }
//    mysql_free_result($resultado); 
    //mysql_close("Connections/Escuela.php"); 
?>
  #7 (permalink)  
Antiguo 28/11/2009, 21:15
 
Fecha de Ingreso: diciembre-2007
Mensajes: 50
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Ayuda con ingresar datos a la bd!!!!!!!!!!

sorry Gaushito, tube fuera de la red un dia, como te fue tema cerrado?
  #8 (permalink)  
Antiguo 30/11/2009, 21:56
 
Fecha de Ingreso: noviembre-2009
Mensajes: 20
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda con ingresar datos a la bd!!!!!!!!!!

Cita:
Iniciado por K-SuMa Ver Mensaje
sorry Gaushito, tube fuera de la red un dia, como te fue tema cerrado?
no realmente....solo logro llegar a ingresar hasta la nota_2 al ingresar la tercera nota me reemplaza la nota_2...por algun motivo no esta pasando al siguiente if...
esto es lo ultimo que tengo
Código PHP:
...
//Selecciono la base de datos a utilizar
                
mysql_select_db($database_Escuela,$Escuela);
                
//Verificamos si la nota_1 esta ocupada
                
$ConsultaNota=mysql_query("SELECT nota_1, nota_2,nota_3,nota_4 FROM notas 
                                            WHERE id_alumno ='$Rut' and nombre_asignatura='$Asignatura';"
,$Escuela); 
                
//Ingreso los datos a la bd                        
                
if(mysql_num_rows($ConsultaNota)==0)
                {
                    
$consulta "INSERT INTO notas (nombre_asignatura,id_alumno,nota_1) 
                                 VALUES ('$asignatura','$Rut','$Nota')"
;  
                    
//Se almacenan los datos
                    
$resultado mysql_query($consulta$Escuela);
                    
header("location:NotaSubida.php");
                }
                
//Indica que la nota_1 esta ocupada
                
else
                {
                    
//Compruebo si la nota_2 esta ocupada
                    
if($ConsultaNota["nota_2"]=='')
                    {
                        
//Ingreso los datos a la nota_2
                        
$consulta ="UPDATE notas SET nota_2='$Nota' WHERE id_alumno ='$Rut' and nombre_asignatura='$Asignatura';";  
                        
//Se almacenan los datos
                        
$resultado mysql_query($consulta$Escuela);
                        
header("location:NotaSubida.php");
                    }
                    else
                    
//Indica que nota_2 esta ocupada
                    
{
                        
//Verifico si la nota_3 esta ocupada
                        
if($ConsultaNota["nota_3"]=='')
                        {    
                            
//Ingreso los datos a la nota_2
                            
$consulta ="UPDATE notas SET nota_3='$Nota' WHERE id_alumno ='$Rut' and nombre_asignatura='$Asignatura';";  
                            
//Se almacenan los datos
                            
$resultado mysql_query($consulta$Escuela);
                            
header("location:NotaSubida.php");
                        }
                        
//Indica que la nota_3 esta ocupada
                        
else
                        {
                            
//Verifico si la nota_4 esta ocupada
                            
if($ConsultaNota["nota_4"]=='')
                            {
                                
//Ingreso los datos a la nota_4
                                
$consulta ="UPDATE notas SET nota_4='$Nota' WHERE id_alumno ='$Rut' and nombre_asignatura='$Asignatura';";  
                                
//Se almacenan los datos
                                
$resultado mysql_query($consulta$Escuela);
                                
header("location:NotaSubida.php");
                            }
                            else
                            {
                                
//Indica que los campos estan llenos
                                
header("location:Error_Ingreso.php");
                            }
                        }
                    }
                }
... 
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 07:57.