Foros del Web » Programando para Internet » PHP »

Problema con Update en PHP

Estas en el tema de Problema con Update en PHP en el foro de PHP en Foros del Web. Hola a todos, estoy haciendo una parte de mi web que debe hacer un Update a una fila por ID (recoge el ID, según la ...
  #1 (permalink)  
Antiguo 27/01/2016, 11:20
 
Fecha de Ingreso: noviembre-2015
Ubicación: Valencia
Mensajes: 20
Antigüedad: 8 años, 5 meses
Puntos: 0
Problema con Update en PHP

Hola a todos, estoy haciendo una parte de mi web que debe hacer un Update a una fila por ID (recoge el ID, según la elección que hagas en la página anterior), pero no consigo que funcione correctamente.
Este es el código:
Código PHP:
<!doctype html>
<link href="nuevo.css" rel="stylesheet" type="text/css">
<html>
<head>
<meta charset="utf-8">
<title>Modificar</title>
</head>

<body>
<?php
include_once('conexion.php');
include_once(
"security.php");

$con=conect();
$id $_GET['id'];
echo 
$id//DEBUG: Muestra que sea el ID correcto
if(!$_POST){
?>

<h1>MODIFICAR</h1>

<div id='titol'>
<form method="post"  name="formulario" action="modificar.php"> 
<div id='titulo'>
<h3>Título</h3> <input class='textbox2' type="text" name="Titulo">
</div>

<h3>Descripción</h3>  <textarea class="textbox" name="Descripcion" rows="15" cols="80"></textarea><br>

<input type="submit" name="enviar" value="enviar">

</form>
<input type="submit" name="cancelar" value="cancelar" onclick="window.location='admin.php';">

</div>
<?php
}
else{
$titulo$_POST['Titulo'];
$descripcion$_POST['Descripcion'];
global 
$id;
$updatemysqli_query($con"UPDATE contenido SET Titulo='$titulo', Descripcion='$descripcion', Fecha=now() WHERE ID = '$id'");
if(
$update){

    
?>    
    <h2>Se han enviado los datos correctamente</h2>
    <input type="submit" name="Aceptar" value="Aceptar" onclick="window.location='admin.php';">
<?php    
}else{
?>
<h2>Error al enviar los datos. Por favor, vuelva a intentarlo más tarde.<br>
Si el problema persiste, contacte con el Administrador</h2>
<input type="submit" name="Aceptar" value="Aceptar" onclick="window.location='admin.php';">
<?php
}
}
?>

</body>
</html>
Le digo que si se cumple el $update, me muestre "Se han enviado los datos correctamente", y de hecho, lo muestra, pero no se aplican los cambios en mi BBDD.
No se donde puede estar el error; desde ya, muchas gracias!!
  #2 (permalink)  
Antiguo 27/01/2016, 11:42
 
Fecha de Ingreso: julio-2011
Ubicación: Los Rios
Mensajes: 145
Antigüedad: 12 años, 9 meses
Puntos: 10
Respuesta: Problema con Update en PHP

El que te visualice el mensaje "Se han enviado los datos correctamente" solo significa que se ejecuto la linea mas no que se hicieron cambios en la db. siempre recomiendo tener separada la linea sql para poder revisarla en caso de errores como este. asi que que te parece si haces esto:
Código PHP:
Ver original
  1. $sql="UPDATE contenido SET Titulo='$titulo', Descripcion='$descripcion', Fecha=now() WHERE ID = '$id'";
  2. $update= mysqli_query($con, $sql);
  3.  
  4. echo $sql;

con eso podremos visualizar exactamente tu linea sql y cubrir cualquier error
__________________
___________________________
Si te ayudo mi respuesta dale al +1
  #3 (permalink)  
Antiguo 27/01/2016, 12:35
 
Fecha de Ingreso: noviembre-2015
Ubicación: Valencia
Mensajes: 20
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: Problema con Update en PHP

Gracuias por tu respuesta :)
Lo he probado y te digo, el error que me muestra es esto:

Notice: Undefined index: id in C:\xampp\htdocs\WEB\modificar.php on line 15
UPDATE contenido SET Titulo=' 2', Descripcion=' 2 ', Fecha=now() WHERE ID = ''

La línea 15 es esta:
Código PHP:
Ver original
  1. $id = $_GET['id'];

parece que no le llega el $id a la consulta... pero es extraño, porque después de hacer el Get del id (en la línea 16), hago un echo $id y si me lo muestra.
  #4 (permalink)  
Antiguo 27/01/2016, 16:50
 
Fecha de Ingreso: noviembre-2015
Ubicación: Valencia
Mensajes: 20
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: Problema con Update en PHP

UP! Alguien sabe que puede estar pasando?
  #5 (permalink)  
Antiguo 27/01/2016, 19:12
Avatar de i7ach1  
Fecha de Ingreso: enero-2016
Ubicación: En mi casa O.O
Mensajes: 6
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Problema con Update en PHP

has probado con lo siguiente?

Código PHP:
if(isset($_GET['id']){
$id $_GET['id'];

De esta manera, si está establecida la superglobal de $_GET['id'] te guarda su valor en $id, y sino, pues no te da errores y obviamente, no te la guarda xD
  #6 (permalink)  
Antiguo 27/01/2016, 19:14
Avatar de i7ach1  
Fecha de Ingreso: enero-2016
Ubicación: En mi casa O.O
Mensajes: 6
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Problema con Update en PHP

Cita:
Iniciado por i7ach1 Ver Mensaje
has probado con lo siguiente?

Código PHP:
if(isset($_GET['id'])){
$id $_GET['id'];

De esta manera, si está establecida la superglobal de $_GET['id'] te guarda su valor en $id, y sino, pues no te da errores y obviamente, no te la guarda xD
Perdón por el doble post, pero no me dejaba editar :/

Última edición por i7ach1; 27/01/2016 a las 19:15 Razón: no me dejaba editar el anterior y he puesto la razón :)
  #7 (permalink)  
Antiguo 27/01/2016, 22:52
 
Fecha de Ingreso: julio-2011
Ubicación: Los Rios
Mensajes: 145
Antigüedad: 12 años, 9 meses
Puntos: 10
Respuesta: Problema con Update en PHP

No entiendo que te muestra en la linea 16 si en la 15 te dice que el id enviado por URL no existe ($_GET['id']).

1.- estas enviando datos por post y por get al mismo tiempo?
2. de donde sacas los datos, en el formulario de envio hay un campo id o lo colocas en el action?

sería bueno coloques el codigo del formulario de donde envias los datos tambien.
__________________
___________________________
Si te ayudo mi respuesta dale al +1
  #8 (permalink)  
Antiguo 30/01/2016, 12:20
 
Fecha de Ingreso: noviembre-2015
Ubicación: Valencia
Mensajes: 20
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: Problema con Update en PHP

Gracias por la respuesta. Yo tampoco lo entiendo, pero sí lo muestra. Parece que en esa parte del código sí lo pilla, pero en la de abajo no.
Os adjunto aquí el código PHP de la página anterior tal y como me pedisteis:

Código PHP:
Ver original
  1. <!-- PROTEJER WEB -->
  2. <?php
  3.  
  4. include_once('conexion.php');
  5. include_once("security.php");
  6.  
  7.  
  8.  
  9. //CONEXIÓ A LA BBDD
  10. $con=conect();
  11. //OBTINDRE RESULTATS BBDD I EL NUMERO TOTAL
  12. $entradas = mysqli_query($con, "SELECT ID FROM contenido ");
  13. $total = mysqli_num_rows($entradas);
  14. //RESULTATS PER PAGINA
  15. $resultados= 5;
  16. $url="editar3.php";
  17. $pagina= $_GET["pagina"];
  18. if(!$pagina){
  19.     $inicio=0;
  20.     $pagina=1;
  21. }
  22. else{
  23.     $inicio= ($pagina - 1) * $resultados;
  24. }
  25. $total_paginas= ceil($total / $resultados);
  26. $conulta= "SELECT * FROM contenido ORDER BY Fecha DESC LIMIT  ".$inicio.",". $resultados ."" ;
  27. //$conulta= "SELECT * FROM contenido LIMIT  ".$inicio.",". $resultados ." ORDER BY Fecha DESC" ;
  28. $rs= mysqli_query($con, $conulta);
  29.  
  30. function eliminar(){
  31. global $id;
  32. $borrar=mysqli_query($con, "DELETE FROM contenido WHERE ID==73");
  33. }
  34.  
  35. if( isset( $_GET['call'] ) && $_GET['call'] == 'eliminar' ) {
  36.     eliminar(); // Se llama a eliminar
  37. }
  38. ?>
  39.  
  40.  
  41.  
  42.  
  43. <!doctype html>
  44. <link rel="stylesheet" href="http://twitter.github.com/bootstrap/1.4.0/bootstrap.min.css">
  45. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  46. <link href="editar.css" rel="stylesheet" type="text/css">
  47. <html>
  48. <head>
  49. <meta charset="utf-8">
  50. <title>Editar Contenido</title>
  51. </head>
  52.  
  53. <body>
  54. <h1>EDITAR CONTENIDO</h1>
  55.  
  56.  
  57.  
  58. <?php foreach ($rs as $row): ?>
  59. <div id="registro">
  60. <div id="contenido">
  61. <?php $id=$row["ID"];
  62. $desc=$row["Descripcion"];
  63. $desc_curt = substr("$desc", 0, 58);
  64.  ?>
  65. <?php echo $row["Titulo"]; ?><BR>
  66. <?php
  67. if(strlen($desc_curt)>57){
  68. echo "$desc_curt...";
  69. }
  70. else{
  71.     echo $desc_curt;
  72. }
  73. //echo $row["Descripcion"];
  74. ?>
  75.  
  76. </div>
  77. <a href="modificar.php?id=<?php echo $id; ?>">
  78. <div id="editar">
  79. </div>
  80. </a>
  81.  
  82.  
  83. <a href="eliminar.php?id=<?php echo $id; ?>">
  84. <div id="eliminar">
  85. <!--<a href="eliminar.php?id=<?php echo $row['id']; ?>">Eliminar Registro</a>-->
  86. <!--<a href="eliminar.php?id=<?php echo $id; ?>">Eliminar Registro</a> -->
  87. </div>
  88. </a>
  89. </div>
  90. <?php endforeach ?>
  91. <div id="pagt">
  92. <?php
  93. if ($total_paginas > 1) {
  94.    if ($pagina != 1)
  95.       echo '<a href="'.$url.'?pagina='.($pagina-1).'"><img src="images/izq.gif" border="0"></a>';
  96.       for ($i=1;$i<=$total_paginas;$i++) {
  97.          if ($pagina == $i){
  98.             //si muestro el índice de la página actual, no coloco enlace
  99.             ?>
  100.             <div id="pag">
  101.             <?php
  102.             echo $pagina;
  103.             ?>
  104.             </div>
  105.             <?php
  106.          }
  107.          else{
  108.             //si el índice no corresponde con la página mostrada actualmente,
  109.             //coloco el enlace para ir a esa página
  110.             ?>
  111.             <div id="pag">
  112.             <?php
  113.             echo '  <a href="'.$url.'?pagina='.$i.'">'.$i.'</a>  ';
  114.             ?>
  115.             </div>
  116.             <?php
  117.          }
  118.       }
  119.       if ($pagina != $total_paginas)
  120.          echo '<a href="'.$url.'?pagina='.($pagina+1).'"><img src="images/der.gif" border="0"></a>';
  121. }
  122. ?>
  123. </div>
  124. </body>
  125. </html>

Gracias otra vez por vuestra ayuda chicos!!

Etiquetas: formulario, html, mysql, update
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 10:46.