intenta hacer el $sql asi:
Pero también necesito saber como esta estructurada tu base de datos debido a que no se que tipo de datos acepta por ejemplo si el campo "filepath" acepta varchar, char o text eso es lo que necesito saber....Código PHP:$sql="INSERT INTO `cuevana` (
`autor`,
`titulo`,
`mensaje`,
`identificador`,
`filepath`,
`fecha`,
`ult_respuesta`)
VALUES (
'$autor',
'$titulo',
'$mensaje',
'$filepath',
'$ident',
NOW(),
NOW());";
Lo otro es el $con me imagino que viene del require('config.php'); pero lo tienes definido o dentro de una función?
-----------------------------------------------------------------------------
Mijail Rondon - Programador Freelance
BUENO!!! POR FIN LOGRE QUE LA IMAGEN AL IGUAL QUE LOS DATOS SE GRABEN CORRECTAMENTE EN LA BASE DE DATOS. LO QUE HICE, COMO COMENTO CABU, FUE CAMBIAR EL NOMBRE FILEPATH POR IMAGEN, CREE UN CAMPO EN LA TABLA CON EL NOMBRE DE IMAGEN Y LO NOMBRE COMO VARCHAR(500).
AHORA EL ULTIMO PROBLEMA QUE TENGO, ES QUE ARRIBA DE TODO EL CODIGO LE AGREGUE: if($_COOKIE['usuario'] and $_COOKIE['contrasena']) { QUE ES EL CODIGO QUE USABA PARA QUE ME GRABE LA PELICULA CON EL NOMBRE DEL USUARIO QUE LA SUBIO, EL PROBLEMA ES QUE SI LO SACO ME GRABA TODO PERFECTO EN LA BASE DE DATOS PERO COMO ANONIMO, AHORA SI LO AGREGO, ME DICE ERROR EN LA ULTIMA FILA DEL PHP... Y LA ULTIMA FILA POR EMPEZAR NO EXISTE, Y LA QUE ESTA ARRIBA ES ?>
PODRIAN DECIRME, SI ES QUE HAY ALGUN CARACTER FUERA DE LUGAR? Y DONDE DEBE IR CADA COSA...
<?php
if($_COOKIE['usuario'] and $_COOKIE['contrasena']) {
header('Location: index.php');
require('config.php');
$autor = $_POST["autor"];
$titulo = $_POST["titulo"];
$mensaje = $_POST["mensaje"];
Código PHP:<?php
if($_COOKIE['usuario'] and $_COOKIE['contrasena']) {
header('Location: index.php');
require('config.php');
$autor = $_POST["autor"];
$titulo = $_POST["titulo"];
$mensaje = $_POST["mensaje"];
$ident = $_POST["identificador"];
// Validar sitio cuevana
if(empty($autor)) $autor = "Anónimo";
if(empty($titulo)) $titulo = "Sin título";
//Evitamos que el usuario ingrese HTML
$mensaje = htmlentities($mensaje);
// Subimos la imagen
$uploadpath = 'imagenes/';
$filepath = $uploadpath . basename($_FILES['image_field']['name']); //$_FILES['image_field'] viene del form, acordate de poner multipart.
if(move_uploaded_file($_FILES['image_field']['tmp_name'], $imagen)) {
// Se copian datos en la base cuevana
$sql = "INSERT INTO cuevana (autor, titulo, mensaje, identificador, imagen, fecha, ult_respuesta) ";
$sql.= "VALUES ('$autor','$titulo','$mensaje','$imagen','$ident',NOW(),NOW( ))";
$rs = mysql_query($sql, $con) or die("Error al grabar un mensaje: ".mysql_error);
$ult_id = mysql_insert_id($con);
}else{
echo "El archivo no se pudo subir, la película no se guardó correctamente.";
}
// Si hay comentarios a la pelicula
if(!empty($ident))
{
$sql = "UPDATE cuevana SET respuestas=respuestas+1, ult_respuesta=NOW()";
$sql.= " WHERE id = '$ident'";
$rs = mysql_query($sql, $con);
Header("Location: pelicula.php?id=$ident#$ult_id");
exit();
}
?>
PHP como todos los lenguajes de programacion todo lo que abres lo tienes que cerrar...
al colocar
Al final del documento debes añadir otra llave ("}").Código PHP:if($_COOKIE['usuario'] and $_COOKIE['contrasena']){
recuerda que las sentencias IF funcionan de esta manera:
Por ello es útil indentar el texto, para que no se te olvide donde abriste las llaves o los paréntesis ademas el codigo se puede leer y puede ser modificado mas fácilmente.Código PHP:if(condicion){
//realiza esta accion
}
Utiliza editores de texto, como:
- Intype para Windows
- Gedit (con sus plugins) para Linux
- Coda para Mac
Te ayudaran mucho a conseguir problemas como este, que son muy fáciles de solucionar.
En fin el código arreglado quedaria asi:
Código PHP:<?php
if($_COOKIE['usuario'] and $_COOKIE['contrasena']) {
header('Location: index.php');
require('config.php');
$autor = $_POST["autor"];
$titulo = $_POST["titulo"];
$mensaje = $_POST["mensaje"];
$ident = $_POST["identificador"];
// Validar sitio cuevana
if(empty($autor)) $autor = "Anónimo";
if(empty($titulo)) $titulo = "Sin título";
//Evitamos que el usuario ingrese HTML
$mensaje = htmlentities($mensaje);
// Subimos la imagen
$uploadpath = 'imagenes/';
$filepath = $uploadpath.basename($_FILES['image_field']['name']); // $_FILES['image_field'] viene del form, acordate de poner multipart.
if(move_uploaded_file($_FILES['image_field']['tmp_name'], $imagen)) {
// Se copian datos en la base cuevana
$sql = "INSERT INTO cuevana (autor, titulo, mensaje, identificador, imagen, fecha, ult_respuesta) ";
$sql.= "VALUES ('$autor','$titulo','$mensaje','$imagen','$ident',NOW(),NOW( ))";
$rs = mysql_query($sql, $con) or die("Error al grabar un mensaje: ".mysql_error);
$ult_id = mysql_insert_id($con);
}else{
echo "El archivo no se pudo subir, la película no se guardó correctamente.";
}
// Si hay comentarios a la pelicula
if(!empty($ident)){
$sql = "UPDATE cuevana SET respuestas=respuestas+1, ult_respuesta=NOW()";
$sql.= " WHERE id = '$ident'";
$rs = mysql_query($sql, $con);
Header("Location: pelicula.php?id=$ident#$ult_id");
exit();
}
}
?>
-----------------------------------------------------------------------------
Mijail Rondon - Programador Freelance
Muchas gracias Mijail. Sabes como puedo hacer para agregar mas de una foto... Yo se que se usa el codigo [1] [2] para cada diferente imagen, pero en ese codigo estoy intentando y no se si lo estare haciendo bien.
Saludos y gracias
MIJAIL, me surgio un problema. Puse un buscador, pero me funciona en GOOGLE CHROME, pero no me funciona en FIREFOX por ejemplo.
El error es este:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in
y los errores que dice supuestamente están aca:
$result = mysql_query($sql, $con);
$total = mysql_num_rows($result);
if ($row = mysql_fetch_array($result)){
No tiene nada que ver con el explorador, pega el código completo.
Puede tratarse de cache, elimina el cache de tus exploradores.
-----------------------------------------------------------------------------
Mijail Rondon - Programador Freelance
Ya lo solucione Mijail. Muchisimas gracias,. El problema estaba en que estaba queriendo llamar a la base de datos desde el config.php dentro de mi buscador.
Lo solucione quitandoselo y llamando a la base de datos directamente del archivo sin el config.php
Saludos y muchas gracias
Sigo con una pregunta... Ya logre cargar la imagen en una carpeta de nombre UPLOADS, y la URL en mi base de datos,. Aunque quisiera cargar mas de una imagen y se que se hace poniendo [1] [2] [3] [4] aunque en ese código no se como ingresarlo.
Muchísimas gracias
Hola cabu, mijail... Tengo un problema...
Estoy filtrando en el index, los diferentes resultados de las peliculas que voy subiendo. El problema es que quisiera por ejemplo ordenar las ultimas peliculas por estreno. Pero no me filtra correctamente todas las que son estrenos, y me las junta con todo lo que encuentra en el campo clase.
Para que se entienda mejor. Hice un campo llamado CLASE en el cual se guarda en la base de datos si es estreno o pasadas el problema es que cuando llamo a mi PHP para que me muestre solamente las estreno, me deja arriba las de estreno, pero abajo tambien se ven las pasadas...
Mi idea es que solo me muestre las que son estrenos... Como puedo filtrar la palabra estreno dentro del campo CLASE en mi PHP
Este es el codigo:
Código PHP:$tabla = mysql_query("SELECT * FROM cuevana ORDER BY clase DESC LIMIT 10");
umm simplemente hazlo asi:
Código PHP:$tabla= mysql_query("SELECT * FROM `cuevana` WHERE `clase` = 'estreno' ORDER BY 'id' DESC LIMIT 10;");
-----------------------------------------------------------------------------
Mijail Rondon - Programador Freelance
Marcadores