Programación Web y Scripting > PHP

 Error En Update

(1/2) > >>

gokufast:
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

Avalon:
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

gokufast:
entonces podria ponerlo en un IF?

-DriverOp-:
Simplemente no uses mysql_free_result() ya que no se aplica a sentencias UPDATE.

F_Tanori:
Exactamente, lo que dicen Avalon y -DriverOp-.

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


ejemplo:


--- Código: Text ---@mysql_free_result(&#036;result); 
Aunque como acertadamente te mencionan no es necesario en este caso



Saludos

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa