Ciao a tutti ragazzi!
Sto gestendo la sistemazione di persone all'interno di tende per dormire la notte.
Ogni tenda ha un numero diverso di posti.
Il problema è che devo recuperare una stringa dal mysql contenente un numero definito di codice fiscali, ogni codice è separato dall'altro tramite il carattere "-".
Il numero definito di codici fiscali (posti) è a sua volta un numero recuperato dal database.
Il mio problema, è che il codice che ho scritto non effettua la modifica della stringa.
Dalla stringa recuperata controllo se il codice fiscale è già inserito. In caso negativo lo inserisco, solo se nella tenda c'è ancora posto, altrimenti lo lascio in sospeso.
Vi posto il codice, se avete anche altre proposte, sono ben accette:
Codice PHP:
//----------------------------------------------------------------------------
// controllo le notti di partecipazione
$rs = mysql_query("SELECT * FROM $nome_tabella WHERE codice_fiscale = '$piace_da_inserire' ");
$nr = mysql_num_rows($rs);
if ($nr != 0)
{
for($x = 0; $x < $nr; $x++)
{
$row = mysql_fetch_assoc($rs);
$notte1 = $row['pernottamento_giorno_1'];
if ($notte1 == "Si"){
//seleziono la riga della tenda per la prima notte dalla tabella e controllo se il
//codifce fiscale e stato gia inserito, poi lo inserisco
$sql = "SELECT * FROM att_$nome_tabella WHERE id='$attendamento' ";
$result = mysql_query($sql);
$array = mysql_fetch_array($result);
$stringa = $array['presenze_notte_1'];
//conto i posti disponibili nella tenda
$funz4=explode("-",$stringa,$posti_max);
$conto=count($funz4);//conto gli elementi array
if ($conto >= $posti_max){ echo 'Alcuni volontari non sono stati inseriti per mancanza di posto nella tenda selezionata';
}else{ // se invece c e posto faccio il calcolo
$posti_liberi = $posti_max-$conto;
for($a=1;$a<=$posti_liberi;$a++){//ciclo for per aprire l'array
$controllo = strstr($stringa, $piace_da_inserire);
if( $controllo === false ) {
$nuova_stringa = $piace_da_inserire.'-'.$stringa;
mysql_query("UPDATE att_$nome_tabella SET presenze_notte_1='$nuova_stringa' WHERE id='$attendamento' ") OR DIE(mysql_error());
}
}
}
}
}
} else {
echo "Errore";
}