Identificarte

Versión Completa : problema con metodos+php


Sponsored links
.




shadow sonic
junio 8, 2005, 11:40
hola
el problema que tengo es con el metodo modificar y eliminar

cuando quiero eliminar una asignatura me las borra todas las que tengan el mismo nombre pero ahi esta el problema ,porque yo quiero que me las borre por codigo pero eso no me resulta ,como lo puedo hacer para borrar solo una asignatura que este asociada a un codigo y aunque se repita el nombre con otra no las borre todas

por ejemplo

codigo nombre asignatura
113 programacion
115 programacion

por ejemplo si quiero que borre solo programacion que tiene el codigo 113 como lo puedo hacer para que no me borre programacion que tiene el codigo 115.

y el problema que tengo con el metodo modificar es que cuando intento modificar el nombre de una asignatura siempre me sale el mensaje
"debe ingresar al menos un dato"
y no entra a la parte modificar (es en la parte donde creo el objeto)

if ($nombre!="Seleccione")
{
if ($nombre1=="")
{
echo "debe ingresar al menos un dato";
}


ejemplo

codigo nombre asignatura
113 programacion
115 programacion

esto deberia hacer mi modificar ,por ejemplo si quiero cambiarle el nombre a programacion que tiene el codigo 113 y dejarlo como programacion2

y deberia quedar asi

codigo nombre asignatura
113 programacion2
115 programacion


¿donde me estare equivocando y como puedo solucionarlo?
y lo otro en php abra una funcion con la cual se pueda pasar una variable tipo char a decimal.
(pd:como se hace en c con la funcion atoi la cual sirve para pasar char a entero)
(pd1:en la libreria que hice para conectarme no esta el problema porque el metodo ingresar y consultar me funcionan sin problema y en otras tablas me funciona bien ,por lo mismo yo creo que en alguna parte del codigo que muestro esta mi problema)

si me pueden ayudar
muchas gracias

mi tabla se llama
ASIGNATURA
el campo de codigo se llama COD_ASIGNATURA (decimal 3,0)
el campo de nombre se llama NOMBRE (char 20)



clase asignatura
donde esta el include es una libreria de conexion que hice al igual que la libreria html ,donde la hice para crear mas rapido los formulario

<?php
include ("Utils\\Clase_Coneccion_Mysql.php");
include ("Utils\\html.php");
class Asignaturas
{
var $codigo;
var $nombre_asig;
var $result;
var $cont;
var $row;
function Asignaturas()
{
$this->codigo=$codigo;
$this->nombre_asig=$nombre_asig;
}


function Modificar($acto,$nombre_asig)
{
$this->codigo=$codigo;
$this->nombre_asig=$nombre_asig;
$miconexion = new DB_mysql;
encabezado("Resultado de la busqueda");
fila_inicio();
celda_inicio("","","center","top");
switch($acto)
{
case "NOMBRE_ASIGNATURA":
//$consulta="update asignatura set nombre_asig='$this->nombre_asig' where COD_ASIGNATURA='$this->codigo'";

$consulta="update asignatura set nombre_asig='$this->nombre_asig' where nombre like '$this->nombre_asig'";
if ($miconexion->consulta($consulta));
{
echo "<b>Nombre Actualizado correctamente</b>";
}
break;
default:
echo "<B>Se ha producido un error</b>";
break;
}
celda_fin();
fila_fin();
//cambiar el javascript:history.back(1) por el link ke korreponde
pie_pagina("javascript:history.back(1)","volver");
//$miconexion->liberar();
}


function Eliminar($nombre_asig)
{
$this->nombre_asig=$nombre_asig;
$this->codigo=$codigo;
$consulta="delete from asignatura where nombre like '$this->nombre_asig'";
// $consulta="delete from asignatura where COD_ASIGNATURA='$this->codigo'";
$miconexion = new DB_mysql;
encabezado("Resultado de la accion");
fila_inicio();
celda_inicio("","","center","top");
if($miconexion->consulta($consulta));
{
echo "<b>Registro eliminado satisfactoriamente</b>";
}
celda_fin();
fila_fin();
//cambiar el javascript:history.back(1) por el link ke korreponde
pie_pagina("javascript:history.back(1)","volver");
// $miconexion->liberar();
}



}
?>



aqui utilizo la libreria html

<?php
include ("Utils\\html.php");
include ("Utils\\Clase_Coneccion_Mysql.php");


function crea_Modificar()
{
encabezado("Modificar Asignatura");
formulario_inicio("Objeto_Asignatura.php?accion=Modificar");
$miconexion = new DB_mysql;
$consulta="Select NOMBRE as Nombres From ASIGNATURA ";
$miconexion->consulta($consulta);
tabla_inicio();
fila_inicio();
celda_inicio(70,50,"left","middle");
echo "<b>Asignatura: </b>";
celda_fin();
celda_inicio(70,50,"left","middle");
echo "<select name='nombre'>";
echo "<option>Seleccione</option>";
while($row = $miconexion->registros())
{
echo "\n<option>".$row["Nombres"]."</option>";
}
echo "\n</select>";
celda_fin();
fila_fin();
// $miconexion->liberar();


fila_inicio();
celda_inicio(10,100,"left","middle");
echo "<B>Nombre: </B>";
celda_fin();
celda_inicio(10,100,"center","middle");
echo "<input size=\"20\" name=\"nombre1\">";
celda_fin();
fila_fin();
fila_inicio();
celda_inicio(100,100,"center","middle");
botones("Submit","modificar","modificar");
celda_fin();
celda_inicio(100,100,"center","middle");
botones("Reset","Borrar Formulario","Borrar Formulario");
celda_fin();
fila_fin();
tabla_fin();
formulario_fin();
pie_pagina("javascript:history.back(1)","Volver");
}



function Crea_Eliminar()
{
encabezado("Eliminar Asignatura");
formulario_inicio("Objeto_Asignatura.php?accion=Eliminar");
$miconexion = new DB_mysql;
$consulta="select nombre as Nombres from asignatura order by nombre";
$miconexion->consulta($consulta);
tabla_inicio();
fila_inicio();
celda_inicio(70,50,"left","middle");
echo "<b>Asignatura: </b>";
celda_fin();
celda_inicio(70,50,"left","middle");
echo "<select name='nombre'>";
echo "<option>Seleccione</option>";
while($row = $miconexion->registros())
{
echo "\n<option>".$row["Nombres"]."</option>";
}
echo "\n</select>";
celda_fin();
fila_fin();
tabla_fin();
//$miconexion->liberar();
tabla_inicio();
fila_inicio();
celda_inicio(100,100,"center","middle");
botones("Submit","eliminar","eliminar");
celda_fin();
celda_inicio(100,100,"center","middle");
botones("Reset","Borrar Formulario","Borrar Formulario");
celda_fin();
fila_fin();
tabla_fin();
formulario_fin();
pie_pagina("javascript:history.back(1)","Volver","Volver");
}







case "Modificar_Asignatura":
Crea_Modificar();
break;
case "Eliminar_Asignatura":
Crea_Eliminar();
break;
default:
echo "ERROR ";
break;
}

?>


aqui creo el objeto de la clase asignatura ingresar,modificar,eliminar y consultar

<?php
include ("Utils\\nombres_apellidos.php");
include ("Clase_asignatura.php");
$asignatura=new Asignaturas();

case "Modificar":
/* if ($nombre_asig=="")
{
echo "debe ingresar un nombre";
}
else
{
$nombre_asig=$nombre;
if ($nombre_asig)
{
$asignatura->Modificar("NOMBRE_ASIGNATURA",$nombre_asig);
}
} */

// sin_espacios($nombre_asig);
if ($nombre!="Seleccione")
{
if ($nombre1=="")
{
echo "debe ingresar al menos un dato";
}
else
{
sin_espacios($nombre);
$nombres=$nombre;
if ($nombre1!="")
{
$asignatura->Modificar("NOMBRE_ASIGNATURA",$nombres,$nombre1);
}
}}


break;

case "Eliminar":
sin_espacios($nombre);
if ($nombre!="Seleccione")
{
$nombre_asig=$nombre;
$asignatura->Eliminar($nombre_asig);
}
else
{
echo "debe seleccionar una asignatura";
}
break;
default :
echo "Error No se a especificado una accion ";
echo $accion;
break;
}


?>

arthvrian
junio 9, 2005, 10:40
<?php
function MODIFICAR($cod_asig, $nomb_asig, $option) //cambia el nombre de una asignatura en especifico
{
$this->cod = $cod_asig;
$this->nombre = $nomb_asig;
$this->option = $option;
switch ($this->option)
{
case "1": //modificar nombre
case "2" // modificar codigo
}
}
function ELIMINAR($cod_asig, $nomb_asig,$option) // borra una asuiognatura en especifico
{
$this->cod = $cod_asig;
$this->nombre = $nomb_asig;
$this->option = $option;
switch ($this->option)
{
case "1": //eliminar por nombre
case "2" // eliminar por codigo
}
}


obviamente $option debe ser numerico

el problema principal esta aqui:

echo "<select name='nombre'>";
echo "<option>Seleccione</option>";
while($row = $miconexion->registros())
{
echo "\n<option>".$row["Nombres"]."</option>";
}
echo "\n</select>";

reemplazalo por

echo "<select name='nombre'>";
echo "<option>Seleccione</option>";
while($row = $miconexion->registros())
{

echo "\n<option value=".$row['cod_asignatura'].">".$row["Nombres"]."</option>";
}
echo "\n</select>";
bueno pues eso fue lo que entendi
CERO y van TRES o CUATRO http://imagenes.laneros.com/smilies/smiley%20-%20silly.gifhttp://imagenes.laneros.com/smilies/smiley%20-%20silly.gif
me va a tocar cobrarte por la asesoria http://imagenes.laneros.com/smilies/smiley%20-%20silly.gifhttp://imagenes.laneros.com/smilies/smiley%20-%20silly.gifhttp://imagenes.laneros.com/smilies/smiley%20-%20silly.gif

saludos y suerte

shadow sonic
junio 9, 2005, 09:41
muchas gracias arthvrian con eso ya pude solucionarlo :P

cuando este trabajando te pago por la asesoria jajaja :P, por ahora soy solo un estudiante :-p

arthvrian
junio 9, 2005, 09:53
No hay por donde, nos vemos en la proxima!!!

y ojala aprenda mucho pero mucho para poder hacer $$$$$