Este es mi formulario:
Código HTML:
<form method="post" action="insertar_bandas.php" enctype="multipart/form-data"> <h2>Registro de bandas:</h2><hr> <p> <h3>Sobre la banda</h3> </p> Nombre: <label> <input name="txtname" type="text" class="input_insertar"/> </label> <br /> Año de inicio : <label> <input name="txtano" type="text" class="input_insertar"/> </label> <br /> Género: <label> <input name="txtgen" type="text" class="input_insertar" /> </label> <br /> Logo: <label> <input name="ima" type="file" class="input_insertar" id="ima" style="-moz-border-radius: 4px;" /> </label> <br /> Breve historia: <label> <textarea name="txtarea" cols="45" rows="5" class="textarea_insertar" id="textarea" maxlenght=255></textarea> </label> <br /> <hr /> Cancion nro 1: <input name="can[]" type="file" class="input_insertar" id="can" style="-moz-border-radius: 4px;" /><br /> Letra de canción: <label> <input name="titulo[]" type="text" class="input_insertar"/> </label> <br /> Cancion nro 2: <input name="can[]" type="file" class="input_insertar" id="can" style="-moz-border-radius: 4px;" /><br /> Letra de canción: <label> <input name="titulo[]" type="text" class="input_insertar"/> </label> <br /> Cancion nro 3: <input name="can[]" type="file" class="input_insertar" id="can" style="-moz-border-radius: 4px;" /><br /> Letra de canción: <label> <input name="titulo[]" type="text" class="input_insertar"/> </label> <br /> <hr /> <h3>Nombre de integrantes:</h3> <p>*Máximo 3 integrantes</p> <p>1° <label> <input type="text" name="txt1"class="input_insertar" /> </label> <br /> 2° <label> <input type="text" name="txt2" class="input_insertar" /> </label> <br /> 3° <label> <input type="text" name="txt3" class="input_insertar" /> </label> <br /> 4° <label> <input type="text" name="txt4" class="input_insertar" /> </label> <br /> 5° <label> <input type="text" name="txt5" class="input_insertar" /> </label> </p> <p><hr /> <br /> <input name="insetar" type="submit" class="btn_registrar_cancelar" value="Registrar banda" /> <input name="cancelar" type="reset" class="btn_registrar_cancelar" value="Cancelar registro" /> <br> </p> </form>
Esta es la parte del código:
Código PHP:
<?php
//Las variables de los file field
$mp3=$_FILES['can']['name'];
$temporalx=$_POST['can']['temp'];
$tamanox=$_FILES['can']['size'];
$tipox=$_FILES['can']['type'];
//Titulo de cada canción
$title=$_POST['titulo'];
//for para subir cada canción con su propio título
for($i = 0; $i<count($fotox); $i++) {
copy($temporalx,'../canciones/'.$mp3);
$sqlserv=("INSERT INTO mp3 VALUES (NULL,'$title[$i]','$mp3[$i]','$foto',(SELECT MAX(idbanda) from bandas))");
// exit ("<h2>$sqlserv</h2>");
mysql_query($sqlserv) or exit(mysql_error());
?><script language="javascript">
alert("Registrado satisfactoriamente")
location.href="../librerias/registrar_bandas.php";
</script>
<?php }
copy() expects parameter 1 to be string, array given in J:\xampplite\htdocs\ATAQUEALIMA\librerias\insertar _bandas.php on line 78
¿Que está mal en mi código? Espero puedan ayudarme. Salud.
Editado:
He intentado hacerlo de la siguiente forma, con dos foreach, y me registras las canciones, ahora el problema es que se registra por 2 la ruta de cada canción:
Código PHP:
<?php
foreach ($_FILES['can']['error'] as $key => $error) {
foreach($title as $titulo)
{
if ($error == UPLOAD_ERR_OK) { //se ha subido bien
//Cojemos los nombres del fichero
$nombre_fichero=$_FILES['can']['name'][$key];
$nombre_temporal_que_le_ha_dado_php=$_FILES['can']['tmp_name'][$key];
//lo movemos donde queramos
move_uploaded_file($nombre_temporal_que_le_ha_dado_php,"../canciones/".$nombre_fichero);
//es aconsejable ponerle permisos
$qry2="INSERT INTO mp3 VALUES (NULL,'$titulo','$nombre_fichero','$foto',(SELECT MAX(idbanda) from bandas))";
$res=mysql_query($qry2,$conexion);
?>
<script language="javascript">
alert("Las canciones se registraron correctamente")
location.href="../librerias/registrar_bandas.php";
</script>
<?php
}
else{
echo $_FILES["can"]["name"][$key]." se subió mal";
}
}
}