Foros del Web » Programando para Internet » PHP »

UPDATE en PHP

Estas en el tema de UPDATE en PHP en el foro de PHP en Foros del Web. Hola a todos tengo un problema con un UPDATE de mi formulario ya que me da fallos constantes y creo que es por la sintaxis: ...

  #1 (permalink)  
Antiguo 29/11/2009, 20:05
 
Fecha de Ingreso: febrero-2008
Mensajes: 178
Antigüedad: 16 años, 2 meses
Puntos: 1
UPDATE en PHP

Hola a todos tengo un problema con un UPDATE de mi formulario ya que me da fallos constantes y creo que es por la sintaxis:

<?php
$num = $_POST["num"];
$titulo = $_POST["titulo"];
$area = $_POST["area"];
$criticidad = $_POST["criticidad"];
$texto = $_POST["texto"];
$date = date("d/m/Y");
include ("include/conexion_bd.php");
$result=("UPDATE datos_relevo SET '" . $_POST['num'] . "', '" . $_POST['titulo'] . "', '" . $_POST['criticidad'] . "', '" . $_POST['area'] . "', '" . $_POST['texto'] . "', '" . $_POST['date("d/m/Y")'] . "' ", $conexion);
mysql_query($conexion) or die(mysql_error());
?>

comentar que este es un include por eso no está el formulario y las variables están con valor pero se que no hacen falta aqui.
saludos.
  #2 (permalink)  
Antiguo 29/11/2009, 20:10
(Desactivado)
 
Fecha de Ingreso: julio-2006
Mensajes: 273
Antigüedad: 17 años, 8 meses
Puntos: 5
Respuesta: UPDATE en PHP

Creo que el error, esta en el UPDATE, te falta el where.

UPDATE tabla SET campos WHERE condicion


SALUDOS
  #3 (permalink)  
Antiguo 29/11/2009, 20:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: UPDATE en PHP

además, lo que sucede es que estas enumerando los campos mas no los asignas...

Cita:
// MAL
UPDATE tabla SET 'a', 'b', 'c' WHERE ...

// BIEN
UPDDATE tabla SET x = 'a', y = 'b', z = 'c' WHERE ...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 29/11/2009, 20:36
 
Fecha de Ingreso: febrero-2008
Mensajes: 178
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: UPDATE en PHP

Así??

<?php
if (0<$dato_enviado) {
$num = $_POST["num"];
$titulo = $_POST["titulo"];
$area = $_POST["area"];
$criticidad = $_POST["criticidad"];
$texto = $_POST["texto"];
$date = date("d/m/Y");
//
include ("conexion_bd.php");
$resul=mysql_query("UPDATE datos_relevo SET titulo, area, criticidad, texto, date WHERE '$dato_enviado'='$num'", $conexion);
mysql_query($conexion) or die(mysql_error());}
echo "<script languaje='javascript' type='text/javascript'>window.close();</script>";
?>

"dato_enviado" es el "ID" que le he pasado con la información del formulario para que me rellene los datos.
Saludos.
  #5 (permalink)  
Antiguo 29/11/2009, 20:42
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: UPDATE en PHP

sigue estando mal, ya te dijeron arriba como hacerlo ;D

$resul=mysql_query("UPDATE datos_relevo SET titulo='".$titulo."', otrocampo='".$otrocampo."' WHERE id='".$id."', $conexion);

te dejo un ejemplo más claro
__________________
Hospedaje Web al mejor costo!
  #6 (permalink)  
Antiguo 29/11/2009, 23:09
 
Fecha de Ingreso: febrero-2008
Mensajes: 178
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: UPDATE en PHP

ok, no me da ningún fallo al hacer el UPDATE pero no me actualiza la información, en el formulario estoy poniendo el id="texto" de mi textarea, etc.. con todas las variables anteriores, está bien así??


saludos y gracias.
  #7 (permalink)  
Antiguo 29/11/2009, 23:33
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: UPDATE en PHP

pega tu consulta
__________________
Hospedaje Web al mejor costo!
  #8 (permalink)  
Antiguo 29/11/2009, 23:54
Avatar de _Ju
_Ju
 
Fecha de Ingreso: noviembre-2008
Ubicación: Colima, MX
Mensajes: 192
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: UPDATE en PHP

Seria solamente asi:

mysql_query("UPDATE datos_relevo SET nombre_campo='$titulo', nombre_campo2='$area', nombre_campo3='$criticidad', nombre_campo4='$texto', nombre_campo5='$date' WHERE '$dato_enviado'=campo", $conexion);

Tienes un error en el Where ademas

Otra cosa que comentas es..

Cita:
en el formulario estoy poniendo el id="texto" de mi textarea, etc.
No debe ser el valor del atributo id el que recibes, debe ser el valor del atributo name de cada campo o textarea
__________________
www.grupogalco.net

Twitter: @jugalvez

Última edición por _Ju; 29/11/2009 a las 23:55 Razón: Otro Error...
  #9 (permalink)  
Antiguo 30/11/2009, 22:05
 
Fecha de Ingreso: febrero-2008
Mensajes: 178
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: UPDATE en PHP

muchas gracias a todos!! estoy realizando los cambios y probando..
  #10 (permalink)  
Antiguo 05/12/2009, 15:32
 
Fecha de Ingreso: febrero-2008
Mensajes: 178
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: UPDATE en PHP

A ver cho@s estoy desesperado (no me funciona) mi formulario es así:

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Insertar Evento</title>
<link href="css/style.css" type="text/css" rel="stylesheet" />
</head>
<body>
<div id="insertar">
<?php $result_get=$_GET['pasa_dato'];
include (
"include/conexion_bd.php");
$result mysql_query("SELECT num, titulo, criticidad, area, texto, date FROM datos_relevo WHERE num = '$result_get'"$conexion)
or
  die(
"Problemas en el select:".mysql_error());
while (
$row mysql_fetch_array($result)){
    list (
$num$titulo$criticidad$area$texto$date) = $row;
?>
<p>Evento con Id: <b>[&nbsp;<?php echo "$num"?>&nbsp;]</b></p><br />

<p>Fecha de Creación: <b><?php echo "$date"?></b></p><br />


<form method="post" name="formulario"  action="include/editar_include.php?pasa_dato2=<?php echo $num?>">                
Título Evento:                                            <!--título evento &nbsp;-->
<input type="text" name="titulo" size="80" value="<?php echo $titulo?>" /><br /><br />
                                                        <!--area-->
Indica Área:
<select value="area" id="area" name="area">
<option value="T2">T-2&nbsp;&nbsp;</option>
<option value="T4">T-4&nbsp;&nbsp;</option>
</select>&nbsp;&nbsp;&nbsp;
Criticidad del Evento:
<select value="criticidad" id="criticidad" name="criticidad">
<option value="BAJA">Baja&nbsp;&nbsp;</option>
<option value="MEDIA">Media&nbsp;&nbsp;</option>
<option value="ALTA">Alta&nbsp;&nbsp;</option>
</select><br />
<br />
Texto:
<br />
<textarea name="texto" rows="10" cols="71"><?php echo $texto?></textarea>

<br /><br />
<input type="submit" value="Modificar" name="modificar">
</form>
<?php }
mysql_close($conexion);
?>
</div>
</body>
</html>
y mi include con el UPDATE es este:

Código PHP:
<html>
<head></head>
<body>
<?php
$result_get2
=$_GET['pasa_dato2'];
include (
"conexion_bd.php");
$result mysql_query("SELECT * FROM datos_relevo WHERE num = '$result_get2'"$conexion)
or
  die(
"Problemas en el select:".mysql_error());
  while (
$row mysql_fetch_row($result)){
  list (
$num$titulo$criticidad$area$texto$date) = $row
  
mysql_close($conexion);
//
if(isset($_REQUEST['modificar']))    {
    include (
"conexion_bd.php");
$result2=mysql_query("UPDATE datos_relevo SET num='$num', titulo='$titulo', area='$area', criticidad='$criticidad', texto='$texto' WHERE '$result_get2' = 'num'"$conexion)or
die(
"Problemas SQL:".mysql_error());
echo 
"REALIZADO";}
    else {
        echo 
"ERROR"; }
  }
mysql_close($conexion);
?>
</body></html>
Muchas gracias a todos! Saludos.
  #11 (permalink)  
Antiguo 05/12/2009, 15:40
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: UPDATE en PHP

el error creo esta en:

WHERE '$result_get2' = 'num'"

:) como que WHERE y pones una variable? :D no será que esta alreves?
__________________
Hospedaje Web al mejor costo!
  #12 (permalink)  
Antiguo 05/12/2009, 15:44
 
Fecha de Ingreso: febrero-2008
Mensajes: 178
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: UPDATE en PHP

no, me pone realizado pero no hace el cambio, tampoco muestra error alguno, saludos.
  #13 (permalink)  
Antiguo 05/12/2009, 15:53
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: UPDATE en PHP

cambia
if(isset($_REQUEST['modificar']))

por

if(isset($_POST['modificar']))
__________________
Hospedaje Web al mejor costo!
  #14 (permalink)  
Antiguo 05/12/2009, 15:57
 
Fecha de Ingreso: febrero-2008
Mensajes: 178
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: UPDATE en PHP

nada chic@s, igual, me muestra realizado pero nada.
gracias.
  #15 (permalink)  
Antiguo 05/12/2009, 15:59
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: UPDATE en PHP

es que tienes un reboltijo, usas variables $_GET tienes un form POST y un action con valores por URL, sigo checando tu code
__________________
Hospedaje Web al mejor costo!
  #16 (permalink)  
Antiguo 05/12/2009, 16:05
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: UPDATE en PHP

Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Insertar Evento</title>
  6. <link href="css/style.css" type="text/css" rel="stylesheet" />
  7. </head>
  8. <body>
  9. <div id="insertar">
  10. <?php $result_get=$_GET['pasa_dato'];
  11. include ("include/conexion_bd.php");
  12. $result = mysql_query("SELECT num, titulo, criticidad, area, texto, date FROM datos_relevo WHERE num = '$result_get'", $conexion)
  13. or
  14.   die("Problemas en el select:".mysql_error());
  15. while ($row = mysql_fetch_array($result)){
  16.     list ($num, $titulo, $criticidad, $area, $texto, $date) = $row;
  17. ?>
  18. <p>Evento con Id: <b>[&nbsp;<?php echo "$num"; ?>&nbsp;]</b></p><br />
  19.  
  20. <p>Fecha de Creación: <b><?php echo "$date"; ?></b></p><br />
  21.  
  22.  
  23. <form method="post" name="formulario"  action="include/editar_include.php">  
  24. <input type="text" name="pasa_dato2" style="display:none" value="<?php echo $num; ?>" />            
  25. Título Evento:                                            <!--título evento &nbsp;-->
  26. <input type="text" name="titulo" size="80" value="<?php echo $titulo; ?>" /><br /><br />
  27.                                                         <!--area-->
  28. Indica Área:
  29. <select value="area" id="area" name="area">
  30. <option value="T2">T-2&nbsp;&nbsp;</option>
  31. <option value="T4">T-4&nbsp;&nbsp;</option>
  32. </select>&nbsp;&nbsp;&nbsp;
  33. Criticidad del Evento:
  34. <select value="criticidad" id="criticidad" name="criticidad">
  35. <option value="BAJA">Baja&nbsp;&nbsp;</option>
  36. <option value="MEDIA">Media&nbsp;&nbsp;</option>
  37. <option value="ALTA">Alta&nbsp;&nbsp;</option>
  38. </select><br />
  39. <br />
  40. Texto:
  41. <br />
  42. <textarea name="texto" rows="10" cols="71"><?php echo $texto; ?></textarea>
  43.  
  44. <br /><br />
  45. <input type="submit" value="Modificar" name="modificar">
  46. </form>
  47. <?php }
  48. mysql_close($conexion);
  49. ?>
  50. </div>
  51. </body>
  52. </html>

y...

Código PHP:
Ver original
  1. <html>
  2. <head></head>
  3. <body>
  4. <?php
  5. $result_get2=$_POST['pasa_dato2'];
  6. include ("conexion_bd.php");
  7. $result = mysql_query("SELECT * FROM datos_relevo WHERE num = '$result_get2'", $conexion)
  8. or
  9.   die("Problemas en el select:".mysql_error());
  10.   while ($row = mysql_fetch_row($result)){
  11.   list ($num, $titulo, $criticidad, $area, $texto, $date) = $row;
  12.   mysql_close($conexion);
  13. //
  14. if(isset($_REQUEST['modificar']))    {
  15.     include ("conexion_bd.php");
  16. $result2=mysql_query("UPDATE datos_relevo SET num='$num', titulo='$titulo', area='$area', criticidad='$criticidad', texto='$texto' WHERE num = '$result_get2'", $conexion)or
  17. die("Problemas SQL:".mysql_error());
  18. echo "REALIZADO";}
  19.     else {
  20.         echo "ERROR"; }
  21.   }
  22. mysql_close($conexion);
  23. ?>
  24. </body></html>


ó

Código PHP:
Ver original
  1. <html>
  2. <head></head>
  3. <body>
  4. <?php
  5. $result_get2=$_POST['pasa_dato2'];
  6. include ("conexion_bd.php");
  7. $result = mysql_query("SELECT * FROM datos_relevo WHERE num = '$result_get2'", $conexion)
  8. or
  9.   die("Problemas en el select:".mysql_error());
  10.   while ($row = mysql_fetch_array($result)){
  11.    
  12.   mysql_close($conexion);
  13. //
  14. if(isset($_REQUEST['modificar']))    {
  15.     include ("conexion_bd.php");
  16. $result2=mysql_query("UPDATE datos_relevo SET num='$num', titulo='".$row['titulo']."', area='".$row['area']."', criticidad='".$row['criticidad']."', texto='".$row['texto']."' WHERE num = '$result_get2'", $conexion)or
  17. die("Problemas SQL:".mysql_error());
  18. echo "REALIZADO";}
  19.     else {
  20.         echo "ERROR"; }
  21.   }
  22. mysql_close($conexion);
  23. ?>
  24. </body></html>

checa si te funciona...
__________________
Hospedaje Web al mejor costo!
  #17 (permalink)  
Antiguo 05/12/2009, 17:20
 
Fecha de Ingreso: febrero-2008
Mensajes: 178
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: UPDATE en PHP

en al primera opción del include no me realiza modificaciones y en el segundo me da este error;

Notice: Undefined variable: num in C:\wamp\www\include\editar_include.php on line 16
Problemas SQL:Duplicate entry '0' for key 'PRIMARY'

no sabes cuanto te agradezco las molestias, GRACIAS!!
  #18 (permalink)  
Antiguo 05/12/2009, 17:26
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: UPDATE en PHP

reemplaza
num='$num'
por
'".$row['num']."'
__________________
Hospedaje Web al mejor costo!
  #19 (permalink)  
Antiguo 05/12/2009, 17:34
 
Fecha de Ingreso: febrero-2008
Mensajes: 178
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: UPDATE en PHP

después de quedar así:

<html>
<head></head>
<body>
<?php
$result_get2=$_POST['pasa_dato2'];
include ("conexion_bd.php");
$result = mysql_query("SELECT * FROM datos_relevo WHERE num = '$result_get2'", $conexion)
or
die("Problemas en el select:".mysql_error());
while ($row = mysql_fetch_array($result)){

mysql_close($conexion);
//
if(isset($_REQUEST['modificar'])) {
include ("conexion_bd.php");
$result2=mysql_query("UPDATE datos_relevo SET '".$row['num']."', titulo='".$row['titulo']."', area='".$row['area']."', criticidad='".$row['criticidad']."', texto='".$row['texto']."' WHERE num = '$result_get2'", $conexion)or
die("Problemas SQL:".mysql_error());
echo "REALIZADO";}
else {
echo "ERROR"; }
}
mysql_close($conexion);
?>
</body></html>

Este el error:
Problemas SQL:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1', titulo='Esto es otra prueba de insert y update, ya son muchas pruebas pero ' at line 1
  #20 (permalink)  
Antiguo 05/12/2009, 17:36
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: UPDATE en PHP

la regue :) era reemplazar

num='$num'
por
num='".$row['num']."'
__________________
Hospedaje Web al mejor costo!
  #21 (permalink)  
Antiguo 05/12/2009, 17:45
 
Fecha de Ingreso: febrero-2008
Mensajes: 178
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: UPDATE en PHP

Ahora me indica "realizado" pero en la vista general no me hace el cambio.
  #22 (permalink)  
Antiguo 05/12/2009, 17:48
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: UPDATE en PHP

que es eso de vista general? siento que lo que falla es el where num=''

num es tu indice?
__________________
Hospedaje Web al mejor costo!
  #23 (permalink)  
Antiguo 05/12/2009, 18:00
 
Fecha de Ingreso: febrero-2008
Mensajes: 178
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: UPDATE en PHP

si, mira
http://s2.subirimagenes.com/imagen/p...p_36702071.png
  #24 (permalink)  
Antiguo 05/12/2009, 18:02
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: UPDATE en PHP

hahahaha no friegues y por que quieres cambiar el num? :s .... no se puede! :P en todos los casos el KEY solo sirve como referencia. ;)
__________________
Hospedaje Web al mejor costo!
  #25 (permalink)  
Antiguo 05/12/2009, 18:03
 
Fecha de Ingreso: febrero-2008
Mensajes: 178
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: UPDATE en PHP

tengo una vista general con varias vistas (por area, con busqueda de palabras) el caso es que el formulario es una ventana que abre (donde esta el formulario) y me recupera la información de la linea de campos.

gracias
  #26 (permalink)  
Antiguo 05/12/2009, 18:08
 
Fecha de Ingreso: febrero-2008
Mensajes: 178
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: UPDATE en PHP

vale, entonces entiendo que hay que quitar "num" de SET pero no de WHERE??
  #27 (permalink)  
Antiguo 05/12/2009, 18:10
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: UPDATE en PHP

así es... :)
__________________
Hospedaje Web al mejor costo!
  #28 (permalink)  
Antiguo 05/12/2009, 18:18
 
Fecha de Ingreso: febrero-2008
Mensajes: 178
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: UPDATE en PHP

UFFFFF! nada, no hace el cambio!!, ..me está dando apuro por ti, gracias!

Código PHP:
<html>
<head></head>
<body>
<?php
$result_get2
=$_POST['pasa_dato2'];
include (
"conexion_bd.php");
$result mysql_query("SELECT * FROM datos_relevo WHERE num = '$result_get2'"$conexion)
or
  die(
"Problemas en el select:".mysql_error());
  while (
$row mysql_fetch_array($result)){
   
  
mysql_close($conexion);
//
if(isset($_REQUEST['modificar']))    {
    include (
"conexion_bd.php");
$result2=mysql_query("UPDATE datos_relevo SET titulo='".$row['titulo']."', area='".$row['area']."', criticidad='".$row['criticidad']."', texto='".$row['texto']."' WHERE num = '$result_get2'"$conexion)or
die(
"Problemas SQL:".mysql_error());
echo 
"REALIZADO";}
    else {
        echo 
"ERROR"; }
  }
mysql_close($conexion);
?>
</body></html>
  #29 (permalink)  
Antiguo 05/12/2009, 18:45
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: UPDATE en PHP

cambia eso de request por post :P
__________________
Hospedaje Web al mejor costo!
  #30 (permalink)  
Antiguo 05/12/2009, 18:54
 
Fecha de Ingreso: febrero-2008
Mensajes: 178
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: UPDATE en PHP

NOP! igual, cuando recoge la info, la cambio y presiono modificar me indica "realizado" pero nada.
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 16:35.