Foros del Web » Programando para Internet » PHP »

No me guarda en la base de datos

Estas en el tema de No me guarda en la base de datos en el foro de PHP en Foros del Web. Hola, soy nuevo en el foro y tengo un problema con un script que tengo. Las variables las recibe pero no me las guarda en ...
  #1 (permalink)  
Antiguo 18/06/2010, 07:38
 
Fecha de Ingreso: junio-2010
Mensajes: 62
Antigüedad: 13 años, 10 meses
Puntos: 0
De acuerdo No me guarda en la base de datos

Hola, soy nuevo en el foro y tengo un problema con un script que tengo. Las variables las recibe pero no me las guarda en la base de datos. A ver si alguien me puede echar una mano.

Este es el script

agregar.php

Código PHP:
<?php
include ('cabecera.php');

echo 
"<div align='center'>
<h1>Insertar un artículo</h1><br>    
<FORM METHOD='POST' ACTION='agregardb.php' enctype='multipart/form-data'>
Nombre: <br>
<INPUT TYPE='TEXT' NAME='nombre'><br><br>
Apellidos:<br> 
<INPUT TYPE='TEXT' NAME='apellidos'><br><br>
Email de contacto: <br>
<INPUT TYPE='TEXT' NAME='contacto'><br><br>
Localidad:<br> 
<INPUT TYPE='TEXT' NAME='localidad'><br><br>
Provincia:<br> 
<INPUT TYPE='TEXT' NAME='provincia'><br><br>
Código Postal:<br> 
<INPUT TYPE='TEXT' NAME='cp'><br><br>
País:<br> 
<INPUT TYPE='TEXT' NAME='pais'><br><br>
Categoría:<br>
  <select name='categoria' >
    <option id='audio'> Audio TV y MP3</option>
    <option id='casajardin'> Casa y Jard&iacute;n</option>
    <option id='cine'> Cine, DVD y Pel&iacute;culas </option>
    <option id='coches'> Coches y recambios</option>
<option id='consolas'> Consolas y Video Juegos</option>
    <option id='deportes'> Deportes </option>
    <option id='fotos'> Fotograf&iacute;a y Videoc&aacute;maras </option>
    <option id='informatica'> Inform&aacute;tica y PDAs</option>
<option id='motos'> Motos, Quads y recambioa</option>
    <option id='moviles'> M&oacute;viles y Accesorios </option>
    <option id='musica'> M&uacute;sica, CD y Vinilos </option>
    <option id='otros'> Otras categorías</option>
 </select><br><br>
Nombre del articulo:<br> 
<INPUT TYPE='TEXT' NAME='nombre_art'><br><br>
Descripcion:<br> 
  <textarea NAME='descripcion' cols='45' rows='5'> </textarea><br><br>
Precio:<br> 
<INPUT TYPE='TEXT' NAME='precio'><br><br>
<b>Subir imágen principal</b> 
  <br> 
        <input name='userfile' type='file'> 
        <br> <br> 
<INPUT TYPE='SUBMIT' value='Insertar'>
</FORM>
</div>"
;

include (
'pie.php');
?>
y los datos lo recibe este otro

agregardb.php

Código PHP:
<?php 
include ('cabecera.php');
//Recogemos las variables
$nombre $_POST['nombre'];
$apellidos $_POST['apellidos'];
$localidad $_POST['localidad'];
$provincia $_POST['provincia'];
$contacto $_POST['contacto'];
$cp $_POST['cp'];
$pais $_POST['pais'];
$categoria $_POST['categoria'];
$nombre_art $_POST['nombre_art'];
$descripcion $_POST['descripcion'];
$precio $_POST['precio'];

//datos del arhivo 
$carpeta "img";
$nombre_archivo $HTTP_POST_FILES['userfile']['name']; 
$tipo_archivo $HTTP_POST_FILES['userfile']['type']; 
$tamano_archivo $HTTP_POST_FILES['userfile']['size']; 
$nombre_archivo_temp $HTTP_POST_FILES['userfile']['tmp_name'];

$sql"INSERT INTO articulos-venta (id_art, nombre, apellidos, localidad, provincia, contacto, cp, pais, categoria, nombre_art, descripcion, precio, img) VALUES ('$nombre,'$apellidos', '$localidad', '$provincia', '$contacto', '$cp', '$pais', '$categoria', '$nombre_art', '$descripcion', '$precio', '$nombre_archivo'";
mysql_query($sql);
//compruebo si las características del archivo son las que deseo 
if (!((strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg")) && ($tamano_archivo 10000000))) { 
       echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 10 Mb máximo.</td></tr></table>"
}else{ 
       if (
move_uploaded_file($nombre_archivo_temp"$carpeta/$nombre_archivo" )){ 
// Nos Indica que el Registro a sido Insertado
echo"<div align='center'>
<h2>Su artículo se ha insertado correctamente en breves instantes podrá verlo en la web.<br />
<a href='index.php'>pulsa aquí</a></h2>
</div>"
;

}
include (
'pie.php');
?>
La conexión va incluida en cabecera.

Un saludo y gracias de antemano.
  #2 (permalink)  
Antiguo 18/06/2010, 07:41
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, 11 meses
Puntos: 1517
Respuesta: No me guarda en la base de datos

Haz un var_dump a las variables para que veas que está almacenando y en vez de usar HTTP_POST_FILES usa $_FILES.
__________________
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 18/06/2010, 08:06
 
Fecha de Ingreso: junio-2010
Mensajes: 62
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: No me guarda en la base de datos

Ya hice el var_dump y me devuelve los datos que introduzco en los campos pero no me guarda.
  #4 (permalink)  
Antiguo 18/06/2010, 08:07
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, 11 meses
Puntos: 1517
Respuesta: No me guarda en la base de datos

Depura tu consulta usa las funciones que te indican errores.
Código PHP:
Ver original
  1. mysql_query('aqui va tu consulta') or die(mysql_error());
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 18/06/2010, 08:12
 
Fecha de Ingreso: junio-2010
Mensajes: 62
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: No me guarda en la base de datos

Este es el error que me devuelve.

Hay un error en la sintaxis SQL, consulte el manual correspondiente a su versión del servidor MySQL para la sintaxis derecho a utilizar cerca de 'Bello Téllez', 'Ronda', 'Málaga', '[email protected]', '29400 ',' España ',' C 'en la línea 1
  #6 (permalink)  
Antiguo 18/06/2010, 08:15
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia
Mensajes: 229
Antigüedad: 14 años
Puntos: 2
Respuesta: No me guarda en la base de datos

Yo veo que en tu insert empiezas a insertar los datos con id pero no le estas poniendo la variable y te falta una comilla en nombre '$nombre y te falta cerrar el parentisis

$sql= "INSERT INTO articulos-venta (id_art, nombre, apellidos, localidad, provincia, contacto, cp, pais, categoria, nombre_art, descripcion, precio, img) VALUES ('$nombre','$apellidos', '$localidad', '$provincia', '$contacto', '$cp', '$pais', '$categoria', '$nombre_art', '$descripcion', '$precio', '$nombre_archivo')";
  #7 (permalink)  
Antiguo 18/06/2010, 08:16
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, 11 meses
Puntos: 1517
Respuesta: No me guarda en la base de datos

Desde la variable que sostenga 'Bello Téllez' hay un error (lo más probable que antes). Analiza el error que te está indicando y verifica que tienes declarado incorrectamente.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 18/06/2010, 08:21
 
Fecha de Ingreso: junio-2010
Mensajes: 62
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: No me guarda en la base de datos

Gracias por lo de la ' de $nombre.
Ahora el error que me devuelve es este

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
  #9 (permalink)  
Antiguo 18/06/2010, 08:23
 
Fecha de Ingreso: junio-2010
Mensajes: 62
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: No me guarda en la base de datos

Ya esta faltaba un ) al final y ese era el error. Muchas gracias por las rapidas respuestas.

Etiquetas: Ninguno
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 07:22.