Foros del Web » Programando para Internet » PHP »

Problemas usando UPDATE, Fustrado.

Estas en el tema de Problemas usando UPDATE, Fustrado. en el foro de PHP en Foros del Web. Hola, hace meses que me eh metido un poco en php y cuando hacia INSERT, DELETE O UPDATE me funcionaban sin problemas. Ahora estoy intentando ...
  #1 (permalink)  
Antiguo 02/06/2004, 14:38
Avatar de Daniel Artes  
Fecha de Ingreso: julio-2003
Mensajes: 102
Antigüedad: 14 años, 4 meses
Puntos: 0
Pregunta Problemas usando UPDATE, Fustrado.

Hola, hace meses que me eh metido un poco en php y cuando hacia INSERT, DELETE O UPDATE me funcionaban sin problemas. Ahora estoy intentando un nuevo metodo de hacer update y no quiere funcionar. Estoy seguro que el codigo esta perfecto y eh visto muchos post en ingles de gente con problemas similares pero nadie les responde. INSERT Y DELETE van bien pero a la hora de UPDATE no funcionara.

Aqui esta el codigo:

Este archivo es update.php

Código PHP:
<?
include("config.php");
mysql_connect(localhost,$username,$password);
@
mysql_select_db($database) or die( "no se puede conectar!");
$query="SELECT * FROM flash WHERE id='$id'";
$result=mysql_query($query);
$num=mysql_numrows($result); 
mysql_close();

$i=0;
// las tablas son: numtype,id,titulo,descripcion,autor,jugar,imagen,idioma,tamano,hits,url
while ($i $num) {
$id=mysql_result($result,$i,"id");
$categoria=mysql_result($result,$i,"categoria");
$titulo=mysql_result($result,$i,"titulo");
$descripcion=mysql_result($result,$i,"descripcion");
$autor=mysql_result($result,$i,"autor");
$urljuego=mysql_result($result,$i,"urljuego");
$imagen=mysql_result($result,$i,"imagen");
$idioma=mysql_result($result,$i,"idioma");
$tamano=mysql_result($result,$i,"tamano");
$hits=mysql_result($result,$i,"hits");
$url=mysql_result($result,$i,"url");
$id=mysql_result($result,$i,"id");

?>

<form action="updated.php">
<input type="hidden" name="id" value="<? echo "$id"?>">
categoria: <input type="text" name="categoria" value="<? echo "$categoria"?>"><br>
titulo: <input type="text" name="titulo" value="<? echo "$titulo"?>"><br>
descripcion: 
  <textarea name="descripcion"><? echo "$descripcion"?></textarea>
  <br>
autor: <input type="text" name="autor" value="<? echo "$autor"?>"><br>
jugar: <input type="text" name="urljuego" value="<? echo "$urljuego"?>"><br>
imagen: <input type="text" name="imagen" value="<? echo "$imagen"?>"><br>
idioma: <input type="text" name="idioma" value="<? echo "$idioma"?>"><br>
tamano: <input type="text" name="tamano" value="<? echo "$tamano"?>"><br>
hits: <input type="text" name="hits" value="<? echo "$hits"?>"><br>
url: <input type="text" name="url" value="<? echo "$url"?>"><br>
<input type="Submit" value="Update">
</form>

<?
++$i;

?>
Este es el updated.php citado anteriormente en update.php

Código PHP:
<?
include("dbinfo.inc.php");
mysql_connect(localhost,$username,$password);
$query="UPDATE flash SET 
categoria='categoria',
titulo='titulo',
descripcion='descripcion',
autor='autor',
jugar='jugar',
imagen='imagen',
idioma='idioma',
tamano='tamano',
hits='hits',
url='url'
WHERE id='id'"
;
mysql_select_db(daniel_flash) or die( "Unable to select database");
mysql_query($query);
echo 
"Record Updated";
mysql_close();
?>
Diganme porfavor, ustedes ven algun error? Alomejor conocen otra forma de hacer update que funcione bien.
Les agradeceria mucho si me dan ayuda.

Tambien pesanba que podria ser las tablas en la base de dato.
Esta es la tabla en caso de que alguien la necesite:

Código:
CREATE TABLE `flash` (
  `categoria` varchar(150) NOT NULL default '',
  `id` int(150) NOT NULL auto_increment,
  `titulo` varchar(150) NOT NULL default '',
  `descripcion` varchar(250) NOT NULL default '',
  `autor` varchar(150) NOT NULL default '',
  `jugar` varchar(150) NOT NULL default '',
  `imagen` varchar(150) NOT NULL default '',
  `idioma` varchar(150) NOT NULL default '',
  `tamano` varchar(150) NOT NULL default '',
  `hits` bigint(8) NOT NULL default '0',
  `url` varchar(50) NOT NULL default '',
  KEY `id` (`id`),
  KEY `count` (`hits`)
) TYPE=MyISAM AUTO_INCREMENT=594

Saludos!


PD: me parece que esto deberia ir en el foro de base de datos, pero es PHP Y SQL. Y me parece que el error podria ser en php.

saludos

Última edición por Daniel Artes; 02/06/2004 a las 15:06
  #2 (permalink)  
Antiguo 02/06/2004, 14:49
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Con categoria='categoria' asignas la cadena 'categoria', no el valor del formulario. Tampoco especificas method en el form, asi que es GET. Y GET con un textarea no me parece buena idea. Y esta el asunto de register_globals.

No dices si es un error o simplemente que no actualiza con los valores correctos. PAra ver si es un error de MySQL, usa mysql_error() (www.php.net/mysql_error):
Código PHP:
mysql_query($query) or die("Error $query <br>MySQL dice: ".mysql_error()); 
Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 02/06/2004, 15:03
Avatar de Daniel Artes  
Fecha de Ingreso: julio-2003
Mensajes: 102
Antigüedad: 14 años, 4 meses
Puntos: 0
OK, si se me fueron unos detalles.
1> yo abro el formulario d ela siguinete manera:
update.php?id=$id

Exemplo update.php?id=227

Bueno al hacer eso el formulario se carga sin problemas con la informacion de el row con id 227, o sea qeu se conecta sin problemas y recibe la informacion sin problemas.

Entonces el problema es al enviar la informacion a la base de datos.

Eh puesto en cada input del formulario un a_ antes del nombre.
ejemplo:

Código HTML:
descripcion: <textarea name="a_descripcion"><? echo "$descripcion"?></textarea> 
Y el updated.php aghora esta asi:

Código PHP:
<?
include("dbinfo.inc.php");
mysql_connect(localhost,$username,$password);
$query="UPDATE flash SET 
categoria='a_categoria',
titulo='a_titulo',
descripcion='a_descripcion',
autor='a_autor',
jugar='a_jugar',
imagen='a_imagen',
idioma='a_idioma',
tamano='a_tamano',
hits='a_hits',
url='a_url'
WHERE id='id'"
;
mysql_select_db(daniel_flash) or die( "Unable to select database");
mysql_query($query);
echo 
"Record Updated";
mysql_close();
?>

Bueno, no creo que sea eso de mothod= "GET", porque los datos son recibidos sin problemas, el problema es al enviarlos. No entiendo que pueda estar mal nuevamente.


saludos y muchas gracias por tu tiempo, espero que logres ver algo mas que podria causar que el update no funcione.

Última edición por Daniel Artes; 02/06/2004 a las 15:07
  #4 (permalink)  
Antiguo 02/06/2004, 15:07
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Veamos, es que a_categoria en updated es solo la cadena de texto a_categoria. Si quieres referirte a un campo de un formulario en un entorno con register_globals a ON, podrias hacerlo con $a_categoria. Aunque es muy recomendable que si la version de PHP es 4.1 o superior, uses $_GET, $_POST y el resto de arrays superglobales.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 02/06/2004, 15:12
Avatar de Daniel Artes  
Fecha de Ingreso: julio-2003
Mensajes: 102
Antigüedad: 14 años, 4 meses
Puntos: 0
Ohhh, ya comprendi. Enconces se me hara bien cpmplicado. Pues si entonces ese tipo de formulario como que ya paso de modas no? Me podrias donde encontrar un ejemplodo de uno usando $_GET, $_POST.

Saludos!
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 01:42.