Foros del Web » Programando para Internet » PHP »

No hace el update......

Estas en el tema de No hace el update...... en el foro de PHP en Foros del Web. Hola tengo un update de una tabla, a la página le paso los campos de un formulario, y se forma bien la query (update) ya ...
  #1 (permalink)  
Antiguo 07/06/2008, 11:41
 
Fecha de Ingreso: julio-2007
Mensajes: 75
Antigüedad: 16 años, 9 meses
Puntos: 0
No hace el update......

Hola tengo un update de una tabla, a la página le paso los campos de un formulario, y se forma bien la query (update) ya que la he capturado y la he ejecutado en phpmyadmin y todo ok!!!

El problema es que no se hacen los cambios cuando ejecuto mi código en web.... os pongo el código que tengo en el archivo modificar.php:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- DW6 -->
<head>
<!-- Copyright 2005 Macromedia, Inc. All rights reserved. -->
<title>DISTRIBUIDOR</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="mm_entertainment.css" type="text/css" />
<link href="imagenes/mm_entertainment.css" rel="stylesheet" type="text/css" />
</head>
<body bgcolor="#14285f">

<?
          
//conexión a la BBDD
$link = @mysql_pconnect("localhost""mibase""pass");
@
mysql_select_db("mibase"$link);

$pendiente "N";
$contacto "N";
$envpresen "N";
$compaq "N";
$devpaq "N";
$leidoguion "N";
$distribuidor "N";
$diremal "N";
$pagadopaq "N";
$correomal "N";
$comentario "N";

//Obtener las variables
$id =  (int)$_REQUEST["id"];
$nombre $_REQUEST["nombre"];
$apellido1 $_REQUEST["apellido1"];
$apellido2 $_REQUEST["apellido2"];
$calle $_REQUEST["calle"];
$numero $_REQUEST["numero"];
$localidad $_REQUEST["localidad"];
$cp $_REQUEST["cp"];
$pais $_REQUEST["pais"];
$telefono $_REQUEST["telefono"];
$movil $_REQUEST["movil"];
$email $_REQUEST["email"];


if (
$_REQUEST["pendiente"])$pendiente $_REQUEST["pendiente"];
if (
$_REQUEST["contacto"])$contacto $_REQUEST["contacto"];
if (
$_REQUEST["envpresen"])$envpresen $_REQUEST["envpresen"];
if (
$_REQUEST["compaq"])$compaq $_REQUEST["compaq"];
if (
$_REQUEST["devpaq"])$devpaq $_REQUEST["devpaq"];
if (
$_REQUEST["leidoguion"])$leidoguion $_REQUEST["leidoguion"];
if (
$_REQUEST["distribuidor"])$distribuidor $_REQUEST["distribuidor"];
if (
$_REQUEST["diremal"])$diremal $_REQUEST["diremal"];
if (
$_REQUEST["pagadopaq"])$pagadopaq $_REQUEST["pagadopaq"];
if (
$_REQUEST["correomal"])$correomal $_REQUEST["correomal"];

$comentario $_REQUEST["comentario"];
                        
                        
$link = @mysql_pconnect("****""*****""*******");
@
mysql_select_db("*****"$link);
                
                
?>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr bgcolor="02021e">
    <td colspan="2" rowspan="2" nowrap="nowrap"><img src="imagenes/mm_entertainment_image.jpg" alt="Header image" width="400" height="140" border="0" /></td>
    <td height="58" nowrap="nowrap" colspan="2" id="logo" valign="bottom">MEN&Uacute; DISTRIBUIDOR </td>
    <td width="499">&nbsp;</td>
  </tr>
  <tr bgcolor="02021E">
<td height="57" nowrap="nowrap" colspan="2" id="tagline" valign="top">&nbsp;</td>
    <td width="499">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="5" bgcolor="#cc3300"><img src="mm_spacer.gif" alt="" width="1" height="2" border="0" /></td>
  </tr>

   <tr>
    <td colspan="5"><img src="mm_spacer.gif" alt="" width="1" height="2" border="0" /></td>
  </tr>

   <tr>
    <td colspan="5" bgcolor="#cc3300"><img src="mm_spacer.gif" alt="" width="1" height="1" border="0" /></td>
  </tr>

  <tr>
    <td colspan="5" id="dateformat">&nbsp;
      <div align="left"><br />      
        <br />
      </div></td>
  </tr>
  <tr>
    <td width="90" valign="top">
    
<?


$edad 
= (int)$edad;                        
$condiciones "SET nombre='$nombre',apellido1='$apellido1',apellido2='$apellido2',calle='$calle',numero='$numero',localidad='$localidad',ciudad='$ciudad',cp='$cp',pais='$pais',telefono='$telefono',movil='$movil',email='$email',edad='$edad',pendiente='$pendiente',devpaq='$devpaq',contacto='$contacto',leidoguion='$leidoguion',envpresen='$envpresen',distribuidor='$distribuidor',compaq='$compaq',diremal='$diremal',pagadopaq='$pagadopaq',correomal='$correomal',comentarios='$comentario' WHERE id=$id";
$subquery "UPDATE Clientes ".$condiciones;


$subresult=mysql_query($subquery);
$num_registros mysql_num_rows($subresult);
$hecho 0;
$hecho mysql_affected_rows();

echo 
"Query: ".$subquery;
echo 
"<br>Hecho: ".$hecho;
//echo "<br>Link: ".$link;



if ($hecho == 1) {


?>
    <table border="0" cellspacing="0" cellpadding="2" width="754">
        <tr>
          <td width="750" class="subHeader"> <h4>
          <SCRIPT LANGUAGE="javascript">

                    location.href = "index.php";
                </SCRIPT>
          
          Los registros han sido actualizados</h4></td>
        </tr>
        <tr>
          <td class="bodyText">&nbsp;</td>
        </tr>
      </table>
     
     
    <?

}    

        
mysql_free_result($result);
        
        
    
mysql_close();



exit;
?>
    
</table>


<br />
</body>
</html>
A ver si veis algo que ponga mal, todos los campos son varchar excepto edad que es int......


Un saludo y gracias de antemano!!!

Última edición por jam1138; 07/06/2008 a las 13:46
  #2 (permalink)  
Antiguo 07/06/2008, 12:44
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: No hace el update......

mira, no se si sera esto pero tienes espacios donde alomejor no deberia haberlos

Cita:

$edad = (int)$edad;
$condiciones = "SET nombre='$nombre',apellido1='$apellido1',apellido2= '$apellido2',calle='$calle',numero='$numero',local idad='$localidad',ciudad='$ciudad',cp='$cp',pais=' $pais',telefono='$telefono',movil='$movil',email=' $email',edad='$edad',pendiente='$pendiente',devpaq ='$devpaq',contacto='$contacto',leidoguion='$leido guion',envpresen='$envpresen',distribuidor='$distr ibuidor',compaq='$compaq',diremal='$diremal',pagad opaq='$pagadopaq',correomal='$correomal',comentari os='$comentario' WHERE id=$id";
$subquery = "UPDATE Clientes ".$condiciones;
no se si en alguno mas revisalo.
  #3 (permalink)  
Antiguo 07/06/2008, 12:50
 
Fecha de Ingreso: julio-2007
Mensajes: 75
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: No hace el update......

Gracias jaronu, eso me sale al copiar el código en el foro, no sé porqué........ Gracias de todas formas....
  #4 (permalink)  
Antiguo 07/06/2008, 13:22
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: No hace el update......

no te da ningun error?
seguro que recibes bien las variables??


sobretodo
$id = (int)$_REQUEST["id"];

en principio no se me ocurre nada mas

si el formulario usa POST prueba

Código PHP:
$id = (int)$_POST['id']; //van con comillas simples

$id = (int)$_REQUEST["id"]; //esto tienes tu
$id = (int)$_REQUEST['id'];//creo que deberia ser asi 
  #5 (permalink)  
Antiguo 07/06/2008, 13:44
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: No hace el update......

Tienes duplicado el código de conexión (y usando conexiones persistentes), elimina uno (el segundo, que edito para borrar tus datos que dudo sean ficticios). Además no veo compruebes la conexión por algún lado. Hazlo. igual donde ejecutas la query.... busca el error, si no los muestras, difícilmente sabrás cual es el problema (no adivines, averigua).

www.php.net/mysql_error

Lo de los espacios, es para evitar, precisamente, las cadenas largas que distorsionan el esquema del foro. Igual en tu query deberías hacerla más legible dando esos espacios...

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 07/06/2008, 13:56
 
Fecha de Ingreso: julio-2007
Mensajes: 75
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: No hace el update......

Gracias jam1138....... voy a probar lo que me dices.
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 09:24.