Foros del Web » Programando para Internet » PHP »

problema al insertar un dato en mysql

Estas en el tema de problema al insertar un dato en mysql en el foro de PHP en Foros del Web. buenso dias tengo un problema al insertar un registro ;estoy utlizando clases ;tengo mi clase base en donde eh creado esta funcion function consulta5($sql = ...
  #1 (permalink)  
Antiguo 22/12/2009, 10:41
 
Fecha de Ingreso: diciembre-2009
Mensajes: 52
Antigüedad: 14 años, 4 meses
Puntos: 0
problema al insertar un dato en mysql

buenso dias
tengo un problema al insertar un registro ;estoy utlizando clases ;tengo mi clase base en donde eh creado esta funcion

function consulta5($sql = ""){
if ($sql == "") {
$this->Error = "No ha especificado una consulta SQL";
return 0;
}
//ejecutamos la consulta
$this->Consulta_ID5 = @mysql_query($sql, $this->Conexion_ID);
if (!$this->Consulta_ID5) {
$this->Errno = mysql_errno();
$this->Error = mysql_error();
}
/* Si hemos tenido éxito en la consulta devuelve
el identificador de la conexión, sino devuelve 0 */
return $this->Consulta_ID5;
}

ahora en el archivo php que tengo que se llama insertar.php tengo una funcion en donde recogo las variables del siguiente modo

public function insertarproyectos()
{

$miconexion = new DB_mysql ;
$miconexion->conectar($miconexion->BaseDatos, $miconexion->Servidor , $miconexion->Usuario , $miconexion->Clave);

$cod_proy=$_POST['cod_proyecto'];

$des_proy=$_POST['des_proyecto'];

$miconexion->consulta5("insert into dba_proyecto_mov(cod_proyecto, des_proyecto)
values('$cod_proy', '$des_proy')");
$miconexion->guardar();

}

y cuando lo ejecuta me guarda un campo en blanco
eh probado a ver que valor tienen estas variables $cod_proy,$des_proy, pero su valor es en blanco, no seque pasa pero no retiene el dato que digiito en las cajas de texto,


esas variables $cod_proy,$des_proy, yo lo genere mediante una funcion que contiene esto
echo "<input type='text' name='".$this-> nombrecampo($i)."' size='".$this->tamaniocampo($i)."' /> ";

eh probado viendo el codigo html que genera y en efecto las cajas de texto se llaman cod_proyecto, des_proyecto, no entiendo porque no puedo recuperar el valor de las cajas de texto


muchas gracias
  #2 (permalink)  
Antiguo 22/12/2009, 11:09
Avatar de CdG
CdG
 
Fecha de Ingreso: marzo-2008
Mensajes: 114
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: problema al insertar un dato en mysql

No me queda claro como instancias la clase para llamar al método insertarproyectos()
__________________
no quiero ser un árbol y caminar
Jacinto Piedra
  #3 (permalink)  
Antiguo 28/12/2009, 08:49
 
Fecha de Ingreso: diciembre-2009
Mensajes: 52
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: problema al insertar un dato en mysql

a que te refieres cuando dices que como instancio mi clase?
  #4 (permalink)  
Antiguo 28/12/2009, 09:02
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: problema al insertar un dato en mysql

Tal vez sea por el AMBITO de la variable... no seria mas facil hacer esto?

Código PHP:

$cod_proy
=$_POST['cod_proyecto'];
$des_proy=$_POST['des_proyecto'];


public function 
insertarproyectos($param1$param2)
{

$miconexion = new DB_mysql ;
$miconexion->conectar($miconexion->BaseDatos$miconexion->Servidor $miconexion->Usuario $miconexion->Clave);


$miconexion->consulta5("insert into dba_proyecto_mov(cod_proyecto, des_proyecto) 
values('$param1', '$param2')"
);
$miconexion->guardar(); 


Vos lo que tenes es una clase con sus metodos y demas, y ademas tenes hecho aparte funciones para insertar a la base de datos que NO estan esa clase?
Si es asi, no le veo el sentido la verdad...
__________________
HV Studio
Diseño y desarrollo web
  #5 (permalink)  
Antiguo 28/12/2009, 09:07
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: problema al insertar un dato en mysql

la verdad que en tu codigo no ayudas a poder ayudarte.

no se ve el codigo donde estas mostrado los inputs, osea el formulario....
ademas una funcion que se encuentra en otro archivo, no reconoce $_POST, lo normal es que lo recibas en tu archivo y lo mandes como parametro a la funcion.
tampoco como llamas a la funcion insertarproyectos() o donde existe la funcion nombrecampo..... y ni que decirte que de donde sale $this.

Espero nos muestres mas detalle.

suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #6 (permalink)  
Antiguo 28/12/2009, 09:22
 
Fecha de Ingreso: diciembre-2009
Mensajes: 52
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: problema al insertar un dato en mysql

a ver les explico..

yo tengo una clase base la pagina se llama clasebd
<?php
class DB_mysql {

/* variables de conexión */
var $BaseDatos;
var $Servidor;
var $Usuario;
var $Clave;
function DB_mysql($bd = "proy", $host = "lo", $user = "pr", $pass = "fr") { $this->BaseDatos = $bd;
$this->Servidor = $host;
$this->Usuario = $user;
$this->Clave = $pass;
}


function guardar() {


while ($row = mysql_fetch_row($this->Consulta_ID5)) {
}

}

......mas funciones }

tengo un archivo que se llama insertarproyecto

---------va lo mismo que en el archivo de insertar fase mas esto

public function Displayar($usuario)
{
$this -> DisplayarEstilos();
echo "<html>\n<head>\n";
$this -> DisplayarTitulo();
$this -> DisplayarKeywords();
echo "</head>\n<body>\n";
$this -> DisplayarCabecera($this->titulo, $usuario);
$this -> DisplayarCuerpo();
$this -> DisplayarPie();
echo "</body>\n</html>\n";
}

public function listarproyectos()
{
$miconexion = new DB_mysql ;
$miconexion->conectar($miconexion->BaseDatos, $miconexion->Servidor , $miconexion->Usuario , $miconexion->Clave);
$miconexion->consulta("SELECT * FROM `dba_proyecto_mov` ");


$miconexion->verconsulta_editar();



}
}

$verclase = new indicebdproy();
$verclase->displayar($usuario);
//$verclase->listarproyectos();
?>

ahora tengo un archivo que se llama insertarfase que va ejecutar los datos que yo haya ingresad en el archivo insertar proyecto, que tiene el siguiente codigo(insertar fase)

<?php

require_once('../clas/clasebd.php');

class indicebdproy extends clase0101
{
public $titulo = 'SIAPROB - BD - SECCION DE PROYECTOS - INSERTAR FASES DE PROYECTOS';
public $botonizq = array( 'Inicio' => 'index_adm.php',
'Proyectos' => 'index_proy.php',
'Fases' => 'index.php',

);

public $botonder = array( 'Matar Usuarios' => 'index.php',
'Monitoreo_de_Servidor' => 'index.php',

);

public function DisplayarCuerpo()
{
?>
<table width="100%" border="0">
<tr>
<td valign=top width="140"> <div align="left">
<?php $this -> DisplayarMenuIzq($this->botonizq); ?> </div></td>
<td><?php $this->listarproyectos();?> </td>
<td valign=top width="150"> <div align="rigth">
<?php $this -> DisplayarMenuDer($this->botonder); ?> </div></td>
</tr>
</table>
<?php
}


public function Displayar($usuario)
{
$this -> DisplayarEstilos();
echo "<html>\n<head>\n";
$this -> DisplayarTitulo();
$this -> DisplayarKeywords();
echo "</head>\n<body>\n";
$this -> DisplayarCabecera($this->titulo, $usuario);
$this -> DisplayarCuerpo();
$this -> DisplayarPie();
echo "</body>\n</html>\n";
}

public function listarproyectos()
{

$miconexion = new DB_mysql ;
$miconexion->conectar($miconexion->BaseDatos, $miconexion->Servidor , $miconexion->Usuario , $miconexion->Clave);

$cod_proy=$_POST['cod_proyecto'];

$des_proy=$_POST['des_proyecto'];
$miconexion->consulta5("insert into dba_proyecto_mov(cod_proyecto, des_proyecto) values('$cod_proy', '$des_proy')");
$miconexion->guardar();


$miconexion->consulta("select * from dba_fase_proyecto_mov ");
$miconexion->verconsulta_insertar_fase();

}

}
$verclase = new indicebdproy();
$verclase->displayar($usuario);

?>


el codigo de verconsulta_editar(); el archivo insertarproyecto es:

function verconsulta_editar() {
echo '<table width="100%" border="1" class="leftbox">
<tr class="leftboxheading">
<td class=ch3 bgcolor=#1F1C19><a class=ml3 href="insertarfase.php">Grabar</a></td>
<td class=ch3 bgcolor=#1F1C19><a class=ml3 href="indexproy.php">Salir</a></td>
</tr>
</table>';

echo "<form id='enviar' name='enviar' method='post' action='../ty.php'>
<table width='100%' border=1 >\n";
// mostramos los nombres de los campos
echo "<tr>\n";

for ($i = 0; $i < $this->numcampos(); $i++){

$this->consulta2("SELECT cod_campo, des_opcion as 'cod_campo & des_opcion' FROM `dba_contenedor` " );

$this->consulta3("SELECT cod_duracion, des_duracion as 'cod_duracion & des_duracion' FROM `dba_duracion_proy` " );

$this->consulta4("SELECT des_usuario FROM `dba_usuario_mae` ");

echo "<td><b><div align='right'>".$this->nombrecampo($i)."</div></b></td>\n
<td><div align='left'>";

if($i==8){

$this->cod_proye();

}
else if($i==9){

$this->cod_proye();

}
else {
echo "<input type='text' name='".$this-> nombrecampo($i)."' size='".$this->tamaniocampo($i)."' /> ";

if($i==6){
$this->vercontenedor();


}

if($i==7){

$this->verduracion();
}

}
echo "</div></td>";


echo "</tr>\n";
}

echo "</table>";

echo "</form>";




}

esto se encuentra en el archivo clase bd
  #7 (permalink)  
Antiguo 28/12/2009, 09:55
 
Fecha de Ingreso: diciembre-2009
Mensajes: 52
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: problema al insertar un dato en mysql

vaya creoq los confundi
  #8 (permalink)  
Antiguo 28/12/2009, 11:37
 
Fecha de Ingreso: diciembre-2009
Mensajes: 52
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: problema al insertar un dato en mysql

por favor si alguien sabe respondan como ven es un poco complejo
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 13:40.