Hola, tengo un problema al añadir registros a una base de datos, para eso uso la siguiente expresión:
$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
$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
Prueba con:
$nombre=$_POST['nombre'];
Saludos
Gracias por tu pronta respuesta, pero el problema aún persiste, ¿alguna otra idea de que pueda estar pasando?
De nada. Lo que se me ocurre es que no estás llamando el mysql_query.
Podrías poner todo el código?
Saludos
Este es el código de la página proveedores.php
<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ón:</td>
<td class="noborde"><textarea name="direccion" rows="5" cols="40" wrap="hard"></textarea></td>
</tr>
<tr>
<td class="label">Telé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
<?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);?>
Puedes poner el error que te lanza???
Cita de: alone-in-the-chat en 29 Marzo 2007, 00:37 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.
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.
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í:
<?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?
Hola,
Veamos:
if ($subaction=="guardar")
<input type="Submit" value="Guardar">
Debería ser:
<input type="Submit" value="Guardar" name="guardar">
y afuera de if ($subaction=="guardar"):
$guardar=$_POST['guardar'];
Saludos
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.
Yo lo hago de otra forma, prueba asi, asi nunca me ha dado ningun problema:
<?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!
?>
Todo lo que fallaba era un punto y coma :P, lo que tenia era esto:
<?php
$sql= "INSERT INTO proveedor (nombre, direccion, telefono, email) VALUES ('$nombre', '$direccion', '$telefono', '$email')";
?>
y con el punto y coma quedo así:
<?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.
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!