Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/05/2016, 02:17
3lmojj
 
Fecha de Ingreso: marzo-2016
Ubicación: Madrid
Mensajes: 31
Antigüedad: 8 años, 1 mes
Puntos: 1
Problema al editar entradas

Hola a tod@s.
Estoy creando una página de edición de entradas de un blog en php y me encuentro con el siguiente problema.
Después de loguearse, un administrador puede, evidentemente, editar una entrada. Pues bien, con el código que tengo actualmente me actualiza TODAS las entradas de la base de datos. Es decir si cambio el título de la entrada con el id=6 me cambia todos los títulos de entradas. Esto me pasa con el título y también con el texto, las etiquetas y el autor.

El administrador entra a editarentrada.php:
Código PHP:
<?php
                      $consulta 
$conexion -> query("SELECT * FROM entradas ORDER BY id DESC") or die ("Ha fallado la conexión");
                        while ( 
$registro $consulta -> fetch_assoc() ) {
                  
                          
$id $registro['id'];
                          
$titulo $registro['titulo'];
                          
$textobreve $registro['textobreve'];
                          
$textocompleto $registro['textocompleto'];
                          
$autor $registro['autor'];
                          
$fecha $registro['fecha'];
                          
$fechamostrada strtotime("$fecha");
                          
$etiqueta1 $registro['etiqueta1'];
                          
$etiqueta2 $registro['etiqueta2']; 
                  
?>
                          <div class="post-heading">
                          <h3><a href="detalle.php?id=<?php echo $id?>"><?php echo $titulo ?></a></h3>
                          </div>
                              <a href="editar.php?id=<?php echo $id?>" class="pull-right">Editar <i class="icon-angle-right"></i></a>
                            </div>
                        <?php }
                    
?>
Aquí seleccionamos la entrada que queremos editar y mando la información vía GET a editar.php?id= , donde aparece el formulario con los datos que hay en la entrada y un botón para actualizar.

Código HTML:
<div class="container"> 
Código PHP:
<?php
                  
include 'conexion_educamadrid.php';
 
                  
$consulta $conexion -> query("SELECT * FROM entradas WHERE id = '{$_GET['id']}' ") or die ("Ha fallado la conexión");
                    while ( 
$registro $consulta -> fetch_assoc() ) { 
                            
                      
$id $_GET['id'];
                      
$titulo $registro['titulo'];
                      
$textobreve $registro['textobreve'];
                      
$textocompleto $registro['textocompleto'];
                      
$fecha $registro['fecha'];
                      
$fechamostrada strtotime("$fecha");
                      
$autor $registro['autor'];
                      
$etiqueta1 $registro['etiqueta1'];
                      
$etiqueta2 $registro['etiqueta2'];
                      }                   
                
?>
Código HTML:
 <div class="post-heading">
                        <h3><?php echo $titulo ; ?></h3>
                      </div>
                      <p><?php echo $textocompleto; ?>
                      </p>
                      <div class="bottom-article">
                        <ul class="meta-post">
                          <li><i class="icon-calendar"></i><?php echo date ('d/m/Y', $fechamostrada); ?></a></li>
                          <li><i class="icon-user"></i><a href="#"><?php echo $autor ; ?></a></li>
                          <li><i class="icon-folder-open"></i><a href="#"><?php echo $etiqueta1 ; ?></a></li>
                          <li><i class="icon-folder-open"></i><a href="#"><?php echo $etiqueta2 ; ?></a></li>
                          <li><i class="icon-comments"></i><a href="#">4 Comments</a></li>
                        </ul>
                      </div>
                      <br />
                      <form action="editadaok.php" method="post">
                      <h6>Título </h6><input type="text" name="titulonuevo" size="100" value="<?php echo $titulo ?>"><br /></input><br />
                      <h6>Breve resumen </h6><textarea name="textobrevenuevo" rows="3" cols="110"><?php echo $textobreve ?></textarea><br />
                      <h6>Cuerpo de la entrada </h6><textarea name="textocompletonuevo" rows="10" cols="110"><?php echo $textocompleto ?></textarea><br />
                      <table width="100%" cellspacing="100" cellpadding="100">
                       <tr>
                         <td><h6>Autor </h6><input type="text" name="autornuevo" size="15" value="<?php echo $autor ?>"><br /></input><br /></td>
                         <td><h6>Fecha </h6><input type="date" name="fechanueva" value="<?php echo $fechamostrada ?>"><br /></input><br /></td>
                         <td><h6>Etiqueta 1 </h6><input type="text" name="etiqueta1nueva" size="15" value="<?php echo $etiqueta1 ?>"><br /></input><br /></td>
                         <td><h6>Etiqueta 2 </h6><input type="text" name="etiqueta2nueva" size="15" value="<?php echo $etiqueta2 ?>"><br /></input><br /></td>
                       </tr>  
                      </table>
                      <input type="submit" value="Actualizar"></input><br />
                      <br /><a href="editarentrada.php" class="btn btn-theme"><i class="fa fa-reply" aria-hidden="true"></i> Regresar al menú de entradas</a>
                      </form>
            </div> 
El formulario manda la acción a editadaok.php, que tiene el siguiente código:

Código PHP:
<?php
    
include 'conexion_educamadrid.php';
 
      
$consulta $conexion -> query("SELECT * FROM entradas") or die ("Ha fallado la conexión");
                           while ( 
$registro $consulta -> fetch_assoc() ) { 
 
                             
$titulo $registro['titulo'];
                             
$textobreve $registro['textobreve'];
                             
$textocompleto $registro['textocompleto'];
                             
$fecha $registro['fecha'];
                             
$fechamostrada strtotime("$fecha");
                             
$autor $registro['autor'];
                             
$etiqueta1 $registro['etiqueta1'];
                             
$etiqueta2 $registro['etiqueta2'];
                           }                
                       
         if (isset(
$_POST['titulonuevo'] )) {
         
$consulta $conexion ->query("UPDATE entradas SET titulo = '{$_POST['titulonuevo']}' WHERE titulo = '$titulo'"); 
         echo 
"<br />"."Título actualizado a: "?>
          <div class="post-heading">
                          <h3><?php echo $_POST['titulonuevo']."<br />" ?></h3>
                        </div> <?php
         
}
         else {
                 echo 
"Error, no se ha podido actualizar ".$titulo
                     }
 
      if (isset(
$_POST['textobrevenuevo'] )) {
         
$consulta $conexion ->query("UPDATE entradas SET textobreve = '{$_POST['textobrevenuevo']}' WHERE textobreve = '$textobreve'"); 
         echo 
"<br />"."Texto breve actualizado a: " ?>
          <p><?php echo $_POST['textobrevenuevo']."<br />" ?></p>
          <?php }
         else {
                 echo 
"Error, no se ha podido actualizar ".$textobreve
                     }
      if (isset(
$_POST['textocompletonuevo'] )) {
         
$consulta $conexion ->query("UPDATE entradas SET textocompleto = '{$_POST['textocompletonuevo']}' WHERE textocompleto = '$textocompleto'"); 
         echo 
"<br />"."Texto completo actualizado a: " ?>
          <p><?php echo $_POST['textocompletonuevo']."<br />"?></p>
          <?php }
         else {
                 echo 
"Error, no se ha podido actualizar ".$textocompleto
                     }
      if (isset(
$_POST['fechanueva'] )) {
         
$consulta $conexion ->query("UPDATE entradas SET fechamostrada = '{$_POST['fechanueva']}' WHERE fechamostrada = '$fechamostrada'");
         echo 
"<br />"."Fecha actualizada a: " ?>
          <p><?php echo $_POST['fechanueva']."<br />"?></p>
          <?php }
         else {
                 echo 
"Error, no se ha podido actualizar ".$fechamostrada
                     }
      if (isset(
$_POST['autornuevo'] )) {
         
$consulta $conexion ->query("UPDATE entradas SET autor = '{$_POST['autornuevo']}' WHERE autor = '$autor'");  
        echo 
"<br />"."Autor actualizado a: " ?>
        <p><?php echo $_POST['autornuevo']."<br />"?></p>
          <?php }
         else {
                 echo 
"Error, no se ha podido actualizar ".$autor
                     }
      if (isset(
$_POST['etiqueta1nueva'] )) {
         
$consulta $conexion ->query("UPDATE entradas SET etiqueta1 = '{$_POST['etiqueta1nueva']}' WHERE etiqueta1 = '$etiqueta1'");
         echo 
"<br />"."Etiqueta 1 actualizada a: " ?>
          <p><?php echo $_POST['etiqueta1nueva']."<br />"?></p>
          <?php }
         else {
                 echo 
"Error, no se ha podido actualizar ".$etiqueta1;
                  }
      if (isset(
$_POST['etiqueta2nueva'] )) {
         
$consulta $conexion ->query("UPDATE entradas SET etiqueta2 = '{$_POST['etiqueta2nueva']}' WHERE etiqueta2 = '$etiqueta2'");
         echo 
"<br />"."Etiqueta 2 actualizada a: "  ?>
          <p><?php echo $_POST['etiqueta2nueva']."<br />"?></p>
          <?php }
         else {
                 echo 
"Error, no se ha podido actualizar ".$etiqueta2
                  }
      
?>
Os agradezco si podéis echarle un vistazo para ayudarme a encontrar el error.
Gracias de antemano