Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Bases de Datos General (http://www.forosdelweb.com/f21/)
-   -   SQL me graba el nombre de variables y no contenido (http://www.forosdelweb.com/f21/sql-graba-nombre-variables-no-contenido-583867/)

erivier 07/05/2008 09:07

SQL me graba el nombre de variables y no contenido
 
Estoy intentando subir datos desde un form a una base de datos pero al momento de grabar me registra los nombres de las variables y no los datos

abajo la rutina

<?PHP
require "conex.php";
$l_champs = mysql_list_fields ( $db,'customers', $conexion);

for ($i=1; $i < mysql_num_fields ($l_champs); $i++) {
$gv="";
$gvar = mysql_field_name($l_champs, $i); //nombre del campo de la base
$gv="cus".$gvar; //variable hecha con el campo
$fv="cus".$gvar; //nombre de la variable del form

if (isset($_POST[$fv])) {
$$gv = $_POST[$fv];
}else{
$$gv = "";
}
}

LAS VARIABLES DEL FORM tienen los mismos nombres de los campos de mi tabla pero con "cus" al principio

$tcamp = mysql_num_fields ($l_champs);
$campos = "";
$variables = "";

for ($i=1; $i < $tcamp ; $i++) {
$ncam = mysql_field_name($l_champs, $i);
$campos = $campos.$ncam;
$vcam = chr(39).chr(36)."cus".$ncam.chr(39);
$variables = $variables.$vcam;
if ($i < ($tcamp - 1)){
$campos=$campos.",";
$variables=$variables.",";
}
}
$query = "INSERT INTO customers($campos) VALUES(".$variables.")";
mysql_query($query); ?>

erivier 07/05/2008 10:47

Re: SQL me graba el nombre de variables y no contenido
 
Por el momento he resuelto de la siguiente manera pasando a $variables directamente el contenido de las variables de POST, pero si tienen una mejor solucion no duden en avisarme.

<?PHP
session_start();
error_reporting(E_ALL);

if(!isset($SESSION)){
header("location: userid.php");
} else {
echo "Hola " . $SESSION['nombre'] . ", este es un contenido privado!<br/>
<a href='logout.php'>logout</a>";
}
require "conex.php";
$l_champs = mysql_list_fields ( $db,'customers', $conexion);

$variables = "";
$tcamp = mysql_num_fields ($l_champs);
for ($i=1; $i < $tcamp; $i++) {
$gv="";
$gvar = mysql_field_name($l_champs, $i); //nombre del campo de la base
$gv="cus".$gvar; //variable hecha con el campo
$fv="cus".$gvar; //nombre de la variable del form

if (isset($_POST[$fv])) {
$$gv = $_POST[$fv];
}else{
$$gv = "";
}
$vcam = "";
$vcam = "\'".$$gv."\'";
$variables = $variables.$vcam;


if ($i < ($tcamp - 1)){
$variables=$variables.",";
}

}



$campos = "";

for ($i=1; $i < $tcamp ; $i++) {
$ncam = mysql_field_name($l_champs, $i);
$campos = $campos.$ncam;
$vcam = "\'\$cus".$ncam."\'";
if ($i < ($tcamp - 1)){
$campos=$campos.",";
}
}

$variables = stripslashes($variables);
$query = "INSERT INTO customers($campos) VALUES($variables)";
mysql_db_query($db,$query,$conexion);
?>


La zona horaria es GMT -6. Ahora son las 20:46.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.