Sicuramente sbaglio qualcosa di basilare, il ragionamento fila, solo che non funziona.
allora
ho una tabella
con 7 colonne
id
valori_raggruppati
valore_scomposto_0
valore_scomposto_1
valore_scomposto_2
valore_scomposto_3
valore_scomposto_4
valore_scomposto_5
nella colonna id c'è l'id (naturalmente)
nella colonna valori_raggruppati, ci sono elencati dei prodotti messi tutti insieme
es: patate - limoni - carciofi - barbabietole
le altre colonne sono vuote
io voglio suddividere tutti gli articolo presenti nel campo valori_raggruppati, nei campi valore_scomposto_X
quindi:
valore_scomposto_0 conterra: patate
valore_scomposto_1 conterra: limoni
valore_scomposto_2 conterra: carciofi
valore_scomposto_3 conterra: barbabietole
valore_scomposto_4 sarà vuoto
valore_scomposto_5 sara vuoto
premetto che i record sono tantissimi, quindi si dovrà fare il tutto in automatico.
cosa ho pensato?
allora, posto il codice:
Codice PHP:
/*##### COLLEGAMENTO AL DATABASE ##### */
$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");
/* ##### FINE - COLLEGAMENTO AL DATABASE ##### */
// faccio la prima query per estrarre tutti i record
$query = "SELECT * FROM nome_tabella";
$result = mysql_query($query, $db)
or die(mysql_error());
//creo il ciclo
while ($row = mysql_fetch_array($result)) {
// sudddivido quello che c'è nel campo 'valori_raggruppati' in una query
$valore_scomposto = explode ( " - ", $row['valori_raggruppati'], 11);
print_r ($valore_scomposto);
// e fin qui funziona, mi stampa per ogni riga la query $valore_scomposto con i valori suddivisi per chiave.
// il bello viene ora, devo inserire i valori recuperati con l'EXPLODE nei rispettivi campi.
// quindi, restando sempre nel ciclo provo a modificare i campi
$query1 = "UPDATE nome_tabella SET
`valore_scomposto_0` = '$valore_scomposto[0]',
`valore_scomposto_1` = '$valore_scomposto[1]',
`valore_scomposto_2` = '$valore_scomposto[2]',
`valore_scomposto_3` = '$valore_scomposto[3]',
`valore_scomposto_4` = '$valore_scomposto[4]',
`valore_scomposto_5` = '$valore_scomposto[5]',
WHERE `id` = $row[id] LIMIT 1";
if (mysql_query($query1, $db))
echo "La scheda è stata inserita correttamente
";
else
echo "Errore durante l' inserimento
";
}
mysql_close($db);
NIENTE DA FARE - NON VA
Sinceramente non so se sto facendo un insulto a mysql o sbaglio l'impostazione del tutto.
forse non si può neanche fare con php, ma mi sembra strano.
Sicuramente si può fare con le subquery, ma ho provato, riprovato e poi comincia la nebbia.
avete qualche imput?
ringrazio sempre
ciao
Giuseppe