Identificarte

Versión Completa : problema en ingresar registros a mysql (php+clases)


Sponsored links
.




shadow sonic
mayo 29, 2005, 11:25
hola
estoy haciendo un programa en php utilizando clases pero no me resulta la conexion para la base de datos y cuando ingreso los datos en el formulario y luego hago click en registrar me queda la pantalla en blanco y no ingresa registros a la base de datos.
cual puede ser el problema o tengo algun error en el codigo (aunque al ejecutarlo no me da errores)

este es el formulario



<html>
<head><title>Ingresar Asignatura Nueva</title>

<body>


<center>

<BR><BR>
<h1><b>Ingresar Asignatura Nueva</b></h1>
<BR><BR><BR>

<form method="POST" action="clase.php">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="50%">Código:</td>
<td width="50%" align="center"><input size="20" name="codigo"></td>
</tr>
<tr>
<td width="50%">Nombre:</td>
<td width="50%" align="center"><input size="20" name="nombre"></td>
</tr>
<tr>
<td width="50%">Numero Alumnos</td>
<td width="50%" align="center"><input size="20" name="alumnos"></td>
</tr>
</table>

<BR><BR><BR>

<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="50%">
<input type="submit" value="Registrar" name="registrar" ></td>
<td width="50%">
<input type="reset" value="Borrar Formulario" style="float: right" ></td>
</tr>
</table>

</form>


<br><br>
<center><a href=index.html><h3>Volver página principal</h3></a></center>
</head>
</body>
</html>




esta es la clase en php



<?php
class Asignatura_datos
{
var $codigo;
var $nombre;
var $alumnos;
var $registrar;

function ingreso($codigo,$nombre,$alumnos)
{
$this->codigo=$codigo;
$this->nombre=$nombre;
$this->alumnos=$alumnos;

if ($this->codigo=="" and $this->nombre=="" and $this->alumnos=="")
{
echo "<center><b>Debe llenar los campo</center></b>";
}
else
{
if($this->registrar==true)
{
if($this->codigo==true and $this->nombre==true and $this->alumnos==true )
{
mysql_connect("localhost","root","");
mysql_db_query("sase","INSERT INTO asignatura (COD_ASIGNATURA,NOMBRE,CANT_ALUM) values ('$this->codigo','$this->nombre','$this->alumnos')");
mysql_close();
echo "<b><center>Registro ingresado</center></b>";
}
else
{
echo "<b><center>Debe llenar los campos</center></b>";
}
}

}

}}
?>



y aqui creo el objeto y a este archivo llamo despues que ingreso los datos en el formulario.


<?php
include ("Asignatura_datos.php");
$ing=new Asignatura_datos();
$ing->ingreso($codigo,$nombre,$alumnos);
?>



gracias

La_PaRCa
mayo 29, 2005, 11:52
El problema esta en la linea if($registrar==true)

Como esta tu codigo, la variable $registrar nunca va a tener el valor true, asi que nunca va a entrar a la parte del codigo donde efectivamente hace la llamada a la base de datos.

shadow sonic
mayo 30, 2005, 12:47
hola gracias coloque como comentario esta linea if($registrar==true) se soluciono eso ,pero ahora cuando trato de ingresar los valores y hago click en el boton registrar me sale que los registros estan ingresados pero en la base de datos no esta ingresado ,al final del programa coloque "3 echos con las variables" para revisar si las variables tienen los valores cuando los ingreso del formulario y las variables estan con los valores que ingreso desde el formulario pero en la base de datos no,¿
cual puede ser el problema?.
gracias



<?php
class Asignatura_datos
{
var $codigo;
var $nombre;
var $alumnos;
var $registrar;

function ingreso($codigo,$nombre,$alumnos)
{
$this->codigo=$codigo;
$this->nombre=$nombre;
$this->alumnos=$alumnos;

if ($this->codigo=="" and $this->nombre=="" and $this->alumnos=="")
{
echo "<center><b>Debe llenar los campo</center></b>";
}
else
{
//if($this->registrar==true)
// {
if($this->codigo==true and $this->nombre==true and $this->alumnos==true )
{
mysql_connect("localhost","root","");
mysql_db_query("sase","INSERT INTO asignatura (COD_ASIGNATURA,NOMBRE,CANT_ALUM) values ('$this->codigo','$this->nombre','$this->alumnos')");
mysql_close();
echo "<b><center>Registro ingresado</center></b>";
}
else
{
echo "<b><center>Debe llenar los campos</center></b>";
}
// }

}
echo "codigo:",$this->codigo,"<br>";
echo "nombre:",$this->nombre,"<br>";
echo "alumnos:",$this->alumnos,"<br>";
}}
?>

shadow sonic
mayo 30, 2005, 01:06
ya lo solucione

INSERT INTO asignatura (COD_ASIGNATURA,NOMBRE,CANT_ALUM)
en esta linea es CANT_ALUMNO y no CANT_ALUM por eso no me ingresaba los datos

gracias la parca por haberme dicho lo de la linea mala.