Error al subir imagen o ruta de imagen a base de datos
Me da el siguiente error: "Error al insertar los datos en la tabla."
El objetivo del proyecto de publicar o anunciar discos musicales con un formulario html de 8 datos (una de ellas imagen), se suba a la base de datos. La imagen se sube una carpeta perfectamente, pero la ruta donde quesa esa imagen alojada no se guarda correctamente en la base de datos. ¿En la base de datos hay que crear una variable para "tmp_name" o algo así?
En la base de datos no he creado "tmp_name", no se si debo crearlo para nombre temporal.
¿Alguien podría echar un vistazo a ver si lo soluciono, que llevo ya días y días... sin solución xD
Código PHP:
¡Un saludo y gracias!
Editado
El objetivo del proyecto de publicar o anunciar discos musicales con un formulario html de 8 datos (una de ellas imagen), se suba a la base de datos. La imagen se sube una carpeta perfectamente, pero la ruta donde quesa esa imagen alojada no se guarda correctamente en la base de datos. ¿En la base de datos hay que crear una variable para "tmp_name" o algo así?
En la base de datos no he creado "tmp_name", no se si debo crearlo para nombre temporal.
¿Alguien podría echar un vistazo a ver si lo soluciono, que llevo ya días y días... sin solución xD
Código PHP:
//CONEXION// <?php $conexion = mysql_connect("localhost", "jazzgune","XXXXXX"); if(!isset($conexion)){ echo "Error al conectar a la base de datos." . mysql_error(); mysql_error(); exit(); } //SELECCION DE BASE DE DATOS// $seleccionar_bd = mysql_select_db("jazzgune"); if(!isset($seleccionar_bd)){ echo "Error al seleccionar la base de datos." . mysql_error(); exit(); } //DE FORMULARIO A VARIABLE// $titulodisco = $_POST["titulodisco"]; $grupoartista = $_POST["grupoartista"]; $anopublicacion = $_POST["anopublicacion"]; $sello = $_POST["sello"]; $titulostemas = $_POST["titulostemas"]; $musicosdisco = $_POST["musicosdisco"]; $comentariodisco = $_POST["comentariodisco"]; $fotodisco = $_FILES["imagendisco"]['tmp_name']; ///// ¿EL tmp_name es correcto? No está creado en la base de datos... ///// //INSERTAR DE VARIABLE A TABLA DE BASE DE DATOS// $carpeta = 'imagenesdiscos/'; $destino = $carpeta.$_FILES['imagendisco']['name']; if(copy($_FILES['imagendisco']['tmp_name'],$destino)){ $nombreImagen=$_FILES['imagendisco']['tmp_name']; } //DE 8 ELEMENTOS A 8 ELEMENTOS...// $consulta = mysql_query("INSERT INTO discos(titulo,artista,ano,sello,temas, artistas,comentario,fotodisco) VALUES ('$titulodisco','$grupoartista','$anopublicacion','$sello','$titulostemas','$musicosdisco','$comentariodisco','$nombreImagen')"); if($consulta){ echo "Error al insertar los datos en la tabla. ". mysql_error(); } else { echo "Correcto."; } ?>
¡Un saludo y gracias!
Editado
0
Puntos
Puntos
1298
Visitas
Visitas
8
Resp
Resp
Por Iaaki hace 92 meses
Principiante
Respuesta #1
hola, en la base de datos tienes que guardar el nombre de la imagen, solo tienes que cambiar esto:
Salu2
$nombreImagen=$_FILES['imagendisco']['tmp_name'];por esto:
$nombreImagen=$_FILES['imagendisco']['name'];despues para mostrar es imagen la cargas con la ruta de la carpeta mas el nombre guardado en la base de datos ;)
Salu2
0
Puntos
Puntos
Por alber hace 92 meses
Administrador
Respuesta #2
Gracias, muy amable Alber.
¿Cómo sería para publicarlo?
<?php
include("conexion.php");
$consulta = mysql_query("SELECT * FROM discos");
while ($registro = mysql_fetch_array ($consulta)) {
echo "<img id='fotodeldisco' src='imagenesdiscos/scatainaraortega.jpg'>";
}
?>
¡Un saludo!
¿Cómo sería para publicarlo?
<?php
include("conexion.php");
$consulta = mysql_query("SELECT * FROM discos");
while ($registro = mysql_fetch_array ($consulta)) {
echo "<img id='fotodeldisco' src='imagenesdiscos/scatainaraortega.jpg'>";
}
?>
¡Un saludo!
0
Puntos
Puntos
Por Iaaki hace 92 meses
Principiante
Respuesta #3
Perdona quería poner:
<?php
include("conexion.php");
$consulta = mysql_query("SELECT * FROM discos");
while ($registro = mysql_fetch_array ($consulta)) {
echo "<img src=imagenesdiscos/'.<?php echo $registro["fotodisco"] ?>.' />";
}
?>
Pero un php dentro de otro etc. no creo que sea correcto. ¿Cómo sería para publicar imagen si tengo el nombre del archivo guardado en "fotodisco" de la base de datos y está en la carpeta "imagenesdiscos"?
¡Saludos!
<?php
include("conexion.php");
$consulta = mysql_query("SELECT * FROM discos");
while ($registro = mysql_fetch_array ($consulta)) {
echo "<img src=imagenesdiscos/'.<?php echo $registro["fotodisco"] ?>.' />";
}
?>
Pero un php dentro de otro etc. no creo que sea correcto. ¿Cómo sería para publicar imagen si tengo el nombre del archivo guardado en "fotodisco" de la base de datos y está en la carpeta "imagenesdiscos"?
¡Saludos!
0
Puntos
Puntos
Por Iaaki hace 92 meses
Principiante
Respuesta #4
la verdad es que no se como tienes montado el proyecto pero prueba así a ver que tal:
<?php include("conexion.php"); $consulta = mysql_query("SELECT * FROM discos"); while ($registro = mysql_fetch_array ($consulta)) { ?> <img src="carpeta/<?php echo $registro["fotodisco"] ?>"> <?php } ?>
0
Puntos
Puntos
Por alber hace 92 meses
Administrador
Respuesta #5
¿Sería así? ¿No debe tener un "echo"?
while ($registro = mysql_fetch_array ($consulta)) {
echo "<div id='areaarticulodisco'>";
echo "<div id='areafotodisco'>";
<img src="imagenesdiscos/<?php echo $registro["fotodisco"] ?>">
echo "</div>";
saludos.
while ($registro = mysql_fetch_array ($consulta)) {
echo "<div id='areaarticulodisco'>";
echo "<div id='areafotodisco'>";
<img src="imagenesdiscos/<?php echo $registro["fotodisco"] ?>">
echo "</div>";
saludos.
0
Puntos
Puntos
Por Iaaki hace 92 meses
Principiante
Respuesta #6
y para que meter tantos echos? separa el php del html y listo. en realidad lo que debes tener es un código lo mas limpio posible en mi opinión:
salu2
<?php include("conexion.php"); $consulta = mysql_query("SELECT * FROM discos"); while ($registro = mysql_fetch_array ($consulta)) { ?> <div id='areaarticulodisco'> <div id='areafotodisco'> <img src="imagenesdiscos/<?php echo $registro["fotodisco"] ?>"> </div> </div> <?php } ?>solo es cuestión de que lo pruebes y compares ;)
salu2
0
Puntos
Puntos
Por alber hace 92 meses
Administrador
Respuesta #7
Me da el siguiente error:
Parse error: syntax error, unexpected '<' in /Applications/XAMPP/xamppfiles/htdocs/jazzgune/discos.php on line 31
Parse error: syntax error, unexpected '<' in /Applications/XAMPP/xamppfiles/htdocs/jazzgune/discos.php on line 31
0
Puntos
Puntos
Por Iaaki hace 92 meses
Principiante
Respuesta #8
claro te eh puesto el ejemplo basándome en la consulta que tenias y el problema lo sigues teniendo a la hora de consultar los datos eso es otro tema, acabo de testear tu código y me da el mismo error.
soluciona el tema de la consulta y despues usa el while como te eh comentado ;)
soluciona el tema de la consulta y despues usa el while como te eh comentado ;)
0
Puntos
Puntos
Por alber hace 92 meses
Administrador