Ho una tabella con delle ricette, ogni ricetta è caratterizzata da un ingrediente, ad esempio nel "risotto con i funghi" l'ingrediente principale saranno i funghi.
Il problema è che il database di cui dispongo è composto in questo modo:
codice:
Id | Nome | Ingrediente |
--------------------------------
1 | Pizza | Mozzarella |
2 | Peperonata | Peperoni |
Io vorrei creare una seconda tabella con gli ingredienti e sostituire nella tabella ricette l'id dell'ingrediente al posto di tutto il nome.
Ho scritto un piccolo script in php per trasferire i file, solo che non capisco perchè non funziona.....
Codice PHP:
//Popolamento tabella ingredienti
$cerca_ricette = mysql_query("SELECT * FROM ricette");
$numero_ricette = mysql_num_rows($cerca_ricette);
for($b=0;$b<=$numero_ricette;$b++) {
$ingrediente = mysql_result($cerca_ricette,$b,'Ing_Principale');
$id_ricetta = mysql_result($cerca_ricette,$b,'id');
$cerca_ing = mysql_query("SELECT id,nome FROM ingredienti WHERE nome = '$ingrediente'");
if (mysql_num_rows($cerca_ing) == 0) {
$inserisci_ing = mysql_query("INSERT INTO `ingredienti` ( `id` , `nome` )VALUES ('', '$ingrediente')"); // Inserisci ingrediente
$aggiorna_ricetta = mysql_query("UPDATE `ricette` SET `Ing_Principale2` = '" .mysql_insert_id() ."' WHERE `ricette`.`id` = $id_ricetta;"); // Aggiorna campo ricetta
} else {
$aggiorna_ricetta = mysql_query("UPDATE `ricette` SET `Ing_Principale2` = '" .mysql_result($cerca_ing,0,'id') ."' WHERE `ricette`.`id` = $id_ricetta;"); // Aggiorna campo ricetta
}
}
Lo script ora inserisce gli ingredienti, ma anche se trova un record con lo stesso ingrediente nella tabella scrive un nuovo record.... e non aggiorna la tabella ricette (per ora ho creato un nuovo campo 'Ing_Principale2' per non perdere i dati...)