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...)