Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] UPDATE no me inserta los valores en la BD

Estas en el tema de UPDATE no me inserta los valores en la BD en el foro de PHP en Foros del Web. Muy buenas. A ver si podeis decirme que es lo que sale mal aqui. os comento. Tengo en la bd unas tablas de usuarios. Estos ...
  #1 (permalink)  
Antiguo 02/05/2013, 02:18
Avatar de paxarin  
Fecha de Ingreso: enero-2010
Ubicación: Santander
Mensajes: 413
Antigüedad: 12 años, 4 meses
Puntos: 6
UPDATE no me inserta los valores en la BD

Muy buenas.
A ver si podeis decirme que es lo que sale mal aqui.
os comento.
Tengo en la bd unas tablas de usuarios. Estos usuarios una vez se dan de alta rellenan solo una serie de campo y posteriormente van rellenando más campos con su información.
En este caso que os expongo es el campo provincia y ciudad.
Código HTML:
<form action="subir/enviar_cuidad.php?id=<?=$_SESSION['id_perfil']?>" method="POST">
                <input type="text" name="provincia" title="Provincia" maxlength="30" placeholder="Provincia" autocomplete="off" required 			x-moz-errormessage="Debe de indicar la provincia" >
                <input type="text" name="ciudad" title="Ciudad" maxlength="30" placeholder="Ciudad" autocomplete="off" required x-moz-errormessage="Debe de indicar la población">
				<input type="submit" value="enviar" />
			 </form> 
Le paso por aqui la id_perfil para que reconozca la fila en la que debe de actualizar el dato.
Código PHP:
<?php
    session_start
();
    
// comprobamos que se haya iniciado la sesión
    
if(isset($_SESSION['id_perfil'])) {
        
$prov=$_POST['provincia'];
        
$ciudad=$_POST['ciudad'];

    include(
"../comp/conexion.php");
    
//mysql_query("INSERT INTO perfil (prov,ciudad) VALUES ('{$_POST['provincia']}','{$_POST['ciudad']}')",$conexion);
            //$sql="UPDATE perfil SET prov = '$_POST[provincia]', ciudad = '$_POST[ciudad]' WHERE email = '$_SESSION[email]'";
            
$sql="UPDATE perfil SET prov = '$prov', ciudad = '$ciudad' WHERE id_perfil = '$_SESSION[id_perfil]'";
            if (
mysql_errno($conexion))
            {
                echo 
"No se pudo insertar los datos en la tabla. Error" .mysql_errno() ." - ".mysql_error();
                
mysql_close($conexion);
            }    else{
                
$conexion;
                echo
"los datos se grabaron con exito!!";
                echo 
$sql;
                }
    }
?>
Y lo extraño del caso es que cuando le doy a enviar le digo que em imprima lo que se almacena en la variable $sql y el resultado creo entender es correcto.
los datos se grabaron con exito !!UPDATE perfil SET prov = 'madrid', ciudad = 'madrid' WHERE id_perfil = '3'
Que es lo que estoy haciendo mal?
Espero que podais sacarme de esta duda.
Un saludo
__________________
http://www.paxarindesign.es
  #2 (permalink)  
Antiguo 02/05/2013, 02:26
 
Fecha de Ingreso: febrero-2013
Mensajes: 78
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: UPDATE no me inserta los valores en la BD

Yo siempre lo que hago cuando no inserta alguna sentencia
sea update , delete , insert etc , en la parte donde le digo que WHERE = NICK o id o lo que fuese
simplemente le pongo yo mismo por ejemplo
un nombre que ya este en mi base de datos
y asi podre comprobar en que parte esta fallando la consulta
por ejemplo imaginemos que en tu base de datos
el nick de una persona ya registrada sea , xcarlox

entonces el WHERE = " $_´POST['NICK'];
lo cambio por WHERE = "CARLOS" y cuando ejecute le sentencia me fijo
si efectivamente se produjo la consulta

y asi es muy facil darse cuenta si el error esta ahi o en otra parte
te recomendaria hacer eso
y si inserta los datos

pues el error estaria en $_SESSION[id_perfil]
de lo contrario , si no inserta
eso quiere decir que el problema no esta en la parte donde comparas el $_SESSION[id_perfil]
si no en otra parte ...
  #3 (permalink)  
Antiguo 02/05/2013, 02:31
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 18 años, 1 mes
Puntos: 28
Respuesta: UPDATE no me inserta los valores en la BD

awik si lees bien el post de #1 verás que los valores se los imprime bien por lo que el fallo tiene que ser otra cosa.

Edito:

veo que donde pretendes hacer el update solo asignas una cadena a la variable $sql:
$sql="UPDATE perfil SET prov = '$prov', ciudad = '$ciudad' WHERE id_perfil = '$_SESSION[id_perfil]'";

pero, ¿donde haces el mysql_query()?
  #4 (permalink)  
Antiguo 02/05/2013, 04:47
Avatar de paxarin  
Fecha de Ingreso: enero-2010
Ubicación: Santander
Mensajes: 413
Antigüedad: 12 años, 4 meses
Puntos: 6
Respuesta: UPDATE no me inserta los valores en la BD

Muchas gracias prO
puse en mi codigo el mysql_query() y solucionado ya se inserta en la celda de la fila correspondiente.
Os dejo el codigo completo.
Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.     // comprobamos que se haya iniciado la sesión
  4.     if(isset($_SESSION['id_perfil'])) {
  5.         $prov=$_POST['provincia'];
  6.         $ciudad=$_POST['ciudad'];
  7.  
  8.     include("../comp/conexion.php");
  9.     //mysql_query("INSERT INTO perfil (prov,ciudad) VALUES ('{$_POST['provincia']}','{$_POST['ciudad']}')",$conexion);
  10.             //$sql="UPDATE perfil SET prov = '$_POST[provincia]', ciudad = '$_POST[ciudad]' WHERE email = '$_SESSION[email]'";
  11.             $sql=mysql_query("UPDATE perfil SET prov = '$prov', ciudad = '$ciudad' WHERE id_perfil = '$_SESSION[id_perfil]'");
  12.             if (mysql_errno($conexion))
  13.             {
  14.                 echo "No se pudo insertar los datos en la tabla. Error" .mysql_errno() ." - ".mysql_error();
  15.                 mysql_close($conexion);
  16.             }   else{
  17.                 $conexion;
  18.                 echo"los datos se grabaron con exito!!";
  19.                 echo $sql;
  20.                 }
  21.     }
  22. ?>
__________________
http://www.paxarindesign.es

Etiquetas: bd, inserta, mysql, sql, tabla, update, usuarios
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:46.