Allora ho il seguente problema: in un database ho una tabella che contiene le recensioni i alcuni dischi. Tra i vari campi sono di mio interesse il campo che riguarda il numero delle tracce contenute nel CD e la tracklist del CD (Titolo e voto). Questi campi sono rispettivamente : tracce, tbt.
Tracce è di tipo INT, mentre "tbt" è di tipo TEXT e contiene titolo e voto nel seguente formato :
$tbt = "titolo1|voto1|titolo2|voto2|..."
tante volte quante sono le tracce contenute in $tracce.
Se io voglio modificare titolo o voto di una traccia di un CD presente in faccio un form tipo :
if ($action == "")
{
$querymembro = mysql_query("SELECT * from recensioni WHERE id='$id_membro'");
[...]
$tracce = mysql_Result($querymembro,0,"tracce");
$tbt = mysql_Result($querymembro,0,"tbt");
$myArr = explode("|",$tbt);
for ( $i=0 ; $i < (count($myArr)-1) ; $i=$i+2) {
$traccia[$i] = $myArr[$i];
$voto[$i] = $myArr[$i+1];
}
}
//Se è stato premuto il bottone "Modifica"
if ($action == "check")
{
for ($i=0; $i <= ($traccem) ; $i++) {
$tbt .= $traccia[$i]."|".$voto[$i]."|" ;
}
$query = mysql_query("UPDATE recensioni SET tracce='$tracce', tbt='$tbt' WHERE id='$id_membro'") or die("Errore ".mysql_errno()." : ".mysql_error());
Il problema è che l'update mi taglia le ultime due tracce, ossia: se nel DB $tracce = 5 e quindi $tbt="titolo1|voto1|2|2|3|3|4|4|titolo5|voto5", una fatto l'update mi ritrovo con $tracce= 5 e $tbt="titolo1|voto1|2|2|3|3".
Credo che il problema sia nel ciclo for
for ($i=0; $i <= ($traccem) ; $i++) {
$tbt .= $traccia[$i]."|".$voto[$i]."|" ; }
Sperando di essere stato abbastanza chiaro nella spiegazione attendo un vostro aiuto. Sono quasi disperato.
A presto
Riccardone