Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: InGuS en 28 Marzo 2007, 23:36 pm



Título: Problema al añadir registros a base de datos
Publicado por: InGuS en 28 Marzo 2007, 23:36 pm
Hola, tengo  un problema al añadir registros a una base de datos, para eso uso la siguiente expresión:

Código:
$resultado= mysql_query("INSERT INTO 'proveedor'  ('id','nombre', 'direccion', 'telefono', 'email') 
VALUES (NULL, '".$nombre."', '".$direccion."', '".$telefono."', '".$email."')",$conexion);

La conexión a la base de datos la hago mediante

Código:
$conexion= @mysql_pconnect('localhost','usuario','password') or die 
('Imposible conectar con la base de datos debido al siguiente error: ' . mysql_error());
$bd= mysql_select_db('lista',$conexion);

Los datos los obtengo desde un formulario, el problema es que no ingresa los datos. Creo que todo radica en las comillas y en los puntos, he intentado quitarlas ponerlas pero aún no puedo añadir los datos.

¿Alguna idea?

Saludos


Título: Re: Problema al añadir registros a base de datos
Publicado por: дٳŦ٭ en 28 Marzo 2007, 23:39 pm
Prueba con:

Código:
$nombre=$_POST['nombre'];

Saludos


Título: Re: Problema al añadir registros a base de datos
Publicado por: InGuS en 28 Marzo 2007, 23:51 pm
Gracias por tu pronta respuesta, pero el problema aún persiste, ¿alguna otra idea de que pueda estar pasando?


Título: Re: Problema al añadir registros a base de datos
Publicado por: дٳŦ٭ en 29 Marzo 2007, 00:01 am
De nada. Lo que se me ocurre es que no estás llamando el mysql_query.

Podrías poner todo el código?

Saludos


Título: Re: Problema al añadir registros a base de datos
Publicado por: InGuS en 29 Marzo 2007, 00:08 am
Este es el código de la página proveedores.php

Código:
	<h1>Agregar un proveedor</h1>
<form name ="agregar" action="proveedores.php?subaction=guardar" method="post">
<table border="0">
<tr>
<td class="label">Nombre:</td>
<td class="noborde"><input type="text" name="nombre" maxlength="100" size="47"></td>
</tr>
<tr>
<td class="label">Direcci&oacute;n:</td>
<td class="noborde"><textarea name="direccion" rows="5" cols="40"  wrap="hard"></textarea></td>
</tr>
<tr>
<td class="label">Tel&eacute;fono:</td>
<td class="noborde"><textarea name="telefono" rows="3" cols="20" wrap="hard"></textarea></td>
</tr>
<tr>
<td class="label">E-mail:</td>
<td class="noborde"><input type="text" name="email"  maxlength="50" size="47"></td>
</tr>
<tr>
<td class="noborde" colspan="2" align="center"><input type="Submit" value="Guardar">
<input type="reset" value="Limpiar"></td>
</tr>
</table>
</form>

<?php
$subaction = $HTTP_GET_VARS["subaction"];
include("mainfile.php");
if ($subaction=="guardar")
{
$nombre=$_POST['nombre'];
$direccion =$_POST['direccion'];
$telefono =$_POST['telefono'];
$email =$_POST['email'];

$resultado= mysql_query("INSERT INTO 'proveedor'  ('id','nombre', 'direccion', 'telefono', 'email')
        VALUES (NULL, '".$nombre."', '".$direccion."', '".$telefono."', '".$email."')",$conexion);
if ($resultado)
echo "Datos añadidos";
else
echo "Ha ocurrido un error";
}?>

En mainfile.php es donde tengo los datos de conexion

Código:
<?php $conexion= @mysql_pconnect('localhost','usuario','password') or die 
('Imposible conectar con la base de datos debido al siguiente error: ' . mysql_error());
$bd= mysql_select_db('lista',$conexion);?>


Título: Re: Problema al añadir registros a base de datos
Publicado por: alone-in-the-chat en 29 Marzo 2007, 00:37 am
Puedes poner el error que te lanza???


Título: Re: Problema al añadir registros a base de datos
Publicado por: InGuS en 29 Marzo 2007, 00:59 am
Puedes poner el error que te lanza???


No pone ningun error, simplemente aparece la pantalla en blanco, por eso puse el último if y asi saber que sucedía.

Me puse a "jugar" con los puntos y las comillas y llegue a introducir un dato, lo malo fue que solo ingreso la id (autoincremental en la BD), lo demás simplemente quedo en blanco.


Título: Re: Problema al añadir registros a base de datos
Publicado por: alone-in-the-chat en 29 Marzo 2007, 01:05 am
Haz un print_r($_POST)
para que chekes si los datos estan llegando o no
Por que a simple vista no le veo el error
y aver x si acaso tb haz un echo de la cadena que le envias al mysql_query
Saludos.


Título: Re: Problema al añadir registros a base de datos
Publicado por: InGuS en 29 Marzo 2007, 01:32 am
Ya lo intente introduciendo las palabras

Uno
Dos
Tres
Cuatro

no pude usar print_r así que use print ($_POST) y me imprimió "array"; probe imprimiendo cada variable y me las mostro sin ningun problema. También imprimi el query y dio como resultado esto.

INSERT INTO 'proveedor' ('id','nombre', 'direccion', 'telefono', 'email')
VALUES (NULL, 'Uno', ' Dos ', ' Tres ', 'Cuatro')

esa parte de código quedo así:

Código:
<?php 
        $nombre=$_POST['nombre'];
$direccion =$_POST['direccion'];
$telefono =$_POST['telefono'];
$email =$_POST['email'];
$sql= "INSERT INTO 'proveedor'  ('id','nombre', 'direccion', 'telefono', 'email')
        VALUES (NULL, '".$nombre."', '".$direccion."', '".$telefono."', '".$email."')";
$resultado= mysql_query($sql,$conexion);

print ($_POST);

print $sql;
?>

¿Estoy haciendo bien la conexión?


Título: Re: Problema al añadir registros a base de datos
Publicado por: дٳŦ٭ en 29 Marzo 2007, 02:15 am
Hola,

Veamos:

Código:
if ($subaction=="guardar")

Código:
<input type="Submit" value="Guardar">

Debería ser:
Código:
<input type="Submit" value="Guardar" name="guardar">

y afuera de if ($subaction=="guardar"):

Código:
$guardar=$_POST['guardar'];

Saludos


Título: Re: Problema al añadir registros a base de datos
Publicado por: InGuS en 29 Marzo 2007, 03:37 am
No, aun no lo consigo. Creo que mejor reescribo todo desde cero.

Ya comprobé la conexión con la BD, esta bien, no tuve problema alguno al mostrar los registros que hay en ella.

Si se les ocurre algo mas soy todo oidos (u ojos mejor dicho)

Saludos y gracias.


Título: Re: Problema al añadir registros a base de datos
Publicado por: Luisango en 30 Marzo 2007, 16:03 pm
Yo lo hago de otra forma, prueba asi, asi nunca me ha dado ningun problema:

Código:
<?php
include('mysql.php'); //Conexion a la base de datos, solo eso
mysql_query('INSERT INTO tabla (pepe, pepito, canuto, canutito) VALUES ('.$_POST[pepe].', '.$_POST[pepito].', '.$_POST[canuto].', '.$_POST[canutito].')'); // El campo de ID lo omito porque si es null para que lo quiero tener ahi?

// Y ya esta, no tiene mas, prueba asi, y me cuentas como te va, un saludo!
?>


Título: Re: Problema al añadir registros a base de datos
Publicado por: InGuS en 30 Marzo 2007, 22:08 pm
Todo lo que fallaba era un punto y coma  :P, lo que tenia era esto:

Código:
<?php
$sql= "INSERT INTO proveedor (nombre, direccion, telefono, email) VALUES ('$nombre', '$direccion', '$telefono', '$email')";
?>

y con el punto y coma quedo así:

Código:
<?php
$sql= "INSERT INTO proveedor (nombre, direccion, telefono, email) VALUES ('$nombre', '$direccion', '$telefono', '$email');";
?>

Lo que me llamo la atención es que nunca había visto que lo pusieran, en ninguno de los tutoriales que he leído lo menciona.

Saludos y gracias a todos por su ayuda.


Título: Re: Problema al añadir registros a base de datos
Publicado por: Luisango en 30 Marzo 2007, 23:35 pm
Jejejeje joe, eso es uno de los fallos qeu llamo yo enanitos cabroncetes porque son pequeñitos y te putean un monton, pues nada a aprender con todo esto, si no lo has visto ya te puedes dormir bien esta noche que has aprendido cosas nuevas jejej
y si tienes alguna duda... como digo siempre por muy pequeña que sea, posteala

Un saludo!