Foros del Web » Programando para Internet » PHP »

no me actualiza la base de datos

Estas en el tema de no me actualiza la base de datos en el foro de PHP en Foros del Web. Hola a todos, Necesito ayudaaaaa, tengo los nombres de los campos de mi tabla "contacto", tambien me aparece el select con el ID, pero aún ...
  #1 (permalink)  
Antiguo 19/02/2008, 18:10
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
no me actualiza la base de datos

Hola a todos,

Necesito ayudaaaaa, tengo los nombres de los campos de mi tabla "contacto", tambien me aparece el select con el ID, pero aún no puedo actualizar los registros, me parece que debe ser la consulta sql o la ubicacion del <form>, la envio para que puedan ayudarme.

Esta es la pagina actualizar1.php

<html>
<head>
<title></title>
</head>

<body>
<h1>Actualizar un registro</h1>
<?php
//Conexion con la base
mysql_connect("localhost","root","");

echo '<FORM METHOD="POST" ACTION="actualizar2.php">SELECCIONA ID A MODIFICAR:<br>';

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select id From contacto Order By id";
$result=mysql_db_query("agenda",$sSQL);

echo '<select name="id">';
echo '<option value="">Id</option>';

//Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo '<option>'.$row["id"].'</option>';}
?>

</select> <br>
<br>


<?php
//Conexion con la base
mysql_connect("localhost","root","");

echo '<FORM METHOD="POST" ACTION="actualizar2.php">SELECCIONA CAMPO A EDITAR:<br>';

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select * From contacto";
$result=mysql_db_query("agenda",$sSQL);
$campos=mysql_num_fields($result);

echo '<select name="campos">';
echo '<option value="">Campo a editar</option>';

for ($i=0; $i<$campos;$i++)
{
$nombrecampo=mysql_field_name($result,$i);
echo '<option value>'.$nombrecampo.'</option>';
}
?>
</select>


</p>
<p>INGRESAR NUEVO DATO:<BR>
<input name="nuevodato" type="TEXT">
</p>
<p>
<input name="SUBMIT" type="SUBMIT" value="Actualizar">
</p>
</form>
<p>&nbsp;</p>
</div>

</BODY>
</HTML>

Y aqui la pagina de la consulta en sql con dudas, actualizar2.php:

<HTML>
<HEAD>
<TITLE>actualizar2.php</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
body {
background-color: #00CC66;
}
-->
</style></HEAD>
<BODY>
<?php
$id=$_POST['id'];
$nombrecampo=$_POST['nombrecampo'];
$nuevodato=$_POST['nuevodato'];
//Conexion con la base
mysql_connect("localhost","root","");

//Creamos la sentencia SQL y la ejecutamos
$sSQL="update contacto set '.$nombrecampo.'='$nuevodato' where id='$id'";
mysql_db_query("agenda",$sSQL);
?>

<h1><div align="center">Registro Actualizado</div></h1>

</BODY>
</HTML>

Gracias nuevamente.
  #2 (permalink)  
Antiguo 19/02/2008, 18:29
Avatar de CieloEterno  
Fecha de Ingreso: marzo-2006
Ubicación: México
Mensajes: 52
Antigüedad: 18 años, 1 mes
Puntos: 0
Checa que los datos se esten mandando

Pues si esta raro; lo que puedes hacer primero para checar las variables si están pasando bien; cambia el método de tu formulario a GET

Y pasa:

$id=$_POST['id'];
$nombrecampo=$_POST['nombrecampo'];
$nuevodato=$_POST['nuevodato'];


a GET o a REQUEST

$id=$_REQUEST['id'];
$nombrecampo=$_REQUEST['nombrecampo'];
$nuevodato=$_REQUEST['nuevodato'];


Y cuando des submit a tu formulario, revisa en tu navegador si realmente esta pasando las variables:

http://tulocalhost/actualizar2.php?id=7&nombrecampo=Saludos&nuevodato=EXITO
__________________
Aquel que no tiene nada por lo cual morir, no tiene nada por que vivir
  #3 (permalink)  
Antiguo 19/02/2008, 18:32
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: no me actualiza la base de datos

Gracias por tan rapida ayuda, lo pruebo ahora y te cuento.
  #4 (permalink)  
Antiguo 19/02/2008, 18:37
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: no me actualiza la base de datos

Buen punto, no arroja nada en el navegador, debe ser el <FORM>?
  #5 (permalink)  
Antiguo 19/02/2008, 20:28
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
Re: no me actualiza la base de datos

Si asi es te falta la etiqueta form...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
  #6 (permalink)  
Antiguo 20/02/2008, 05:04
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: no me actualiza la base de datos

Estimado Bellinger,

No sé donde poner el </form>, agradeceré me ayudes viendo el archivo que pegué más arriba.
Ya me tiene desesperado.
  #7 (permalink)  
Antiguo 20/02/2008, 08:32
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: no me actualiza la base de datos

Agradeceré ayuda luego por favor.
  #8 (permalink)  
Antiguo 20/02/2008, 08:33
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Re: no me actualiza la base de datos

me explicas bien que deseas hacer por favor?
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #9 (permalink)  
Antiguo 20/02/2008, 08:40
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: no me actualiza la base de datos

Cita:
Iniciado por T4ke0veR Ver Mensaje
me explicas bien que deseas hacer por favor?

Mira, tengo los nombres de los campos de mi tabla "contacto", tambien me aparece el select con el ID, pero aún no puedo actualizar los registros, me parece que debe ser la consulta sql o la ubicacion del <form>

Esta es la pagina actualizar1.php

<html>
<head>
<title></title>
</head>

<body>
<h1>Actualizar un registro</h1>
<?php
//Conexion con la base
mysql_connect("localhost","root","");

echo '<FORM METHOD="POST" ACTION="actualizar2.php">SELECCIONA ID A MODIFICAR:<br>';

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select id From contacto Order By id";
$result=mysql_db_query("agenda",$sSQL);

echo '<select name="id">';
echo '<option value="">Id</option>';

//Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo '<option>'.$row["id"].'</option>';}
?>

</select> <br>
<br>


<?php
//Conexion con la base
mysql_connect("localhost","root","");

echo '<FORM METHOD="POST" ACTION="actualizar2.php">SELECCIONA CAMPO A EDITAR:<br>';

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select * From contacto";
$result=mysql_db_query("agenda",$sSQL);
$campos=mysql_num_fields($result);

echo '<select name="campos">';
echo '<option value="">Campo a editar</option>';

for ($i=0; $i<$campos;$i++)
{
$nombrecampo=mysql_field_name($result,$i);
echo '<option value>'.$nombrecampo.'</option>';
}
?>
</select>


</p>
<p>INGRESAR NUEVO DATO:<BR>
<input name="nuevodato" type="TEXT">
</p>
<p>
<input name="SUBMIT" type="SUBMIT" value="Actualizar">
</p>
</form>
<p>&nbsp;</p>
</div>

</BODY>
</HTML>

Y aqui la pagina de la consulta en sql con dudas, actualizar2.php; debe estar en la consulta sql

<HTML>
<HEAD>
<TITLE>actualizar2.php</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
body {
background-color: #00CC66;
}
-->
</style></HEAD>
<BODY>
<?php
$id=$_POST['id'];
$nombrecampo=$_POST['nombrecampo'];
$nuevodato=$_POST['nuevodato'];//Conexion con la base

mysql_connect("localhost","root","");

//Creamos la sentencia SQL y la ejecutamos
$sSQL="update contacto set '.$nombrecampo.'='$nuevodato' where id='$id'";
mysql_db_query("agenda",$sSQL);
?>

<h1><div align="center">Registro Actualizado</div></h1>

</BODY>
</HTML>
  #10 (permalink)  
Antiguo 20/02/2008, 08:43
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Re: no me actualiza la base de datos

ok perfecto... dime los campos de tu base de datos para actualizar los contactos...
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #11 (permalink)  
Antiguo 20/02/2008, 08:43
 
Fecha de Ingreso: junio-2007
Ubicación: Mérida, Yucatán, México
Mensajes: 94
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: no me actualiza la base de datos

{echo '<option>'.$row["id"].'</option>';}

{echo '<option value=' . $row["id"] . '>'.$row["id"].'</option>';}
  #12 (permalink)  
Antiguo 20/02/2008, 08:46
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: no me actualiza la base de datos

Cita:
Iniciado por carloshuchim Ver Mensaje
{echo '<option>'.$row["id"].'</option>';}

{echo '<option value=' . $row["id"] . '>'.$row["id"].'</option>';}
Eso está bien, lo que no me toma es el "$nombrecampo"
  #13 (permalink)  
Antiguo 20/02/2008, 08:55
 
Fecha de Ingreso: junio-2007
Ubicación: Mérida, Yucatán, México
Mensajes: 94
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: no me actualiza la base de datos

No será que tu select se llama campo y tu pides un nombrecampos

echo '<select name="campos">';

$nombrecampo=$_POST['nombrecampo'];
  #14 (permalink)  
Antiguo 20/02/2008, 09:05
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: no me actualiza la base de datos

ES que en campos guarda la cantidad de campos:

$campos=mysql_num_fields($result);
quizas el error debe estar en el for:

for ($i=0; $i<$campos;$i++)
{
$nombrecampo=mysql_field_name($result,$i);
echo '<option value>'.$nombrecampo.'</option>';
}

Ayuda por favor.
  #15 (permalink)  
Antiguo 20/02/2008, 09:35
 
Fecha de Ingreso: junio-2007
Ubicación: Mérida, Yucatán, México
Mensajes: 94
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: no me actualiza la base de datos

No me refiero a la variable $campos, me refiero al nombre que le tienes dado a tu select.

echo '<select name="campos">';

Luego en tu script intentas asignar el valor de

$nombrecampo=$_POST['nombrecampo'];

Y por ningún lado veo nombrecampo...

echo '<select name="nombrecampos">';
  #16 (permalink)  
Antiguo 20/02/2008, 10:04
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: no me actualiza la base de datos

Entonces, qué me recomiendas...
  #17 (permalink)  
Antiguo 20/02/2008, 10:52
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Re: no me actualiza la base de datos

man pq no hacemos algo mas facil..
necesitas actualizar tu base de datos...
me pasarias la estructura de tu base de datos?? yo t hago un script para q solo lo montes...
lo montas y si t sirve t explico como funciona... saludos!!! :)
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #18 (permalink)  
Antiguo 20/02/2008, 10:59
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: no me actualiza la base de datos

Espero no te molestes, pero prefiero que lo pegues acá, y trabajarlo yo; quiero aprender ya que de esto dependerá mi futuro.

Gracias nuevamente.
  #19 (permalink)  
Antiguo 20/02/2008, 11:09
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Re: no me actualiza la base de datos

ok perfecto ya t lo desarrollo man :)
dame un momento!!!
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #20 (permalink)  
Antiguo 20/02/2008, 14:02
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: no me actualiza la base de datos

Estimado,
No te olvides de mi petición.
  #21 (permalink)  
Antiguo 20/02/2008, 14:42
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Re: no me actualiza la base de datos

tranquilo no me olvido... solo q ando medio apretado pero a mañana cuando tarde t lo publico
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #22 (permalink)  
Antiguo 20/02/2008, 16:12
 
Fecha de Ingreso: junio-2007
Ubicación: Mérida, Yucatán, México
Mensajes: 94
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: no me actualiza la base de datos

En esta linea en tu primer archivos cambias de

echo '<select name="campos">';

a

echo '<select name="nombrecampos">';

y en tu segundo archivo cambias la consulta de:

$sSQL="update contacto set '.$nombrecampo.'='$nuevodato' where id='$id'";

a

$sSQL="update contacto set " . $nombrecampo . " = '" . $nuevodato . "' where id='" . $id . "'";


Siempre y cuando tu campo sea de tipo texto...

Nos dices por favor...
saludos
  #23 (permalink)  
Antiguo 20/02/2008, 18:21
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: no me actualiza la base de datos

Funcionó man, y como decimos en Chile "Hueón, te pasaste, eri la raja", eso significa: "man, eres buenisimo"

Gracias, y no dudes que si vuelvo a tener alguna duda, te seguiré molestando.
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 21:41.