Foros del Web » Programando para Internet » PHP »

Nose realiza el insert

Estas en el tema de Nose realiza el insert en el foro de PHP en Foros del Web. Estoy intentando hacer un simple formulario que inserte los datos en una BBDD. Algo que antes sabia hacer y me funcionaba. Pero nose si con ...
  #1 (permalink)  
Antiguo 21/08/2012, 08:03
 
Fecha de Ingreso: mayo-2009
Mensajes: 69
Antigüedad: 14 años, 10 meses
Puntos: 0
Nose realiza el insert

Estoy intentando hacer un simple formulario que inserte los datos en una BBDD. Algo que antes sabia hacer y me funcionaba. Pero nose si con las ultimas versiones de Xammp, la version de phpmyadmin se ha actualizado y quizas hayan cambiado cosas.

Os dejo el codigo.

Fichero CONEXION.PHP

Código PHP:
<?php
    $db_server
="localhost"//Servidor al cual nos vamos a conectar.
    
$db_user="root"//Nombre del usuario de la base de datos.
    
$db_pass=""//Contraseña de la base de datos
    
$db_base="perfiles"//nombre de la base de datos

    //conectamos con la BBDD y seleccionamos la BBDD
    
$conexion_db=mysql_connect($db_server,$db_user,$db_pass);    
    
mysql_select_db($db_base,$conexion_db);
?>
Fichero con el formulario y donde se hace el insert into

Código PHP:
<?php
include("conexion.php");

$avatar=limpiar($_POST['avatar']);
$nombre=limpiar($_POST['nombre']);
$nick=limpiar($_POST['nick']);
$pass=md5(md5(limpiar($_POST['pass'])));
$pais=limpiar($_POST['pais']);
$correo=limpiar($_POST['correo']);    
    
mysql_query("INSERT INTO usuarios (foto,nombre,nick,pass,pais,correo) VALUES ('$avatar','$nombre','$nick','$pass','$pais','$correo')",$conexion_db);
?>
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Registro de Usuarios</title>
</head>
<body>
<h2>Sistema de Registro</h2>
<div align="center">
    <form name="registrar" action="registro.php" method="post" onsubmit="return validar()" />
        <dt><label>Nick:</label></dt>
        <input type='text' name='nick' /><br /><br />

        <dt><label>E-mail:</label></dt>
        <input type='text' name='correo' /><br /><br />

        <dt><label>Contraseña:</label></dt>
        <input type="password" name='pass' /><br /><br />

        <dt><label>Confirmar Contraseña:</label></dt>
        <input type="password" name='conf_pass' /><br /><br />
        
        <dt><label>Nombre:</label></dt>
        <input type='text' name='nombre' /><br /><br />
        
        <dt><label>Pais:</label></dt>
        <input type='text' name='pais' /><br /><br />
        
        <dt><label>Avatar:</label></dt>
        <input type="file" name="avatar" value="default.jpg" /><br /><br /><br /><br />
        
        <input type="submit" name="registro" style="width:100px;" tabindex="6" value="Registrarse" />
        <input type="reset" name="borrar" style="width:100px;" tabindex="6" value="Borrar" />
    </form>
    <a href="login.php">Identificarse</a>
</div>    
</body>
</html> 
He comprobado los names del formulario y los campos de la tabla y esta todo correcto.

Antes si que tenia el else para que devolviese un mensaje de error, pero siempre decia que el insert estaba ok.

Pero luego vas a la tabla y no hay datos insertados.
  #2 (permalink)  
Antiguo 21/08/2012, 08:05
Avatar de lemyboy  
Fecha de Ingreso: agosto-2012
Ubicación: City Bell
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Nose realiza el insert

hola, te recomiendo agregar la linea

echo mysql_error();

despues del insert para ver el error de mysql
si no hay error esa sentencia no muestra nada ya que devuelve 'false'

Saludos.
  #3 (permalink)  
Antiguo 21/08/2012, 08:13
 
Fecha de Ingreso: agosto-2012
Ubicación: Chile
Mensajes: 3
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Nose realiza el insert

Complemetando lo que dice lemyboy lo podrias hacer asi
$rs = mysql_query("INSERT INTO usuarios (foto,nombre,nick,pass,pais,correo) VALUES ('$avatar','$nombre','$nick','$pass','$pais','$cor reo')",$conexion_db);

if ($rs) {
ejecucion correcta
...
...
}else{
echo "Error al intentar ejecutar consulta ".mysql_error();
}

En caso que no te muestre el resultado puedes intentar con

echo "Error al intentar ejecutar consulta ".mysql_error($conexion_db);
  #4 (permalink)  
Antiguo 21/08/2012, 08:18
Avatar de lemyboy  
Fecha de Ingreso: agosto-2012
Ubicación: City Bell
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Nose realiza el insert

yo uso siempre

echo mysql_error();

porque si hay error nada se imprime en pantalla (devuelve 'false' y php no imprime nada si es false), asi que me ahorro varias lineas de codigo.

Saludos.
  #5 (permalink)  
Antiguo 21/08/2012, 08:20
Avatar de lemyboy  
Fecha de Ingreso: agosto-2012
Ubicación: City Bell
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Nose realiza el insert

Cita:
Iniciado por lemyboy Ver Mensaje
yo uso siempre

echo mysql_error();

porque si hay error nada se imprime en pantalla (devuelve 'false' y php no imprime nada si es false), asi que me ahorro varias lineas de codigo.

Saludos.
tambien es interesante el mysql_error() porque te dice cosas como "no existe la base de datos" o "no existe la tabla" o "error de sintaxis" lo cual ayuda a corregir rapidamente la query.

Saludos.
  #6 (permalink)  
Antiguo 21/08/2012, 08:26
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Nose realiza el insert

tmb fijate que tu usuario tenga privilegios de inserción, muchas veces pasa que el usuario que estas usando solo tiene privilegios de lectura
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #7 (permalink)  
Antiguo 21/08/2012, 08:43
 
Fecha de Ingreso: abril-2010
Mensajes: 31
Antigüedad: 14 años
Puntos: 1
Respuesta: Nose realiza el insert

a mi a veces me pasa cuando uno de los campos es palabra reservada de mysql, y muchas veces ni siquiera sabía que lo era. En esos caso lo que hago es poner entre ¿comillas? los nombres de los campos

INSERT INTO usuarios (`foto`,`nombre`, `nick`, `pass`, `pais`,`correo`)
  #8 (permalink)  
Antiguo 21/08/2012, 09:51
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Nose realiza el insert

y por que no lo pruebas con las ultimas versiones xammp y phpadmin y lo compruebas tu mismo y no tienes que depender de nadie ???

Etiquetas: formulario, html, insert, mysql, nose, registro, sql, tabla, 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 19:49.