Foros del Web » Programando para Internet » PHP »

Problemas al modificar un campo

Estas en el tema de Problemas al modificar un campo en el foro de PHP en Foros del Web. Hola, Otro d elos problemas que estoy teniendo, que seguramente es algo simple, sólo que no puedo resolverlo sola, es el siguiente: Cada vez que ...
  #1 (permalink)  
Antiguo 15/03/2006, 18:10
 
Fecha de Ingreso: marzo-2006
Mensajes: 86
Antigüedad: 11 años, 9 meses
Puntos: 0
Problemas al modificar un campo

Hola, Otro d elos problemas que estoy teniendo, que seguramente es algo simple, sólo que no puedo resolverlo sola, es el siguiente:

Cada vez que voy a modificar, cualquier campo que quiero modificar, me trae solo la primera palabra que tiene cargado el registro en ese campo.

Me pasa en todas las tablas que tengo, autore, noticias, etc.

Gracias
__________________
:stress: Patri:corazon:
  #2 (permalink)  
Antiguo 15/03/2006, 18:29
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 12 años, 9 meses
Puntos: 17
Pondrías tu código, así te podemos ayudar más fácil a encontrar el error?
  #3 (permalink)  
Antiguo 15/03/2006, 19:23
okram
Invitado
 
Mensajes: n/a
Puntos:
postea codigo, seria mejor, aunque se me ocurre una solucion rapida...

Las unicas veces que he visto ese tipo de problemas es cuando no colocan el atributo value de los inputs entre comillas. Asi, por ejemplo tengo:

$dato = "Hola mundo";

y hago un echo para colocar un valor por default en un input:

Código HTML:
<input type="text" name="campo1" value="<?=$dato?>"> 
o con php:
Código PHP:
//<?
echo "<input type=\"text\" name=\"campo1\" value=\"".$dato."\">";
si no colocas las comillas, el codigo html generado quedaria asi:

<input type="text" name="campo1" value=Hola mundo>

osea como no hay comillas, solo se interpreta como valor del atributo value la palabra Hola, mientras que mundo seria un atributo desconocido... usando comillas:

<input type="text" name="campo1" value="Hola mundo">

Si no logras solucionar tu problema con esto, seria bueno que postees algo de codigo
  #4 (permalink)  
Antiguo 15/03/2006, 20:19
 
Fecha de Ingreso: marzo-2006
Mensajes: 86
Antigüedad: 11 años, 9 meses
Puntos: 0
Aca va parte del código de modificar...

Esto es una locura....hace 1 hora que puse la duda en el for y ya tengo respuestas...estoy fascinada....gracias



Código PHP:
<?php

if ($enviar) {

conectarse();

$sql "UPDATE auto SET autonom='$nombre',autofot='$foto' WHERE autoide = '$codigo'";
$result mysql_query($sql);
controlar_error();
ECHO 
"EL AUTOR Nro.: " .$codigo" SE MODIFICO CORRECTAMENTE";
echo 
"<br>";
echo 
"<br>";
//header("Location:"lista_secciones.php");
echo "<a href=lista_autor.php><b>VOLVER A LA LISTA</b></a><BR>";
}else{
?>
        <Form  method='post' action='modif_autor.php'>
        <div align="left">C&oacute;digo: 
          <input readonly="TRUE" type="Text" value="<?php echo $autoide?>" Name="codigo">
          <br>
          <br>
          Nombre: 
          <input type="Text" value=<?php echo ".$autonom."?> Name="nombre">
          <br>
          <br>
          Imagen: 
          <input type="Text" value=<?php echo $autofot?> Name="foto">
          <br>
          <br>
          <input Name="enviar" type="submit" id="enviar" Value="Modificar Autores">
          <?php
}
?>
        </div>
      </Form></td>
  </tr>
</table>

</body>
</html>
__________________
:stress: Patri:corazon:

Última edición por Cluster; 17/03/2006 a las 13:20
  #5 (permalink)  
Antiguo 15/03/2006, 21:08
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 12 años, 10 meses
Puntos: 4
veamos creo ke deberia ir asi:

Código PHP:
<?
  
// por aki codigo
  
$sql "UPDATE auto SET autonom='".$_POST['nombre']."', autofot='".$_POST['foto']."' WHERE autoide= '".$_POST['codigo']."'";
  
$result mysql_query($sql);
  
// por aki lo demas
?>
ya no deberia dar problemas, te recomiendo usar las matrices superglobales $_POST y $_GET siempre ke sean necesarias

saludos
  #6 (permalink)  
Antiguo 15/03/2006, 21:23
okram
Invitado
 
Mensajes: n/a
Puntos:
Cita:
Iniciado por patriciadedo
Cada vez que voy a modificar, cualquier campo que quiero modificar, me trae solo la primera palabra que tiene cargado el registro en ese campo.
Tu problema es al momento de cargar el formulario para modificar o al actualizar la base de datos??

Si es al momentode cargar el formulario, esntonces el problema es el que te mencione en mi post anterior....

Código PHP:
<?php

if ($_POST['enviar']) {

conectarse();

$sql "UPDATE auto SET autonom='".$_POST['nombre']."', autofot='".$_POST['foto']."' WHERE autoide= '".$_POST['codigo']."'";
$result mysql_query($sql);
controlar_error();
ECHO 
"EL AUTOR Nro.: " .$_POST['codigo']. " SE MODIFICO CORRECTAMENTE";
echo 
"<br>";
echo 
"<br>";
//header("Location:"lista_secciones.php");
echo "<a href=lista_autor.php><b>VOLVER A LA LISTA</b></a><BR>";
}else{
?>
<html>
<head><title>Modificar</title>
<Form  method='post' action='modif_autor.php'>
        <div align="left">C&oacute;digo: 
          <input readonly="TRUE" type="Text" value="<?=$autoide?>" Name="codigo">
          <br>
          <br>
          Nombre: 
          <input type="Text" value="<?=$autonom?>" Name="nombre">
          <br>
          <br>
          Imagen: 
          <input type="Text" value="<?=$autofot?>" Name="foto">
          <br>
          <br>
          <input Name="enviar" type="submit" id="enviar" Value="Modificar Autores">
        </div>
      </Form></td>
  </tr>
</table>

</body>
</html>
          <?php
// Este cierre debe ser aplicado despues del codigo html
 
}
 
?>
Ademas, ZydRick tiene razon en cuanto al uso de las matrices superglobales... busca algo sobre eso...

Finalmente, con fines practicos, una manera resumida de escribir
<?php echo $foo; ?>

es
<?=$foo?>


Bueno asi debe funcionar tu codigo, postea si tienes mas problemas
  #7 (permalink)  
Antiguo 17/03/2006, 08:08
 
Fecha de Ingreso: marzo-2006
Mensajes: 86
Antigüedad: 11 años, 9 meses
Puntos: 0
Gente, sigue pasando que al cargar el formulario para modificar, me toma una palabra en cada campo, por ejemplo, esta cargado JUan Lopez, en el nombre, y en el formulario de modificar aparece Juan solamente. El tema es que si lo guardo asi, se me modifica el archivo y me queda Juan.
Gracias por el aguante
__________________
:stress: Patri:corazon:
  #8 (permalink)  
Antiguo 17/03/2006, 11:14
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 12 años, 10 meses
Puntos: 4
uhmmm pues ahora ke veo el codigo me doy cuenta ke no has hecho una consulta a la BD para ke te muestre los datos del usuario, has dicha consulta muestras los datos en el formulario y al enviar estos ya deberia actualizarte correctamente

saludos
  #9 (permalink)  
Antiguo 17/03/2006, 16:01
 
Fecha de Ingreso: marzo-2006
Mensajes: 86
Antigüedad: 11 años, 9 meses
Puntos: 0
A la consulta la hago en el archivo lista_autor, supongo que estoy pasando mal...
Acá va el código de ese archivo...
Gracias otra vez

<?php

conectarse();
// Mostramos todos los registros de nuestra BD
$result = mysql_query("SELECT * FROM auto order by autonom");

?>
</p>
<table border=1 align="center">
<tr>
<td>Cod.</td>
<td>Nombre</td>
<td>Imagen</td>
<td colspan=2>Acciones</td>
</tr>
<?php
while ($myrow = mysql_fetch_array($result)) {
echo "<tr>";

echo "<td>";
echo $myrow["autoide"];
echo "</td>";

echo "<td>";
echo $myrow["autonom"];
echo "</td>";

echo "<td>";
echo $myrow["autofot"];
echo "</td>";

echo "<td>";
echo "<a href=modif_autor.php?autoide=".$myrow["autoide"] ."&". "autonom=".$myrow["autonom"] ."&". "autofot=".$myrow["autofot"] . ">Modificar</a><br>";
echo "</td>";

echo "<td>";
echo "<a href=borrar_autor.php?autoide=".$myrow["autoide"].">Borrar</a><br>";
echo "</td>";

echo "</tr>";


}
?>
__________________
:stress: Patri:corazon:
  #10 (permalink)  
Antiguo 17/03/2006, 16:53
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 12 años, 10 meses
Puntos: 4
a ver prueba esto:

modif_autor.php
Código PHP:
<html>
<head><title>Modificar</title>
<body>
<?php
    
if ($enviar) {
        
conectarse();
        
$sql "UPDATE auto SET autonom='".$_POST['nombre']."', autofot='".$_POST['foto']."' WHERE autoide= '".$_POST['codigo']."'";
        
$result mysql_query($sql);
        
controlar_error();
        echo 
"EL AUTOR Nro.: " .$_POST['codigo']. " SE MODIFICO CORRECTAMENTE<br /><br />";
        echo 
"<a href=lista_autor.php><b>VOLVER A LA LISTA</b></a><BR>";
    }else {
        
$query mysql_query("SELECT * FROM auto");
        while(
$row mysql_fetch_array($query)) {
        
$autoide $row['autoide'];
        
$autonom $row['autonom'];
        
$autofot $row['autofot'];
?>
    <Form  method='post' action='modif_autor.php'>
    <div align="left">C&oacute;digo: 
      <input readonly="TRUE" type="Text" value="<?=$autoide?>" name="codigo">
      <br>
      <br>
      Nombre: 
      <input type="Text" value="<?=$autonom?>" name="nombre">
      <br>
      <br>
      Imagen: 
      <input type="Text" value="<?=$autofot?>" name="foto">
      <br>
      <br>
      <input name="enviar" type="submit" id="enviar" Value="Modificar Autores">
    </div>
    </Form>
<?
        
// cerramos el bucle while
    
// cerramos el if
?> 
</body>
</html>
no lo he probado pero deberia de funcionar, lo ke hace tal script es lo siguiente

preguntamos si los datos del formulario han sido enviados, si la respuesta es SI, hace la actualizacion en la Base de Datos, de lo contrario se hace la consulta a la Base de datos segun los datos recogidos de la URL y mostramos en un formulario para editarlos.

espero ke te pueda servir.

saludos
  #11 (permalink)  
Antiguo 19/03/2006, 10:50
 
Fecha de Ingreso: marzo-2006
Mensajes: 86
Antigüedad: 11 años, 9 meses
Puntos: 0
esto funciona asi....
el archivo lista_autor, obviamente hace el listado de autores, con dos vínculos: MODIFICAR Y BORRAR. Al hacer clic en modificar de un autor, teóricamente toma el valor de las campos y los manda al archivo modif_autor. El tema es que pasa solamente la primera palabra del cammpo nombre, o sea hasta el primer espacio.
Puede ser algun problema con el tipod e datos de los campos de la tabla????? varchar, char?

Le spaso otra vez el codigo de los dos archivos, para ver si me ayudan en esto, el problema es que con todas las modificacione sme pasa lo mismo, y es un sistema de noticias, obviamente no me pongo muy contenta cuando me trunca todo el desarroollo d ela noticia...acá va el de autor...

lista_autor

<?php include("../conex.php"); ?>
<html>
<head>
<title>LISTADO DE AUTORES</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>

<body leftmargin="0" topmargin="0">
<table width="100%" height="100%" border="0" cellpadding="8" cellspacing="0">
<tr bgcolor="#99CCCC">
<td height="50" colspan="2"><div align="center"><strong><font size="5"><em>CADENA
SER ARGENTINA</em></font></strong></div></td>
</tr>
<tr>
<td width="21%" valign="top" bgcolor="#99CCCC"> <table width="85%" height="157" border="1" align="left">
<tr>
<td bgcolor="#66CC99"><font size="3"><strong><em>NOTICIAS</em></strong></font></td>
</tr>
<tr>
<td bgcolor="#99CCCC"> <div align="center"><a href="alta_noticias.php">Agregar</a></div></td>
</tr>
<tr>
<td bgcolor="#99CCCC"> <div align="center"><a href="consulta_noticias.php">Consultar</a></div></td>
</tr>
<tr>
<td bgcolor="#66CC99"><font size="3"><strong><em>SECCIONES</em></strong></font></td>
</tr>
<tr>
<td bgcolor="#99CCCC"> <div align="center"><a href="alta_secciones.php">Agregar</a></div></td>
</tr>
<tr>
<td bgcolor="#99CCCC"> <div align="center"><a href="lista_secciones.php">Consultar</a></div></td>
</tr>
<tr>
<td bgcolor="#66CC99"><font size="3"><strong><em>AUTORES</em></strong></font></td>
</tr>
<tr>
<td bgcolor="#99CCCC"> <div align="center"><a href="alta_autor.php">Agregar</a></div></td>
</tr>
<tr>
<td bgcolor="#99CCCC"> <div align="center"><a href="lista_autor.php">Consultar</a></div></td>
</tr>
</table></td>
<td width="82%" valign="top"><p align="center"><strong><font size="4"><em>LISTADO
DE AUTORES</em></font></strong>
<?php

conectarse();
// Mostramos todos los registros de nuestra BD
$result = mysql_query("SELECT * FROM auto order by autonom");

?>
</p>
<table border=1 align="center">
<tr>
<td>Cod.</td>
<td>Nombre</td>
<td>Imagen</td>
<td colspan=2>Acciones</td>
</tr>
<?php
while ($myrow = mysql_fetch_array($result)) {
echo "<tr>";

echo "<td>";
echo $myrow["autoide"];
echo "</td>";

echo "<td>";
echo $myrow["autonom"];
echo "</td>";

echo "<td>";
echo $myrow["autofot"];
echo "</td>";

echo "<td>";
echo "<a href=modif_autor.php?autoide=".$myrow["autoide"] ."&". "autonom=".$myrow["autonom"] ."&". "autofot=".$myrow["autofot"] . ">Modificar</a><br>";
echo "</td>";

echo "<td>";
echo "<a href=borrar_autor.php?autoide=".$myrow["autoide"].">Borrar</a><br>";
echo "</td>";

echo "</tr>";


}
?>
</table></p>
</td>
</tr>
</table>
<b></b>
</body>
</html>



modif_autor

<?php include("../conex.php"); ?>
<html>
<head>
<title>MODIFICAR AUTORES</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>

<body leftmargin="0" topmargin="0">
<table width="100%" height="100%" border="0" cellpadding="8" cellspacing="0">
<tr bgcolor="#99CCCC">
<td height="50" colspan="2"><div align="center"><strong><font size="5"><em>CADENA
SER ARGENTINA</em></font></strong></div></td>
</tr>
<tr>
<td width="21%" valign="top" bgcolor="#99CCCC"> <table width="85%" height="157" border="1" align="left">
<tr>
<td bgcolor="#66CC99"><font size="3"><strong><em>NOTICIAS</em></strong></font></td>
</tr>
<tr>
<td bgcolor="#99CCCC"> <div align="center"><a href="alta_noticias.php">Agregar</a></div></td>
</tr>
<tr>
<td bgcolor="#99CCCC"> <div align="center"><a href="consulta_noticias.php">Consultar</a></div></td>
</tr>
<tr>
<td bgcolor="#66CC99"><font size="3"><strong><em>SECCIONES</em></strong></font></td>
</tr>
<tr>
<td bgcolor="#99CCCC"> <div align="center"><a href="alta_secciones.php">Agregar</a></div></td>
</tr>
<tr>
<td bgcolor="#99CCCC"> <div align="center"><a href="lista_secciones.php">Consultar</a></div></td>
</tr>
<tr>
<td bgcolor="#66CC99"><font size="3"><strong><em>AUTORES</em></strong></font></td>
</tr>
<tr>
<td bgcolor="#99CCCC"> <div align="center"><a href="alta_autor.php">Agregar</a></div></td>
</tr>
<tr>
<td bgcolor="#99CCCC"> <div align="center"><a href="lista_autor.php">Consultar</a></div></td>
</tr>
</table></td>
<td width="81%" valign="top"><H1 align="center"><font size="4"><strong><em>MODIFICACION
DE SECCIONES</em></strong></font></H1>

<!-- Muestro el registro seleccionado -->
<?php
if ($enviar) {
conectarse();
$sql = "UPDATE auto SET autonom='$nombre' WHERE autoide = '$codigo'";
$result = mysql_query($sql);
controlar_error();
ECHO "EL AUTOR Nro.: " .$codigo. " SE MODIFICÓ CORRECTAMENTE";
echo "<br>";
echo "<br>";
echo "<a href=lista_autor.php><b>VOLVER A LA LISTA</b></a><BR>";
}else{
conectarse();

$query = mysql_query("SELECT * FROM auto WHERE autoide = '$codigo'");
while($row = mysql_fetch_array($query)) {
$autoide = $row['autoide'];
$autonom = $row['autonom'];
$autofot = $row['autofot']; }
echo $autonom;
?>
<Form method='post' action='modif_autor.php'>
<div align="left">C&oacute;digo:
<input readonly="TRUE" type="Text" value= <? echo $autoide;?> Name="codigo">
<br>
<br>
Descripcion:
<input type="Text" value= <?php echo $autonom; ?> Name="nombre">
<br>
<br>
<input type="submit" Value="Modificar Autor" Name="enviar">
<?php
}
?>
</div>
</Form></td>
</tr>
</table>

</body>
</html>
__________________
:stress: Patri:corazon:
  #12 (permalink)  
Antiguo 19/03/2006, 15:50
 
Fecha de Ingreso: diciembre-2005
Mensajes: 19
Antigüedad: 12 años
Puntos: 0
Mismo problema.Posible solución

Tuve el mismo problema hace unos cuantos posts y la única solución que encuentro es sustituir el campo input type por uno que sea textfield y entonces si que funciona,aparecen todas las palabras correctamente...Aunque me parece que no deja de ser un parche...Supongo que debe haber alguna manera de que con un input lo haga.


3w.forosdelweb.com/showthread.php?t=378329
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:50.