SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: gokufast en Viernes 9 de Noviembre de 2007, 22:51

Título: Error En Update
Publicado por: gokufast en Viernes 9 de Noviembre de 2007, 22:51
Este el cuadro del problema, tengo un formulario en el cual el socio puede cambiar su contraseña ingresando la que tenia previamente.

aca esta mi formulario:

<!--html--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>HTML </td></tr><tr><td id='CODE'><!--html1--><form method="GET"  action="cambiar_pass.php" name="cambiar_pass">
<tr>
   <th><strong><span class="style2">*</span> codigo Socio: </strong></th>
   <td><input type="text" name="nombre" size="20"><br><br></td>
</tr>
<tr>
   <th><strong><span class="style2">*</span> codigo actual: </strong></th>
   <td><input type="text" name="codigo_anterior" size="20"><br><br></td>
</tr>
<tr>
   <th>codigo nuevo: </strong></th>
   <td><input type="text" name="codigo_nuevo" size="20"><br><br></td>
</tr>
<tr>
   <th>repetir codigo anterior: </strong></th>
   <td><input type="text" name="codigo_nuevo2" size="20"></td>
</tr>
<br><br>
<tr>
   <td><input type="submit" name="enviar" value="Enviar"></td>
   <td><input type="reset"  name="cancelar" value="Borrar"></td>
</tr>
</form>
<!--html2--></td></tr></table><div class='postcolor'><!--html3-->

y me lleva al siguiente PHP (cambiar_pass.php):

<!--php1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>PHP </td></tr><tr><td id='CODE'><!--ephp1--><code>[color= #000000]
[color= #0000BB]<?php
       [/color][color= #007700]include([/color][color= #DD0000]"conex_2.php"[/color][color= #007700]);
       [/color][color= #0000BB]$link[/color][color= #007700]=[/color][color= #0000BB]Conectarse[/color][color= #007700]();
    [/color][color= #0000BB]$nombre[/color][color= #007700]=[/color][color= #0000BB]$_GET[/color][color= #007700][&[/color][color= #FF8000]#39;nombre'];
       [/color][color= #0000BB]$codigoSocio [/color][color= #007700]= [/color][color= #0000BB]$_GET[/color][color= #007700][&[/color][color= #FF8000]#39;codigo_anterior'];
    [/color][color= #0000BB]$codigoNuevo [/color][color= #007700]= [/color][color= #0000BB]$_GET[/color][color= #007700][&[/color][color= #FF8000]#39;codigo_nuevo'];
    [/color][color= #0000BB]$codigoRepeticion [/color][color= #007700]= [/color][color= #0000BB]$_GET[/color][color= #007700][&[/color][color= #FF8000]#39;codigo_nuevo2'];
[/color][color= #007700]if([/color][color= #0000BB]strcmp[/color][color= #007700]([/color][color= #0000BB]$codigoNuevo[/color][color= #007700],[/color][color= #0000BB]$codigoRepeticion[/color][color= #007700]) == [/color][color= #0000BB]0[/color][color= #007700])
{
          [/color][color= #0000BB]$result[/color][color= #007700]=[/color][color= #0000BB]mysql_query[/color][color= #007700]([/color][color= #DD0000]"
        UPDATE auth
        SET pass = '$codigoNuevo'
        WHERE name='$nombre'"[/color][color= #007700],[/color][color= #0000BB]$link[/color][color= #007700]);
}  
   [/color][color= #0000BB]mysql_free_result[/color][color= #007700]([/color][color= #0000BB]$result[/color][color= #007700]);
   [/color][color= #0000BB]mysql_close[/color][color= #007700]([/color][color= #0000BB]$link[/color][color= #007700]);
[/color][color= #0000BB]?>[/color]
[/color]
</code><!--php2--></td></tr></table><div class='postcolor'><!--ephp2-->

pero cada que la ejecuto me sale el siguiente error]Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in
C:\xampp\htdocs\San.Andres7\Alvaro\cambiar_pass.php on line 34
[/quote]

(mi linea 34 es:  mysql_free_result($result);)

Pero me cambia la contraseña!!!


espero que me puedan ayudar

Saludos
Título: Re: Error En Update
Publicado por: Avalon en Sábado 10 de Noviembre de 2007, 08:17
Lo que ocurre es que cuando haces un UPDATE, mysql_query no retorna un identificador de resultado sino que retorna simplemente TRUE o FALSE. Por lo tanto no puedes hacer un mysql_free_result después de un UPDATE porque no hay ningún resultado que liberar de memoria.

Salu2,
Avalon
Título: Re: Error En Update
Publicado por: gokufast en Sábado 10 de Noviembre de 2007, 14:18
entonces podria ponerlo en un IF?
Título: Re: Error En Update
Publicado por: -DriverOp- en Sábado 10 de Noviembre de 2007, 16:15
Simplemente no uses mysql_free_result() ya que no se aplica a sentencias UPDATE.
Título: Re: Error En Update
Publicado por: F_Tanori en Sábado 10 de Noviembre de 2007, 23:33
Exactamente, lo que dicen Avalon y -DriverOp-.

Ademas de eso tambien puedes usar @ para evitar que alguna funcion devuelva error


ejemplo:

Código: Text
  1. @mysql_free_result(&#036;result);
  2.  

Aunque como acertadamente te mencionan no es necesario en este caso



Saludos
Título: Re: Error En Update
Publicado por: gokufast en Lunes 12 de Noviembre de 2007, 14:36
muchisimas gracias a todos, eso de que el UPDATE solo retorna TRUE o FALSE, la verdad no lo sabia, sera porque nunca le puse mysql_free_result a mis UPDATES :P ??.

ya puse le puse @ a mi funcion y ya no me dio error.

una vez mas gracias  :lol: