Una de PHP

Kr4n3oK

Nas gente, estoy haciendo una página web en PHP, la cosa que me está pasando es la siguiente a ver si conseguimos arreglarlo porque le estoy dando vueltas y no lo saco, será por mi inexperiencia.

Bueno ahí va, la cosa es que tengo un formulario HTML de registro, de ahí como es evidente pasa al código PHP el cual estoy intentándolo hacer con una función, esta función servirá para todos los campos la función es llamada insert() y le he metido tres variables:

<?php
function insert($table,$field,$valor)
{
mysql_query("insert into $table ('$field') values ('$valor') ");
}

?>
Así me ahorraría bastante tiempo en tener que ir haciendo uno a uno, pero el problema está en que no me graba la información en la base de datos y no sé porque xdd, aquí podeís ver el PHP register:

<?php
include("mod_conex.php");
include("function/insert.php");
$table = "user";

$POST['name'];
$
POST['lastname'];
$POST['user'];
$
POST['pwo'];
$POST['pwa'];
$
POST['email'];
$POST['city'];
$
POST['adress'];
$POST['cp'];
$
POST['country'];

$name = "name";
$lastname = "lastname";
$user = "user";
$pwo = "pwo";
$pwa = "pwa";
$email = "email";
$city = "city";
$adress = "adress";
$cp = "cp";
$country = "country";

//Insertamos el nombre
insert($table,$name,$_POST['name']);

?>
Gracias de antebrazo.

He de decir que con dos valores si me funciona, osease así:

insert($table,$_POST['name']);

<?php
function insert($table,$valor)
{
mysql_query("insert into $table(name) values ('$valor') ");
}
?>

SikorZ

Podrias poner el error que te da el debugger? Por lo pronto veo que intentas hacer un query a una BD que no has conectado en ningun momento =S

Kr4n3oK

include("mod_conex.php"); está aquí la conexión xd, y no, no da error ninguno, es lo curioso xdd.

dEcLiNe

Posibles errores:

1.- En la BD el campo identificador de la tabla a la que quieres hacer el INSERT no es autonumérico, por lo tanto se ha de insertar manualmente si o si.

2.- El tipo de datos contenido en la variable $_POST['name'], no es compatible con el especificado en el mismo campo de la BD.

Espero haber sido de ayuda.

Salud!

Edito: También hay que decir que creo que esos 2 errores te escupirían algo en pantalla...

MrTurbo

En el mysql_query prueba a pasarle como segundo parámetro el "resource $link_identifier", lo que viene siendo la conexión a la base de datos.

Mira a ver lo que te viene por post, puedes verlo usando la funcion

print_r($_POST);

Saludos

Kr4n3oK

Voy a probar que viene por el post

MrTurbo

Ah, acabo de fijarme, prueba con esta función:

function insert($table,$field,$valor)
{
   mysql_query("insert into $table ($field) values ('$valor')");
}

Es decir, los campos($field) de la tabla $table sin comillas

Saludos

Manolitopwnz

En el caso de que esa función llegase a funcionar, lo que haría sería crear un nuevo registro por cada dato, me explico:

//Insertamos el nombre
insert($table,$name,$_POST['name']);

Ahi tendrías un registro con el campo name lleno y los demás vacíos.

Un apaño sencillo, sería

function inser($query){
$res = mysql_query($query);
return $res;
}

entonces...

$query = "INSERT INTO " . $tabla . " SET $name = '" . $_POST['name'] . "'";
insert($query);

Kr4n3oK

Al final por motivos de código lo voy a dejar el query del tirón así aparte es mas sencillico de entender xd

MisKo

prueba a poenr el or die para que te muestre error si esta mal

mysql_query("loquesea") or die (mysql_error()) ;

asi te muestra si hay algun error en la query en la pantalla y se para todo

Usuarios habituales

  • MisKo
  • Kr4n3oK
  • Manolitopwnz
  • MrTurbo
  • dEcLiNe
  • SikorZ