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:
//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
1270
Visitas
8
Resp
Por iaaki hace 9 años
Novice
Respuesta #1
hola, en la base de datos tienes que guardar el nombre de la imagen, solo tienes que cambiar esto:
$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
Por alber hace 9 años
Admin
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!
0
Puntos
Por iaaki hace 9 años
Novice
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!
0
Puntos
Por iaaki hace 9 años
Novice
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
Por alber hace 9 años
Admin
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.
0
Puntos
Por iaaki hace 9 años
Novice
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:
<?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
Por alber hace 9 años
Admin
Respuesta #7
Me da el siguiente error:
Parse error: syntax error, unexpected '<' in /Applications/XAMPP/xamppfiles/htdocs/jazzgune/discos.php on line 31
0
Puntos
Por iaaki hace 9 años
Novice
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 ;)
0
Puntos
Por alber hace 9 años
Admin
Para comentar Inicia sesión o Regístrate
Phpres 2025@ All rights reserved.
Utilizamos cookies para mejorar la navegación en el sitio. Más información Aceptar