Ver Mensaje Individual
  #8 (permalink)  
Antiguo 30/03/2013, 14:36
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema para que un form consulte mysql y envie esa info en formato html

Bueno, vamos a analizar primero lo último que mencionas: El error de sintaxis devuelto por MySQL.
Si tomo el segmento del código completo sería:
Código PHP:
Ver original
  1. <?php
  2. $sql = "insert into visitantes (nomape, direccion, email, pais, ciudad, telefono, informacion, comenta, ipad, fechain )
  3. values ($_POST['nomape'], $_POST['direccion'], $_POST['email'], $_POST['pais'], $_POST['ciudad'], $_POST['telefono'], $_POST['informacion'], $_POST['comenta'], $_POST['ipad'] , $_POST['fechain'] )";
  4. ?>

Vamos a limpiar un poco este código, poniéndolo más legible para saber qué variables estáas trabajando (usar códigos limpios es la mejor manera de ver los problemas) :
Código PHP:
Ver original
  1. <?php
  2. $sql = "INSERT ITO visitantes(";
  3. $sql .= "  nomape, ";
  4. $sql .= "  direccion, ";
  5. $sql .= "  email, ";
  6. $sql .= "  pais, ";
  7. $sql .= "  ciudad, ";
  8. $sql .= "  telefono, ";
  9. $sql .= "  informacion, ";
  10. $sql .= "  comenta, ";
  11. $sql .= "  ipad, ";
  12. $sql .= "  fechain ) ";
  13. $sql .= "VALUES($_POST['nomape'], ";
  14. $sql .= "  $_POST['direccion'], ";
  15. $sql .= "  $_POST['email'], ";
  16. $sql .= "  $_POST['pais'], ";
  17. $sql .= "  $_POST['ciudad'], ";
  18. $sql .= "  $_POST['telefono'], ";
  19. $sql .= "  $_POST['informacion'], ";
  20. $sql .= "  $_POST['comenta'], ";
  21. $sql .= "  $_POST['ipad'] , ";
  22. $sql .= "  $_POST['fechain'] )";
  23. ?>

Con eso ya podemos ver que por ejemplo, los contenidos de las variables seguro que causan problemas, ya que estás creyendo que MySQL "entiende" PHP y que interpreta que una cadena es una cadena, y no otra cosa... Y eso no es cierto.
PHP y MySQL son cosas independientes, y cuando creas una sentencia SQL en PHP lo haces para que la librería de acceso a datos la envíe a la base, y la base entienda lo que quieres. Pero la base no recibe variables. Recibe una cadena de texto conteniendo una sentencia SQL, y nada más.
Suponiendo que los valores de las variables fuesen estos:

Cita:
$_POST['nomape'] = Juan Perez
$POST['direccion'] = Camila O'Gorman', Nº 90
$_POST['email'] = [email protected]
$_POST['pais'] = Argentina
$_POST['ciudad'] = Colonia Lola
$_POST['telefono'] = 05439897767
$_POST['informacion'] = "ninguna disponible"
$_POST['comenta'] = "lo que fuese"
$_POST['ipad'] = NULL
$_POST['fechain'] = 2013-03-26
Lo que en realidad recibiría MySQL Sería esto:
Código MySQL:
Ver original
  1. INSERT INTO visitantes (nomape, direccion, email, pais,
  2. ciudad, telefono, informacion, comenta, ipad, fechain )
  3. VALUES(Juan Perez, Camila O'Gorman',90, , [email protected], Argentina,
  4. Colonia Lola, 5439897767, "ninguna disponible", "lo que fuese", ,1984)

Lo que a todas luces está lleno de errores, que se producen porque los datos se combinaron con la consulta sin respetar la estructura del SQL.
Para ser una sentencia válida, debería haberse creado de esta forma:
Código MySQL:
Ver original
  1. INSERT INTO visitantes (nomape, direccion, email, pais, ciudad, telefono, informacion, comenta, ipad, fechain )
  2. VALUES('Juan Perez', 'Camila O\'Gorman, Nº 90', '[email protected]', 'Argentina', 'Colonia Lola', '05439897767', 'ninguna disponible', 'lo que fuese', ,'2013-03-26')
¿Se entiende?
La sentencia está mal creada. Las cadenas de texto y las fechas deben quedar entre apóstrofes, los apóstrofes internos deben estar escapados, y los teléfonos con cero inicial se deben tratar como cadenas de texto.

Del resto, aún no he revisado nada.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)