Foros del Web » Programando para Internet » PHP »

¿porque no me deja editar el registro?

Estas en el tema de ¿porque no me deja editar el registro? en el foro de PHP en Foros del Web. ************************************************* este script me permite listar todos los registros para luego editarlos o borrarlos. Si me deja borrar el registro que yo quiero, pero no ...
  #1 (permalink)  
Antiguo 14/11/2003, 15:43
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 15 años, 6 meses
Puntos: 5
¿porque no me deja editar el registro?

*************************************************
este script me permite listar todos los registros para luego editarlos o borrarlos. Si me deja borrar el registro que yo quiero, pero no me deja editar una noticia para modificarla, ¿que me falla en el código?

gracias.
************************************************** *

Código PHP:
<?php
$bdd_host 
"localhost";         $bdd_user "xxxx";
$bdd_password "xxxx"$bdd "xxxxxx";

    
$conecta mysql_connect($bdd_host,$bdd_user,$bdd_password);
    
mysql_select_db($bdd,$conecta);
/* Este archivo lista todas las noticias y da la opción de editarlas o borrarlas */

/* Editar y Del actualizaran la base de datos */
if ($editar) {
      
$query "UPDATE noticias SET autor='$autor', titulo='$titulo', fecha='$fecha', contenido='$contenido' WHERE id=$id"mysql_query($query);

      echo 
"<b>Noticia editada<br></b>";
}
if (
$del) { /* Para borrar se usara news_admin.php?del=12 el numero es la id ke se borrará */
          
$query "delete from noticias where id='$del'"mysql_query($query);
          echo 
"<b>Borrada noticia $id</b>";
}
/* edit y del son las variables que marcaremos en los query strings su contenido sera la id de la noticia */
if ($edit) { /* Para editar se usara news_admin.php?edit=5 el numero es la id ke se editará */
    
$query "SELECT * FROM noticias where id='$editar'"$resp mysql_query($query) or die("Error: $query <br>MySQL dice: ".mysql_error());
        while (
$datos mysql_fetch_array($resp)) {
echo 
" <form action='news_admin.php' method='post' name='admin_noticias'>
        <br>
        Edita la noticia:<br>
               <br>

      autor: <input name='autor' type='text' id='autor' value='$datos[autor]' size='71'>
        <br>
        data: <input name='fecha' type='text' id='fecha' value='$datos[fecha]' size='71'>
        <br>
        titol: <input name='titulo' type='text' id='titulo' value='$datos[titulo]' size='71'>
        <br>
        <textarea name='contenido' cols='70' rows='20' id='contenido'> value='$datos[contenido]'</textarea>
        <p align='center'>
          <input type='submit' name='editar' value='Editar la noticia!'>
        </p>
"
;

        }
}

if (empty(
$editar) && empty($edit) && empty($del)) {
/* Indicamos que si no estan marcadas estas 4 variables */
/* es decir que ni se edita ni se borra una noticia .... que muestre la lista */
echo "<br>Sistema de administración de noticias.<br><br>
    <table width='100%' border='0' class='taula9'>
        <tr bgcolor='#000000'>
            <td align='center'><font color='#FFFFFF'>id</font></td>
            <td align='center'><font color='#FFFFFF'>Data</font></td>
            <td align='center'><font color='#FFFFFF'>T&iacute;tol</font></td>
            <td align='center' width='100'><font color='#FFFFFF'>Acci&oacute;</font></td>
        </tr>"
;

$query "select * FROM noticias ORDER BY fecha"$resp mysql_query($query) or die("Error: $query <br>MySQL dice: ".mysql_error());
    while (
$news mysql_fetch_array($resp)) {

    echo
" <tr><td>$news[id]</td><td>$news[fecha]</td><td>$news[titulo]</td><td align='center'><a href='news_admin.php?edit=$news[id]'>Editar</a> | <a href='news_admin.php?del=$news[id]'>Borrar</a></td></tr>";
    }
}
?>
  #2 (permalink)  
Antiguo 14/11/2003, 16:30
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 14 años, 4 meses
Puntos: 2
Por lo que veo en las otras sentencias usas el id como un char, con lo que deberías cambiar el update:
Código PHP:
$query "UPDATE noticias SET autor='$autor', titulo='$titulo', fecha='$fecha', contenido='$contenido' WHERE id='$id'"
Un saludo.
  #3 (permalink)  
Antiguo 14/11/2003, 17:42
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 15 años, 6 meses
Puntos: 5
no sé si en verdad ese es un problema.
lo que sí tengo claro es que al seleccionar una noticia, no sale el formulario que me permita modificar los campos para almacenarla despues en la base de datos.

  #4 (permalink)  
Antiguo 14/11/2003, 17:49
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

El parametro se llama edit, pero pones en la consulta $editar.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 14/11/2003, 18:16
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 15 años, 6 meses
Puntos: 5
gracias josemi, ya vi el error y lo arregle.


*** ahora ocurre lo siguiente: en el campo "textarea" sale el contenido precedido de "value=......"
¿que será?

para mayor descripción:

autor:
data:
titol:
value='xxxxxxxxxxxxxxxxxxxxxx dfafdsfsdfsdf<br>sskjfhskfksdh shfisdhfishi ishfihsidf ishfishdi hisfh ishifhsdif ishfi isfhishd ishfid isfhi hsif isfh <br>'
  #6 (permalink)  
Antiguo 15/11/2003, 15:18
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Es que es eso lo que le has dicho que haga:

<textarea name='contenido' cols='70' rows='20' id='contenido'> value='$datos[contenido]'</textarea>

El valor del textarea es lo que va entre <textarea> y </textarea>, literalmente. Aunque esto es HTML duro y puro, nada de magia PHP.

Asi que pon

<textarea name='contenido' cols='70' rows='20' id='contenido'>$datos[contenido]</textarea>

sin dejar ningun espacio, ya que si dejas un espacio, este se añadira (como ya has visto).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 17:42.