Foros del Web » Programando para Internet » PHP »

No funciona este envío de datos ala base de datos?

Estas en el tema de No funciona este envío de datos ala base de datos? en el foro de PHP en Foros del Web. Me parece muy curioso que después de avanzar con php no pueda hacer un simple envío de datos a la base de datos... Me gustaría ...
  #1 (permalink)  
Antiguo 09/04/2012, 09:47
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 4 meses
Puntos: 1
No funciona este envío de datos ala base de datos?

Me parece muy curioso que después de avanzar con php no pueda hacer un simple envío de datos a la base de datos...

Me gustaría saber donde está el fallo

formulario html

<form action="register.php" method="post">
<p>Nombre
:
<input type="text" name="name" size="20" id="name">
<br>
Apellidos
:
<input type="text" name="surname" size="20" id="surname">
<br>
Email
:
<input type="text" name="mail" size="20" id="mail">
<br>Contraseña
:
<input type="text" name="password" size="20" id="password">
<br>
Alias
:
<input type="text" name="alias" size="20" id="alias">
<br>
<br>
<input type="submit" value="Registro">
</form>

codigo php


<?php
$id = $_POST['id'];
$name = $_POST['name'];
$surname = $_POST['surname'];
$mail = $_POST['mail'];
$password = $_POST['password'];
$alias = $_POST['alias'];
$permisos = $_POST['permisos'];
include("config.php");
$con=mysql_connect($server,$db_user,$db_pass);
if(mysql_select_db($db,$con)){
$consulta ="insert into users('$id','$name','$surname','$mail','$password' ,'$alias','$permisos')";
if(mysql_query($consulta,$con))
{
echo "El usuario ha sido registrado correctamente";
}
}
else
echo "No se ha podido crear el administrador";
{
echo mysql_error($con);
}
?>

Y luego el siguiente código para la configuración

<?php
///Servidor local///
$server = "localhost";
///Nombre base de datos
// MySQL username to access the database with.
$db_user = "kfernandez";
//Contraseña administrador
$db_pass = "hermanos2";
//Seleccionar tabla
$table = "users";
//Datos de conexión
$con = mysql_connect($server, $db_user, $db_pass)or die (mysql_error);
$db = mysql_select_db("web");
?>

El orden es el siguiente de los id..

id name surname mail password alias permisos
  #2 (permalink)  
Antiguo 09/04/2012, 09:54
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: No funciona este envío de datos ala base de datos?

Utiliza display_errors y error_reporting para detectar fallos:

Código PHP:
Ver original
  1. $con = mysql_connect($server, $db_user, $db_pass)or die (mysql_error);

esta linea tiene que dar un WARNING.

Código PHP:
Ver original
  1. if(mysql_query($consulta,$con))
  2. {
  3. echo "El usuario ha sido registrado correctamente";
  4. }
  5. else
  6. echo "No se ha podido crear el administrador";
  7. {
  8. echo mysql_error($con);
  9. }

Las llaves de este else son un poco raras.
A ver si sirve, saludos
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 09/04/2012, 10:06
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: No funciona este envío de datos ala base de datos?

Si que es raro ya lo he cerrado bien y me da el mismo error

Es este: Unknown database '1'

1 ? Si va a web no?

Y otra cosa lo que me has dicho para reportar errores va tal cual me lo has dado?

if(mysql_query($consulta,$con))
{
echo "El usuario ha sido registrado correctamente";
}
}else{
echo "No se ha podido crear el administrador";
}
echo mysql_error($con);
  #4 (permalink)  
Antiguo 09/04/2012, 15:55
 
Fecha de Ingreso: abril-2012
Mensajes: 22
Antigüedad: 12 años
Puntos: 4
Respuesta: No funciona este envío de datos ala base de datos?

Ya vi tu error, mira, pon un ojo en el archivo principal en la parte siguiente:

Código PHP:
include("config.php");
$con=mysql_connect($server,$db_user,$db_pass);
if(
mysql_select_db($db,$con)){ 
Ahora mira tu config.php:

Código PHP:
//Datos de conexión
$con mysql_connect($server$db_user$db_pass)or die (mysql_error);
$db mysql_select_db("web"); 
Okay, veo dos, una, haces dos llamadas a la base de datos con el mysql_connect, para que? con una encerrada en una variable es suficiente, dos, el mysql_error le faltan los parentesis... Tres mira en tu archivo principal:

mysql_select_db($db,$con)

Haces un mysql select db a un mysql select db? Mira lo que contiene la variable db:

$db = mysql_select_db("web");

Ocea... eso es lo mismo que mysql_select_db(mysql_select_db("web"),$con);
Lo correcto seria algo asi:

Código:
$con = mysql_connect($server, $db_user, $db_pass)or die (mysql_error());
$db = "web";
if(mysql_select_db($db,$con)){
Y trata de hacerlo solo una vez que con eso basta.
Saludos ;)

Última edición por winwok; 09/04/2012 a las 15:56 Razón: Parentesis...

Etiquetas: formulario, html, mysql, 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 21:57.