Ciao a tutti, questo è il mio primo post. Passo subito al dunque.
Ho 2 tabelle nel db:
Album(id_album,titolo,numero_brani,anno)
Canzoni(id_canzone,nome_canzone,autore,durata,id_a lbum)
Tramite form chiedo di inserire un nuovo album e poi nella pagina RegistraAlbum memorizzo tutto sulla tabelle nel db e fin qui tutto ok. Sempre nella stessa pagina, dopo aver fatto la query per inserire i dati, stampo un altro form:
Quind questi 3 array(nome_canzone,autore,durata) li riprendo nella pagina RegistraCanzoni.php. In questa pagina dovrei inserire nella tabella Canzoni tanti record quante sono le canzoni dell'album. Se fossero ad esempio 5 dovrei inserire 5 record con relativo nome_canzone,autore e durata; e tutte queste canzoni essendo dello stesso album dovranno avere lo stesso id_album. Ecco il codice:
Ora il problema:tutto gira ma capita che mi crea + record di quanto servano. Es. inserisco 1 canzone ma si creano nella tabella 2 record invece che uno solo. Altro problema è che i record ke mi aggiunge contengono come valore solo quello di id_canzone xkè è autoincrement,durata ed id_album sempre 0 mentre nome_canzone e autore non vengono riempiti.
Esempio:
Nel form inserisco i dati dell'album con una canzone, mi si apre il form dove inserisco il titolo della canzone,l'autore e la durata e invio.
Nella tabella Canzoni ottengo:
id_canzone nome_canzone autore durata id_album
1 0 0
2 0 0
Gli 0 sono sotto durata ed id_album
Potete aiutarmi?scusate per la lunghezza ma era necessario spiegare tutto per bene. Grazie in anticipo
Ho 2 tabelle nel db:
Album(id_album,titolo,numero_brani,anno)
Canzoni(id_canzone,nome_canzone,autore,durata,id_a lbum)
Tramite form chiedo di inserire un nuovo album e poi nella pagina RegistraAlbum memorizzo tutto sulla tabelle nel db e fin qui tutto ok. Sempre nella stessa pagina, dopo aver fatto la query per inserire i dati, stampo un altro form:
PHP:
<form action="RegistraCanzoni.php" method="post" >
<tr>
<td>
Titoli Brani:<br />
<?
for ($i=1; $i<=$numero_brani; $i++)
echo '<br/><input type="text" size="40" name="nome_canzone[]" />';
//echo '<input type="hidden" name="i" value="' .$i . '" />';
//echo '<input type="hidden" name="titolo" value="' .$titolo . '" />';
?>
</td>
<td>
Autore:</br>
<?
for ($a=1; $a<=$numero_brani; $a++)
echo '<br/><input type="text" size="40" name="autore[]" />';
?>
</td>
<td>
Durata:</br>
<?
for ($b=1; $b<=$numero_brani; $b++)
echo '<br/><input type="text" size="40" name="durata[]" />';
?>
</td>
</tr>
<tr>
<td>
<input type="hidden" name="titolo" value="' .$titolo . '" />
<input type='submit' value='Inserisci Canzoni'>
<input type='reset' value='Annulla'>
</td>
</form>
</tr>
</html>
Quind questi 3 array(nome_canzone,autore,durata) li riprendo nella pagina RegistraCanzoni.php. In questa pagina dovrei inserire nella tabella Canzoni tanti record quante sono le canzoni dell'album. Se fossero ad esempio 5 dovrei inserire 5 record con relativo nome_canzone,autore e durata; e tutte queste canzoni essendo dello stesso album dovranno avere lo stesso id_album. Ecco il codice:
PHP:
<?php
include("config.inc.php");
//Recupero dei dati inviati dal form di registrazione dell'artista
$nomi=$_POST['nome_canzone'];
$autori=$_POST['autore'];
$durate=$_POST['durata'];
$db = mysql_connect($db_host, $db_user, $db_password) ;
if ($db == FALSE)
{
die ('Errore nella connessione. Verificare i parametri nel file config.inc.php');
}
mysql_select_db($db_name, $db)
or die ('Errore nella selezione del database. Verificare i parametri nel file config.inc.php');
//Seleiono l'id_album dell'ultimo appena iserito in modo da sapere l'id_album da assegnare a tutte queste canzoni:
$query_maxid="SELECT id_album FROM Album ORDER BY id_album DESC limit 1";
$id=mysql_query($query_maxid, $db);
for($i=0;$i<count($nomi);$i++)
{
$autori[$i] = htmlspecialchars($autori[$i], ENT_QUOTES);
$nomi[$i] = htmlspecialchars($nomi[$i], ENT_QUOTES);
$query="INSERT INTO Canzoni (nome_canzone,autore,durata,id_album)
VALUES ('$nomi[i]','$autori[i]','$durate[i]','$id')";
mysql_query($query, $db);
}
if (mysql_query($query, $db))
{
echo '<h2>Registrazione effettuata correttamente</h2><br/><br/>';
echo 'Sarai automaticamente indirizzato alla pagina principale ';
?>
<html>
<SCRIPT LANGUAGE="JavaScript">window.setTimeout("document.location='HomePageArtista.php'",5000)</SCRIPT>
</html>
<?php
}
else
{
die(mysql_error());
echo "Errore durante l'inserimento" ;
mysql_close($db);
}
?>
Esempio:
Nel form inserisco i dati dell'album con una canzone, mi si apre il form dove inserisco il titolo della canzone,l'autore e la durata e invio.
Nella tabella Canzoni ottengo:
id_canzone nome_canzone autore durata id_album
1 0 0
2 0 0
Gli 0 sono sotto durata ed id_album
Potete aiutarmi?scusate per la lunghezza ma era necessario spiegare tutto per bene. Grazie in anticipo