Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

problema insertando datos en SQL

Estas en el tema de problema insertando datos en SQL en el foro de Bases de Datos General en Foros del Web. mmh bueno, no se si esto va aqui o en PHP, pero no se de cual de los dos sea el problema, y lo que ...
  #1 (permalink)  
Antiguo 11/02/2004, 13:09
 
Fecha de Ingreso: febrero-2004
Mensajes: 9
Antigüedad: 20 años, 3 meses
Puntos: 0
problema insertando datos en SQL

mmh bueno, no se si esto va aqui o en PHP, pero no se de cual de los dos sea el problema, y lo que pasa es que apenas estoy empezando con esto de mysql - php y todavia no entiendo bien, para crear la Bd y sus tablas uso PhpMyAdmin, y etngo un problema, cree una bd con nombre ejemplo, en ella cree una tabla con doscampos(nombre y telefono) y en html tengo un formulario que envia variables a un documento que se llama Insertar.php, el cual tiene el siguiente codigo:


Código:
<?
//Conexion con la base
mysql_connect("localhost", "root", "");
//Ejecucion de la sentencia SQL
mysql_db_query("ejemplo","insert into clientes (nombre,telefono) values ('$nombre','$telefono')");
?>
el problema es que cuando se ejecuta este archivo, me envia estos erroes:

Notice: Undefined variable: nombre in c:\easyphp1-7\www\db_example\insertar.php on line 10

Notice: Undefined variable: telefono in c:\easyphp1-7\www\db_example\insertar.php on line 10

alguien sabe a que se deben, espero contar con su ayuda :D


gracias de antemano !!!
  #2 (permalink)  
Antiguo 12/02/2004, 13:35
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
tienes razon, eso es de php. El asunto se produce por que cuando php examina el archivo descubre que puede existir la posibilidad de que las variables $nombre y $telefono no contengan valores (no esten definidas o inicializadas pues en ese script no se les ha asignado valor alguna, ya que vienen del formulario). Dos maneras existen de solucionar esto:

1. Ir al archivo php.ini de php y buscar la linea error_reporting y cambiarla por: error_reporting = E_ALL & ~E_NOTICE. Asi se evitan todos los posibles NOTICES, que no son errores sino informacion solamente.

2. asegurarse antes de usar la variable que esta tiene valor y éste es correcto, usando las funciones isset() o empty(), de este manera:

if(isset($nombre) && isset($telefono))
{
mysql_db_query("ejemplo","insert into clientes (nombre,telefono) values ('$nombre','$telefono')");

}
else
{
echo "Error";
}
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #3 (permalink)  
Antiguo 13/02/2004, 05:35
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 4 meses
Puntos: 0
Hola,
tu problema puede ser tambien debido a que tengas en php.ini el valor register_globals a OFF, por ello, tu script no entiende "$usuario" y "$telefono", para ello, si no quieres tocas el php.ini, cambia $usuario por $_POST['usuario'] y $telefono por $_POST['telefono']. Y si quieres tocar el php.ini, solo tienes que cambiar la directiva que te he comentado a ON.

De todas formas, yo te recomiendo que la dejes a Off y que utlices las variables $_POST

espero haberte sido util...

un saludo.
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
  #4 (permalink)  
Antiguo 17/02/2004, 22:24
 
Fecha de Ingreso: febrero-2004
Mensajes: 9
Antigüedad: 20 años, 3 meses
Puntos: 0
ok muchas gracias les agradesco su colaboración y ayuda, ahora paso a lo feo !

y es que cuando cambie el code por:

if(isset($nombre) && isset($telefono))
{
mysql_db_query("ejemplo","insert into clientes (nombre,telefono) values ('$nombre','$telefono')");

}
else
{
echo "Error";
}

me marca el error, es decir se va al else

y cuando coloque:

$_POST['usuario'];
$_POST['telefono'];
if(isset($nombre) && isset($telefono))
{
mysql_db_query("ejemplo","insert into clientes (nombre,telefono) values ('$nombre','$telefono')");

}
else
{
echo "Error";
}


me sale este error:
Notice: Undefined index: usuario in c:\easyphp1-7\www\db_example\insertar.php on line 7
Error //(este error es el else)

pero ahora mismo pruebo cambiendo el .ini, por otro lado que pasaria cuando ahi este error pero se trata de un servidor al que no tengo acceso ??
  #5 (permalink)  
Antiguo 18/02/2004, 07:30
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 4 meses
Puntos: 0
hola,

prueba esto:

Código PHP:
<?
$nombre 
$_POST['nombre'];
$telefono $_POST['telefono'];
//Conexion con la base
mysql_connect("localhost""root""");
//Ejecucion de la sentencia SQL
mysql_db_query("ejemplo","insert into clientes (nombre,telefono) values ('$nombre','$telefono')");
?>
Si tienes (en php.ini) el register_globals a off y las variables nombre y telefono las envias desde un form html a esta pagina con el metodo post, te debe funcionar bien.

un saludo.
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
  #6 (permalink)  
Antiguo 18/02/2004, 18:18
 
Fecha de Ingreso: febrero-2004
Mensajes: 9
Antigüedad: 20 años, 3 meses
Puntos: 0
wow, mil gracias ahora todo funciona perfecto
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 05:06.