Foros del Web » Programando para Internet » PHP »

Problemas al Insertar a Una base de Datos

Estas en el tema de Problemas al Insertar a Una base de Datos en el foro de PHP en Foros del Web. Hola Amigos Foreros, bueno en mi aprendizaje de Php intente hacer una insercion de datos a mi BD, este ejemplo lo saque de un libro ...
  #1 (permalink)  
Antiguo 06/04/2005, 23:28
 
Fecha de Ingreso: abril-2003
Ubicación: Antofagasta-Chile
Mensajes: 64
Antigüedad: 21 años
Puntos: 0
Problemas al Insertar a Una base de Datos

Hola Amigos Foreros, bueno en mi aprendizaje de Php intente hacer una insercion de datos a mi BD, este ejemplo lo saque de un libro y le fui agregando codigo y arreglines. El asunto es que no ingresa los datos

No se que estara mal, tengo dos archivos 1: ingreso.htm donde ingreso los datos y este que se llama prueba.php al ejecutar el codigo me dice "la consulta no funciono" no se que estara mal...
Código PHP:
<?php

$Host 
"localhost";
$User "root";
$Password "";
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
$rut=$_POST ['rut'];
$direccion=$_POST['direccion'];
$telefono=$_POST['telefono'];
$email=$_POST['email'];
$DBname "ayudasalud";
$TableName "prueba";
$Link mysql_connect($Host,$User,$Password);
$bdmysql_select_db($DBname$Link);
$Query "INSERT into $TableName values ('$nombre','$apellido','$rut','$direccion','$telefono','$email')";

print (
"La consulta es: <br>$Query<p>\n");

if (
mysql_db_query ($DBName,$Query,$Link)) {
    print (
"la consulta funciono <br>\n");
}else {
   print (
" la consulta no funciono <br>\n");
  }
mysql_close ($Link);

?>
Espero su ayuda,

atte

Sindrome
__________________
Opache:
A Un Click De Tus Sueños...
  #2 (permalink)  
Antiguo 06/04/2005, 23:58
Avatar de aristotelisco  
Fecha de Ingreso: marzo-2005
Ubicación: Oxnard CA USA
Mensajes: 151
Antigüedad: 19 años
Puntos: 0
No estoy seguro, pero tal vez podrías tratar

mysql_query ($Query,$Link);
en vez de
mysql_db_query ($DBName,$Query,$Link);

yo nunca he usado la segunda, pero la primera me funciona.
__________________
Atte:
Alex Reyes

www.alexreyes.net
  #3 (permalink)  
Antiguo 07/04/2005, 00:10
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
En primer lugar, agrega mysql_error(), esto te tirará el error.
Deberías crear un script con los datos para usar la DB e incluirlo en los demás archivos q van a utilizar MySQL. Ej.: include_once(TuArchivoConTusDatos.php) o require_once(TuArchivoConTusDatos.php). Este quedaría algo así:
Código PHP:
<?
$Host 
"localhost"
$User "root"
$Password ""
$DBname "ayudasalud"
$TableName "prueba";
mysql_connect($Host,$User,$Password) or die(mysql_error()); /*Aquí tienes la conexión
con la DB */
?>
y el query podrías hacerlo así
Código PHP:
$Query "INSERT into $TableName (nombre,apellido,ruta,direccion,telefono,email,fecha,) values('$nombre','$apellido','$rut','$direccion','$telefono','$email')" or die(mysql_error());
//nombre, apellido, ruta, etc. son los nombre de los campos donde se ingresarán los datos. 
Yo nunca he tirado un query en un if, no se si en realidad funciona. Haz los cambios y si sigue sin funcionar agrega un hidden a tu formulario con cualquier dato por ej. datos
entonces el if quedaría así
Código PHP:
if($NombreDelHidden == "datos"){
mysql_db_query($DBName,$Query) or die(mysql_error());
echo 
"La consulta funcionó"//aunq en realidad no es consulta, es ingreso de datos
}else{
echo 
"la consulta no funciona...";

Saludos cuidate
__________________
Dios dira que esto no es justo, pero lo sera...
  #4 (permalink)  
Antiguo 07/04/2005, 13:44
 
Fecha de Ingreso: abril-2003
Ubicación: Antofagasta-Chile
Mensajes: 64
Antigüedad: 21 años
Puntos: 0
Campos Vacios

Muchas Gracias por sus aportes!!!, bueno siguiendo mi labor investigativa y programadora , logre realizar este codigo. Que inserta los registros en la BD ! ehhh pero.. los campos van vacios...no se que pasara ... ojala le puedan echar una miradita y decirme que sucede.

Código PHP:
<?    
$Host 
"localhost";
$User "root";
$Password "";
$DBname "ayudasalud";
$TableName "prueba";

$Link mysql_connect($Host,$User,$Password) or die(" No me pude conectar a la base de datos");
mysql_select_db ($DBname,$Link) or die (mysql_error());

$Query mysql_query("INSERT INTO $TableName (nombre,apellido,rut,direccion,telefono,email) values('$nombre','$apellido','$rut','$direccion','$telefono','$email')",$Link);
 
mysql_close($Link);

?>

Muchas Gracias!!!
__________________
Opache:
A Un Click De Tus Sueños...
  #5 (permalink)  
Antiguo 07/04/2005, 13:50
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
van vacios porque.. $nombre, $apellido... y demás variables no les asignas ningún valor... ó al menos aquí no lo muestras.

Vienen de un formulario? recojelas con las variables $_POST ço $_GET según en method... algo así: $nombre= $_POST['nombre'];... reviza las FAQ ó busca en el foro.. es básico. O replantea tu problema si no es esto...

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 07/04/2005, 13:57
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
Código PHP:
<?php
foreach($_POST as $nombre_campo => $valor){$asignacion "\$".$nombre_campo."='".addslashes($valor)."';";
    eval(
$asignacion);}
foreach(
$_GET as $nombre_campo => $valor){$asignacion "\$".$nombre_campo."='".$valor."';";
    eval(
$asignacion);}
foreach(
$_FILES as $nombre_campo => $valor){$asignacion "\$".$nombre_campo."='".$valor."';";
    eval(
$asignacion);}
?>
Con esto no tendrás q validar cada campo. El foreach recorre cada dato, ya sea pos, get o file. Nunca he tenido problemas con esto salvo cuando pones en el formulario enctype="text/plain". No me tiraba ningún error, pero siempre me volvía a datos no válidos. Fijate si en el .htm q tienes el form tienes declarado enctype como texto plano.
__________________
Dios dira que esto no es justo, pero lo sera...
  #7 (permalink)  
Antiguo 07/04/2005, 14:07
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
... .. justo cuando se me habia ocurrido hacer algo así... .
No lo he provado... pero en principio debe de servir... ... aunque no me gusta el uso de comillas simples... pero bueno...

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 07/04/2005, 14:51
 
Fecha de Ingreso: abril-2003
Ubicación: Antofagasta-Chile
Mensajes: 64
Antigüedad: 21 años
Puntos: 0
muchas Gracias

Ok Jam , muchas gracias por la ayuda. ahora me funciona perfecto.

Sevteb guaradare tu codigo pa futuras modificciones, cuando tenga mas soltura con php (imagina que me cuesta hacer un insert jejej).

Gracias a todos
__________________
Opache:
A Un Click De Tus Sueños...
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:35.