Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

No modifica todo y elimina contenido

Estas en el tema de No modifica todo y elimina contenido en el foro de Mysql en Foros del Web. Tengo el siguiente problema con un trabajo de la universidad, de hecho no se si es no php o es problema en mysql, ya que ...
  #1 (permalink)  
Antiguo 07/08/2010, 10:53
Avatar de MarioAlejandroCR2  
Fecha de Ingreso: mayo-2010
Ubicación: Esparza - Puntarenas
Mensajes: 98
Antigüedad: 14 años
Puntos: 2
Pregunta No modifica todo y elimina contenido

Tengo el siguiente problema con un trabajo de la universidad, de hecho no se si es no php o es problema en mysql, ya que todo los cambios son en un sitio .php pero las consultas se hacen en un procedimiento almacenado en mysql:
Cita:
Cuento con los campos:
idnoticia
titulo
contenido
autor
tag(categoría)
fecha y hora
La consulta modifica todos los cambios excepto titulo y contenido, por razones lógicas idnoticia, no lo hace, y sea como sea al modificar los campos que si se pueden eliminan todo el contenido de la noticia. no puedo modificar titulo y contenido, sin embargo al "realizar el cambio" me menda un mensaje que si se pudo.

Acá el procedimiento almacenado y el código php más el formulario:

Código MySQL:
Ver original
  1. [CODE]DELIMITER //
  2.  
  3. CREATE DEFINER=`root`@`localhost` PROCEDURE `modNoticia`(in ntitulo varchar(75),
  4.                             in ncontenido TEXT,
  5.                             in nautor varchar (50),
  6.                             in nfecha DATE,
  7.                             in nhora TIME,
  8.                             in ntag varchar(15))
  9.  
  10. update noticia set  titulo=ntitulo,
  11.                     contenido=ncontenido,
  12.                     autor=nautor,
  13.                     fecha=nfecha,
  14.                     hora=nhora,
  15.                     tag=ntag
  16. where titulo=ntitulo;  
  17. end//[/CODE]

Este llama al método de modificar
Código PHP:
Ver original
  1. [PHP]<?php
  2. [COLOR="Navy"]$Formulario = $_SERVER['PHP_SELF'];
  3. if ((isset($_POST["OC_insertar"])) && ($_POST["OC_insertar"] == "formitamod")) {
  4. $insertSQL = sprintf("call modNoticia('".$_POST["titulo"]."','".$_POST["contenido"]."','".$_POST["autor"]."','".$_POST["fecha"]."','".$_POST["hora"]."','".$_POST["tag"]."')");
  5.  
  6. mysql_select_db($Basedatos, $MiConexion);
  7. $Result1 = mysql_query($insertSQL, $MiConexion) or die(mysql_error());
  8.  
  9. $insertIrA = "./exitomodnoticia.php?noti=".$_POST['titulo'];
  10. header(sprintf("Location: %s", $insertIrA));
  11.  
  12. echo $_POST['membre'];
  13. };// fin del if [/COLOR]
  14. ?>[/PHP]

Este recorre y muestra un select con todas las noticias al presionarlo carga el formulario con todo el contenido de la noticia seleccionada
Código PHP:
Ver original
  1. [PHP]<?php
  2. [COLOR="Green"]session_start();
  3. require_once('conexion.php');
  4.  
  5. //cAPTURA VALOR ENVIADO COMO PARAMETRO
  6. //Consulta los row_regis del usuario para la interfase
  7. mysql_select_db($Basedatos, $MiConexion);
  8. $AuxSql = "SELECT * FROM noticia order by idnoticia desc";
  9. $regis = mysql_query($AuxSql, $MiConexion) or die(mysql_error());
  10. $Accion_Formulario = $_SERVER['PHP_SELF'];
  11. if ((isset($_POST["OC_insertar"])) && ($_POST["OC_insertar"] == "formita")) {
  12. $SQL = sprintf("select * from noticia where titulo='".$_POST['lsttitulo']."' order by idnoticia desc");
  13. mysql_select_db($Basedatos, $MiConexion);
  14. $regis2 = mysql_query($SQL, $MiConexion) or die(mysql_error());
  15. $row_regis2= mysql_fetch_assoc($regis2);
  16. }// fin del if[/COLOR]
  17. ?>[/PHP]

Y este es el formulario:
Código PHP:
[COLOR="Purple"]<h1>Modificar noticia</h1>
          Seleccione la noticia que desea modificar
 <form method="post" name="formita" onsubmit='return checkdata(this)' action="<?php echo $Accion_Formulario?>" >
              <select name="lsttitulo">
<?php
while($row_regis mysql_fetch_assoc($regis)){
echo 
"<option value='".$row_regis["titulo"]."'>".$row_regis["titulo"]."</option>";
}
?>
            </select></td>
        </tr>
        <tr>
          <td><input name="enviar" type="submit" value="Mostrar" class="white"/>
            <p></p></td>
        </tr>
        <tr>
          <td><hr /></td></tr>
        <input type="hidden" name="OC_insertar" value="formita">
      </form>
      
      <?php
      
echo "<form method='post' name='formita' onsubmit='return checkdata(this)'>";
          echo 
"<div>ID Noticia:</div>";
          echo 
"<div><input name='idnoticia' value='".$row_regis2['idnoticia']."' type='text' size='80' maxlength='9' /></div>
          <div>Título:</div>
          <div><input name='titulo' value='"
.$row_regis2['titulo']."' type='text' size='80' maxlength='9' /></div>
          <div>Contenido:</div>
          <div><textarea name='"
.$row_regis2['contenido']."' type='text' style='width:500px; height:500px;'>".$row_regis2['contenido']."</textarea></div>
          <div>Autor:</div>
          <div><input name='autor' value='"
.$row_regis2['autor']."' type='text' size='80' maxlength='9' /></div>
          <div>Fecha:</div>
          <div><input name='fecha' value='"
.$row_regis2['fecha']."' type='text' size='80' maxlength='10' /></div>
          <div>Hora:</div>
          <div><input name='hora' value='"
.$row_regis2['hora']."' type='text' size='80' maxlength='9' /></div>
          <div>Categoría:</div>
          <div><input name='tag' value='"
.$row_regis2['tag']."' type='text' size='80' maxlength='9' /></div>
          <br />"
;
               
 echo 
"<div><input name='enviar' type='submit' value='Modificar noticia' class='white'/></div>
        <input type='hidden' name='OC_insertar' value='formitamod'>
      </form>"
;[/COLOR]
?>
De antemano gracias, y creo que el problema esta en el procedimiento almacenado

Etiquetas: contenido, todo
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 19:06.