Foros del Web » Programando para Internet » PHP »

Porque no funciona??? quiero actualizar un registro

Estas en el tema de Porque no funciona??? quiero actualizar un registro en el foro de PHP en Foros del Web. algien sabe pq no funciona... lo quiero hacer todo en un fichero... NO DA NINGUN ERROR ESO ES LO MAS GRACIOSO Yo pienso que es... ...
  #1 (permalink)  
Antiguo 12/05/2003, 22:34
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 6 meses
Puntos: 2
Pregunta Porque no funciona??? quiero actualizar un registro

algien sabe pq no funciona... lo quiero hacer todo en un fichero...
NO DA NINGUN ERROR ESO ES LO MAS GRACIOSO

Yo pienso que es... porque no le llegan dos datos para modificarlos... pero como no dice nada... si por lo menos dijese Error 23x)$?....

<?php

echo <<< HTML
<tr>
<td>
<div align="center">
<a href="$pag?accion=modificar">Modificar</a>
</font>
</div>
</td>
</tr>
HTML;

if ($_GET['accion']=="modificar"){
require ("../config.php"); //CARGA EL CONFIG.PHP CON LOS DATOS DE LA CONEXION
$IdConexion = mysql_connect($Servidor, $Usuario,$Password);
mysql_select_db($NombreBD, $IdConexion);

echo '<FORM METHOD="POST" ACTION="a2.php?accion=hacernuevo"><br>';

echo <<< HTML
<table width="350" border="1" cellspacing="0" cellpadding="4" align="center">
<tr>
<td colspan="2" height="30" bgcolor="#0099FF">
<div align="center">
<b>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2"">
.: Registro de Usuarios :.
</font>
</b>
</div>
</td>
</tr>
<tr bgcolor="#FFFFCC">
<td width="158">
<div align="right">
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
Usuario :
</font>
</div>
</td>
<td width="170">
<b>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<input type="text" name="postpassword" class="imputbox" maxlength="15">
</font>
</b>
</td>
</tr>
<tr bgcolor="#FFFFCC">
<td colspan="2" height="40">
<div align="center">
<input type="submit" name="Submit" value=" Registrar " class="botones" >
<BR>
</div>
</td>
</tr>
</table>
</form>
HTML;

# Creamos la sentencia SQL y la ejecutamos.
$sSQL="Select postuser From $NombreTB Order By postuser";
$result=mysql_db_query($NombreBD,$sSQL);

echo '<center><select name="postuser">';

# Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo '<option>'.$row["postuser"];}
}

if ($_GET['accion']=="hacernuevo"){
require ("../config.php"); //CARGA CONFIG.PHP DATOS CONEXION

$IdConexion = mysql_connect($Servidor, $Usuario,$Password);
mysql_select_db($NombreBD, $IdConexion);

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Update $NombreTB Set postpassword = '$postpassword' Where postuser = '$postuser'";
mysql_db_query($NombreBD, $sSQL);

echo '<div align="center">
<b>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2"">
estoy aqui...pero no funciona...???...aaahgg
</font>
</b>
</div>';
}
?>

Última edición por nuevo; 12/05/2003 a las 23:54
  #2 (permalink)  
Antiguo 12/05/2003, 22:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si nos dices el "error" que te sucede .. sería lo ideal ..

Para empezar .. te recomendaría que usasese en todas las llamadas a funciones de Mysql esta estructura y llamada a la función mysql_error() para detectar errores de Msyql (tanto de conexiones .. como de SQL ..)

Código PHP:
mysql_db_query($NombreBD$sSQL) or die (mysql_error()); 
Así con todas las funciones mysql_xxxx() que uses en tu código ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 12/05/2003, 23:23
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 6 meses
Puntos: 2
El problema es que no da error

gracias por contestar...pero no da error, voy a colocar esta linea que me has dado, gracias....

Ya he puesto la linea que me has dicho... y como ya te digo... ningun error visible, la historia esque salta del formulario hasta la segunda etiqueta, la que tiene que introducir los datos, pero no llega a funcionar porque no lo hace, pero si que lee las lineas de codigo, ya que puse una que me lo indica... pero nada de nada... no quiere actualizar los registros de la base de datos... yo se hacerlo en 2 ficheros... pero no quiero... tiene que funcionar de esta manera bien, seguro que me falta algo... pero lo raro es que no da ningun ERROR.... gracias por ayudarme... pero sabes porque pasa esto...?
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 12/05/2003 a las 23:30
  #4 (permalink)  
Antiguo 12/05/2003, 23:44
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 15 años, 4 meses
Puntos: 2
¿Pero qué te cuesta hacerlo en 2 páginas hombre? Si sabes hacerlo en 2 páginas pues hazlo así.

Otra cosa, ese código no se entiende. Recuerda siempre tabular el código y postearlo tabulado para entenderlo.

Yo definitivamente así no entiendo nada. Saludos !
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #5 (permalink)  
Antiguo 12/05/2003, 23:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si haces un echo a:
$sSQL="Update $NombreTB Set postpassword = '$postpassword' Where postuser = '$postuser'";

echo $sSQL;

Obtienes el valor esperado de las variables que usas? .. te lo digo porqué usas $_GET para recoger el valor de esa variable de control que usas para indicar el proceso que ha de hacer dentro del mismo script .. Pero para el resto de variables de tu formulario no usas el $_POST para recogerlas .. Lo cual (fuera que esté sea o no el error) deberías usarlo para que tus scripts funcionen en configuraciones de php (php.ini) con la directiva register_globals a OFF u a ON (en las primeras FAQ's de este foro tienes un comentario al respecto).

Otro detalle:

usas: (en el bloque "hacernuevo")
mysql_select_db($NombreBD, $IdConexion);
(seleccionas la BD donde vas a trabajar las consultas ...

Y luego ..
mysql_db_query($NombreBD, $sSQL);
ejecutas esa función que invoca a la BD donde quieres hacer la consulta ..

Si usas:
mysql_select_db($NombreBD, $IdConexion);
para seleccionar la BD .. lo lógico es que usaras simplemente:

mysql_query($sSQL,$IdConexion);
para ejecutar tu consulta .. El "$IdConexion" es opcional si vas a trabajar sobre una sola conexión (sobre un sólo mysql_connect() ..)

Un saludo,

pd: drcyber .. a veces no se trata de "hacerlo" sino de plantearte un "reto" y saberlo llevar a cabo. El día que por la fuerza te haga falta hacerlo así como alguna vez dijistes: "si de otra forma me sale, para que me voy a molestar en aprender .." veras como te lamentaras.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 13/05/2003, 00:03
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 15 años, 4 meses
Puntos: 2
Whoops...! me dolió viejo !!!
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #7 (permalink)  
Antiguo 13/05/2003, 00:11
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 6 meses
Puntos: 2
RESP . CLUSTER : ya probe todo lo que me decias, pero sin exito... no hay forma...socorro... y lo que dices de rendirme o algo asi... porque crees que estamos aqui... quiero solucionarlo... pero estoy desquiciado , no me saleeeee
gracias por ayudarme...
__________________
3w.valenciadjs.com
3w.laislatv.com
  #8 (permalink)  
Antiguo 13/05/2003, 00:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
A ver .. (para ir descartando)

** el $pag y el a2.php supongo que será el nombre de ese script (de la página ..)

** probastes hacer el:
echo $sSQL;

en tu caso "hacernuevo" ...? que te muestra eso?


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 13/05/2003, 00:22
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 6 meses
Puntos: 2
[QUOTE]Mensaje Original por Cluster
[B]A ver .. (para ir descartando)

me dice esto...

Update post Set postpassword = '34' Where postuser = ''

post = es el nombre de la tabla
postpassword = el nombre del registro
postuser = aquien le pertenece ese registro

34 = es el numero que le puse en el formulario... osea le llegan los datos... pero no los actualiza... gracias denuevo...
__________________
3w.valenciadjs.com
3w.laislatv.com
  #10 (permalink)  
Antiguo 13/05/2003, 00:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ahora si que me dejastes

Update post Set postpassword = '34' Where postuser = ''

post = es el nombre de la tabla
postpassword = el nombre del registro
postuser = aquien le pertenece ese registro

Si dices eso .. como vas a actualizar el usuario '' ? .. no debería ser el "34" el postuser (tu usario) que vas a actualizar dicho registro? ..

mm bueno .. en general veo un tremendo "popurí" de porciones de código de aquí y de allá (disculpa si me equivoco pero esa es la impresión que dá el código) .. El caso que no entiendo nada ya ..

Te recomiendo que mires este tuturioal ..:
http://otri.us.es/recursosPHP/manual/index.htm

En su capítulo 6 -> "todo a la vez" justamente explican como hacer varias operaciones con tu BD en un sólo script. Leelo y suerte.

Un saludo,
  #11 (permalink)  
Antiguo 13/05/2003, 00:41
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 15 años, 5 meses
Puntos: 0
Mmmmm...

Update post Set postpassword = '34' Where postuser = ''

Y postuser es el hombre invisible? de verdad postuser es "nada"?

Revisa el porque de estar vacia esa variable, seguramente ese es el error.
  #12 (permalink)  
Antiguo 13/05/2003, 00:42
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 6 meses
Puntos: 2
umm

si... yo seleciono el usuario de la BD al que quiero cambiar el password... en el formulario... y luego el lo recoge en la sentencia y le añade el nuevo pass... no se que problema tiene... voy a ver eso que me has pasado... parece interesante... gracias

si, si, es justo ese error... no llega la variable del usuario... se supone que la seleciona de la BD, ya que me lo muestra en el formulario perfectamente... pero se pierde por el camino.... jejeje ... que lio...
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 13/05/2003 a las 00:53
  #13 (permalink)  
Antiguo 13/05/2003, 00:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. como te he dicho antes .. DONDE seleccionas tu usuario? .. Lo haces en ese select que tienes ahí a medias:

Código PHP:
echo '<center><select name="postuser">';

# Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo 
'<option>'.$row["postuser"];}

Te lo comento por qué ese código .. lo tienes "FUERA" de tu formulario (está abajo del cierre del formulario </form> ..) y no está cerrado .. Le falta </select> al final .. ademas que esos "option" no están bien compuestos ...

Parece que ese es el problema principal .. NO estas pasando el "usuario" que estas modificando pues ese "select" lo tienes FUERA del formulario .. como veras tu variables $posuser NO tiene valor al llegar a la sentencia SQL.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 13/05/2003, 01:08
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 6 meses
Puntos: 2
aaahhhgg..... gracias, gracias y gracias tiuuuu, gracias... ya funciona... jajajaja era el select... jajajaja gracias.... te mereces un premio por aguantarme... a mi y a los demas... gracias CLUSTER !!!

y lo que esta fuera del formulario no importa, ya que esta incluido entre {} y es una sola sentencia...
__________________
3w.valenciadjs.com
3w.laislatv.com
  #15 (permalink)  
Antiguo 13/05/2003, 01:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
.. nuevo ..

Mete el "select" en tu formulario .. osese, no te cuesta nada sacar el </form> de donde lo tienes y ponerlo justo a continuación de </select>

Tal vez el navegador que uses se "trage" ese HTML así .. pero no todos .. así que no crees malos hábitos y haz las cosas bien .. No lo digo yo .. lo dice la www.w3.org ;)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #16 (permalink)  
Antiguo 13/05/2003, 01:35
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 6 meses
Puntos: 2
si, mira... tienes toda la razon, estaban mal varias cosas... lo deje asi y funciona bien... voy a depurarlo un poco... gracias tiu... te mereces lo mejor...


<?php

echo <<< HTML

<tr><td><div align="center"><a href="$pag?accion=modificar">Modificar</a></font></div></td></tr>

HTML;

if ($_GET['accion']=="modificar"){
require ("../config.php"); //CARGA EL CONFIG.PHP CON LOS DATOS DE LA CONEXION
$IdConexion = mysql_connect($Servidor, $Usuario,$Password) or die (mysql_error());
mysql_select_db($NombreBD, $IdConexion) or die (mysql_error());

echo <<< HTML

<form method="post" action="$PHP_SELF?accion=modificar_registros">
<table width="350" border="1" cellspacing="0" cellpadding="4" align="center">
<tr>
<td colspan="2" height="30" bgcolor="#0099FF">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"">.: Registro de Usuarios :.</font></b></div>
</td>
</tr>
<tr bgcolor="#FFFFCC">
<td width="158">
<div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Usuario
: </font></div>
</td>
<td width="170"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<input type="text" name="postpassword" class="imputbox" maxlength="15">
</font></b></td>
</tr>
<tr bgcolor="#FFFFCC">
<td colspan="2" height="40">
<div align="center">
<input type="submit" name="Submit" value=" Registrar " class="botones" ><BR>
</div>
</td>
</tr>
</table>

HTML;

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select postuser From $NombreTB Order By postuser";
$result=mysql_db_query($NombreBD,$sSQL) or die (mysql_error());
# Creamos la sentencia SQL y la ejecutamos.
echo '<center><select name="postuser">';
# Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo '<option>'.$row["postuser"];}
echo '</select>';

}



if ($_GET['accion']=="modificar_registros"){
require ("../config.php"); //CARGA EL CONFIG.PHP CON LOS DATOS DE LA CONEXION
$IdConexion = mysql_connect($Servidor, $Usuario,$Password);
mysql_select_db($NombreBD, $IdConexion) or die (mysql_error());

$sSQL="Update $NombreTB Set postpassword = '$postpassword' Where postuser = '$postuser'";

mysql_query($sSQL,$IdConexion);//nuevo

echo $sSQL;

}
?>
__________________
3w.valenciadjs.com
3w.laislatv.com
  #17 (permalink)  
Antiguo 13/05/2003, 01:47
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 15 años, 5 meses
Puntos: 0
Cita:
//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select postuser From $NombreTB Order By postuser";
$result=mysql_db_query($NombreBD,$sSQL) or die (mysql_error());
# Creamos la sentencia SQL y la ejecutamos.
echo '<center><select name="postuser">';
# Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo '<option>'.$row["postuser"];}
echo '</select>';
//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select postuser From $NombreTB Order By postuser";
$result=mysql_db_query($NombreBD,$sSQL) or die (mysql_error());
# Creamos la sentencia SQL y la ejecutamos.
echo '<center><select name="postuser">';
# Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo '<option value=\"'.$row["postuser"].'\">'.$row["postuser"]."</option>";}
echo '</select>';
  #18 (permalink)  
Antiguo 13/05/2003, 01:54
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 6 meses
Puntos: 2
//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select postuser From $NombreTB Order By postuser";
$result=mysql_db_query($NombreBD,$sSQL) or die (mysql_error());
# Creamos la sentencia SQL y la ejecutamos.
echo '<center><select name="postuser">';
# Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo '<option value=\"'.$row["postuser"].'\">'.$row["postuser"]."</option>";}
echo '</select>';

ya lo intente de esa forma y la variable "postuser" no la recoge bien... gracias por intentarlo...

Update post Set postpassword = '12' Where postuser = '\\\"$row[\"postuser\"]\\\"'
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 13/05/2003 a las 01:56
  #19 (permalink)  
Antiguo 13/05/2003, 03:03
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 15 años, 5 meses
Puntos: 0
Si, perdon, es asi:

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select postuser From $NombreTB Order By postuser";
$result=mysql_db_query($NombreBD,$sSQL) or die (mysql_error());
# Creamos la sentencia SQL y la ejecutamos.
echo '<center><select name="postuser">';
# Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo '<option value="'.$row["postuser"].'">'.$row["postuser"].'</option>';}
echo '</select>';
  #20 (permalink)  
Antiguo 13/05/2003, 03:07
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 6 meses
Puntos: 2
ok... ahora si... perfecto... ;)
__________________
3w.valenciadjs.com
3w.laislatv.com
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 11:41.