Foros del Web » Programando para Internet » PHP »

Problema: Conectar php con base de datos(sql)

Estas en el tema de Problema: Conectar php con base de datos(sql) en el foro de PHP en Foros del Web. hola pues tengo un problema a la hora de hacer los inserts en una base de datos desde una pagina web, puedo introducirlos desde el ...
  #1 (permalink)  
Antiguo 27/11/2009, 09:20
 
Fecha de Ingreso: noviembre-2009
Mensajes: 5
Antigüedad: 14 años, 4 meses
Puntos: 0
Problema: Conectar php con base de datos(sql)

hola pues tengo un problema a la hora de hacer los inserts en una base de datos desde una pagina web, puedo introducirlos desde el mysql pero al hacerlo desde la web creada no me da ningun error en cambio cuando voi a hacer la consulta no me muestra nada...
me he estado repasando los nombres que le he puesto a todo i me e mirado el codigo varias veces y no consigo ver que falla, os lo dejo aqui pegado por si pudierais ayudarme, os lo agredeceria mucho:

<html>
<head>
<title>proceso_alta_inmovilizado</title>
</head>
<body>
<?
$conexion = mysql_connect ('localhost','root','david'); or die ("Error al conectar al servidor");
$bd = mysql_select_db ('inmovilizado'); or die ("No encuentra la base de datos inmovilizado");
$sql_query = "insert into inmovilizado (num_contable, ubicacion, nombre_persona)
values ('$num_contable', '$ubicacion', '$nombre_persona')";

mysql_query ($sql_query); or die ("Error al insertar registro");
mysql_close ($conexion);
?>
<li><a href="indice.php"> Volver al menu
</a> </li>
</body>
</html>


<html>
<head>
<title>añadir</title>
</head>
<body>
<form method="get" action="proceso_alta_inmovilizado.php">
<table>
<tr>
<td>Número contable:</td>
<td><INPUT TYPE="text" NAME="num_contable" SIZE="13" MAXLENGTH="13"></td>
</tr>
<tr>
<td>Ubicación:</td>
<td>
<select name="ubicacion">
<option value=1 selected>Administración
<option value=2>Almacén
<option value=3>CBP
<option value=4>Centralita
<option value=5>Dirección
<option value=6>Export
<option value=7>Logística
<option value=8>Informática
<option value=9>Medida
<option value=10>Mettering
<option value=11>Nacional
<option value=12>Postventa
<option value=13>Protección
<option value=14>Reactiva
<option value=15>SAT
<option value=16>Otros...
</select>
</td>
</tr>
<tr>
<td>Nombre Persona:</td>
<td><INPUT NAME="nombre_persona" TYPE="text" SIZE="25" MAXLENGTH="25"></td>
</tr>
<tr>
<td><input type="submit" value="Guardar"></td>
<td><input type="reset" value="Restablecer campos"></td>
</tr>
</table>
<li><a href="indice.php"> Volver al menu
</a> </li>

</body>
</html>
  #2 (permalink)  
Antiguo 27/11/2009, 09:29
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Problema: Conectar php con base de datos(sql)

Usa la funcion mysql_error() a ver si te ta un error especifico. Otra cosa, usa las variables $_GET o $_POST, estas llamando las variables sin antes mencionar por cual metodo fue que enviaste la información. Para más información lee esto http://www.forosdelweb.com/wiki/Manu...3%ADo_de_datos
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 27/11/2009, 09:29
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Problema: Conectar php con base de datos(sql)

Bueno empezemos por aqui, quitale el ( ; ) antes del or die( )

MAL

Código PHP:
$conexion mysql_connect ('localhost','root','david'); or die ("Error al conectar al servidor");
$bd mysql_select_db ('inmovilizado'); or die ("No encuentra la base de datos inmovilizado"); 
BIEN


Código PHP:
$conexion mysql_connect ('localhost','root','david') or die ("Error al conectar al servidor");
$bd mysql_select_db ('inmovilizado') or die ("No encuentra la base de datos inmovilizado"); 

Tambien intenta imprimir estas variables, quizas no tengan ningun valor...

$num_contable', '$ubicacion', '$nombre_persona'

Ademas puedes depurar tus consultas
Código PHP:
mysql_query(/*Consulta*/) or die( mysql_error() ); 
__________________
Como presentar nuestros datos por medio de tablas . clase Aco_DataGrid Version 1.4
  #4 (permalink)  
Antiguo 30/11/2009, 09:24
 
Fecha de Ingreso: noviembre-2009
Mensajes: 5
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Problema: Conectar php con base de datos(sql)

Lo primero de todo muhas gracias a lso dos por responder, he probado lo que me dijisteis y me sigue sin dar resultado, voi a ponerlo como lo tengo ahora, he mirado turoriales, apuntes que tenia y he preguntado y todavia no me explico porque no me entran los registros en la base de datos:


asi es como tengo la base de datos (hecha con mysql), si entro desde aqui los registros si me los guarda, luego con un select los puedo mostrar con pantalla, hasta aqui todo bien:
Código:
create table inmovilizado(
codigo_interno int (8) primary key auto_increment,
num_contable char (13) not null,
fecha_alta date,
fecha_modificacion date,
fecha_baja date,
ubicacion varchar (20),
nombre_persona varchar (25),
motivo_baja varchar (20),
baja boolean default false
);

aqui es la pagina de php donde se entran los registros (la estoy haciendo con dreamweaver), hasta aqui todo bien tambien me sale la pagina i puedo entrar los registros i borrar los campos:
Código PHP:
<html>
<
head>
<
title>añadir</title>
</
head>
<
body>
    
<
form action="proceso_alta_inmovilizado.php" method="get">
<
table>
<
tr>
    <
td>Número contable:</td>
    <
td><INPUT TYPE="text" NAME="num_contable" SIZE="13" MAXLENGTH="13"></td>
</
tr>
<
tr>
    <
td>Ubicación:</td>
    <
td>
        <
select name="ubicacion">
           <
option value=1 selected>Administración
           
<option value=2>Almacén
           
<option value=3>CBP
           
<option value=4>Centralita
           
<option value=5>Dirección
        
<option value=6>Export
        
<option value=7>Logística
           
<option value=8>Informática
        
<option value=9>Medida
        
<option value=10>Mettering
        
<option value=11>Nacional
        
<option value=12>Postventa
        
<option value=13>Protección
        
<option value=14>Reactiva
        
<option value=15>SAT
        
<option value=16>Otros...
      </
select>
    </
td>
</
tr>
<
tr>
    <
td>Nombre Persona:</td>
    <
td><INPUT TYPE="text" NAME="nombre_persona" SIZE="25" MAXLENGTH="25"></td>
</
tr>
<
tr>
  <
td><input type="submit" value="Guardar"></td>
  <
td><input type="reset" value="Restablecer campos"></td>
</
tr>
</
table>
<
li><a href="indice.php"Volver al menu
  
</a> </li>
 
</
body>
</
html
aqui dejo proceso_alta_inmovilizado.php esta es la pagina que deberia cojer los datos introducidos por php y guardarlos en la base de datos, una vez introducidos los datos me entra en esta pagina en la direccion url me pone: file:///C:/AppServ/www/Base%20de%20datos/proceso_alta_inmovilizado.php?num_contable=CIR-987654321&ubicacion=8&nombre_persona=Juan

por lo que no deberia dar error ninguno
Código PHP:
<html>
<head>
<title>Hecho</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?
   $conexion 
mysql_connect ('localhost','root','david') or die ("Error al conectar al servidor");
   
$bd mysql_select_db ('inmovilizado') or die ("No encuentra la base de datos inmovilizado");
   
$sql_query insert into inmovilizado (num_contableubicacionnombre_persona)
   
values ('$_GET['num_contable']''$_GET['ubicacion']''$_GET['nombre_persona']');
   
   
mysql_query ($sql_query) or die ("Error al insertar registro");
   
mysql_close ($conexion);
?>
<li><a href="indice.php"> Volver al menu
  </a> </li>
</body>
</html>
luego al hacer la consulta en la base de datos me da como si no hubiera insertado ningun registro
utilizo el appserver i toda la pagina de php la tengo colgada en la carpeta www
  #5 (permalink)  
Antiguo 30/11/2009, 09:37
 
Fecha de Ingreso: julio-2003
Ubicación: Cochabamba Bolivia
Mensajes: 300
Antigüedad: 20 años, 8 meses
Puntos: 14
Respuesta: Problema: Conectar php con base de datos(sql)

Hola, en tu sql_query te falta las comillas de inicio y final

Código php:
Ver original
  1. $sql_query = insert into inmovilizado (num_contable, ubicacion, nombre_persona)
  2.    values ('$_GET['num_contable']', '$_GET['ubicacion']', '$_GET['nombre_persona']');

y tambien deberias hacerlo en una sola linea.

Saludos.
__________________
:policia: Uno para todos y todos para uno.
  #6 (permalink)  
Antiguo 01/12/2009, 09:37
 
Fecha de Ingreso: noviembre-2009
Mensajes: 5
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Problema: Conectar php con base de datos(sql)

bueno gracias a todos al final he podido solucionar el problema, reestructure el codigo que se conectaba con la base de datos al final me quedo asi:

Código PHP:
<html>
<head>
<title>Datos introducidos</title>
</head>

<body>
<?
$conex 
mysql_connect ("localhost","root","david") or die ("No se pudo realizar la conexión");

mysql_select_db ("inmovilizado"); 

$num_contable=$HTTP_POST_VARS['num_contable'];
$ubicacion=$HTTP_POST_VARS['ubicacion'];
$nombre_persona=$HTTP_POST_VARS['nombre_persona'];
$fecha_alta=date("Y-m-d");

if (!(empty (
$num_contable)) && !(empty($ubicacion)) && !(empty($nombre_persona)) )
    {
      
$IngresaDatos "INSERT INTO inmovilizado (num_contable, fecha_alta, ubicacion, nombre_persona) VALUES ('$num_contable', '$fecha_alta', '$ubicacion', '$nombre_persona');";
      
$Resultado mysql_query ($IngresaDatos$conex);
      if (
$Resultado)
       {
         echo 
"<b>Datos guardados correctamente: </b>"
         echo 
"<br>";
         echo 
"<b>Número contable:</b> $num_contable <br> <b>Ubicación:</b> $ubicacion <br> <b>Nombre persona:</b> $nombre_persona <br> <b>Fecha Alta::</b> $fecha_alta";
       }
      else 
       {
         echo 
"<b>Asegurese de que el campo <i><u>Número contable</u></i> no este repetido, en el caso de que no este repetido compruebe que esten rellenos todos los campos</b>";
       }
    }
mysql_close($conex); 
?>
<li><a href="indice.php"> Volver al menu
  </a> </li>
</body>
</html>
ya se puede cerrar el tema y muchas gracias de nuevo
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:05.