Ciao a tutti e grazie anticipato a chi mi darà una mano...
A scopo didattico sto creando questa funzione che estrae 3 articoli da un elenco di 10 e per ognuno ne imposta una quantità da 1 a 5 (anche sovrascrivendo se capita lo stesso articolo).
La chiave primaria è l'id che mi identifica eventualmente l'acquirente e non il prodotto, mentre "$link" è la connessione al DB, che funziona correttamente in quanto la prima query va a buon fine...
Il mio primo dubbio è se sia possibile definire dinamicamente anche il campo da aggiornare, e non solo il valore da assegnargli (così come ho provato a fare), e nel caso non fosse possibile in che altro modo posso ottenere questo risultato?
Così com'è questo codice mi popola TAB1 con l'id dell'acquirente ma non aggiorna i campi dopo le 3 estrazioni... magari è solo sbagliata la sintassi ma sono fulminato perchè nn riesco a correggere :-s

codice:
function prova($link, $id)   {
    $query1 = "INSERT INTO TAB1(ID) VALUES('$id')";
    mysql_query("$query1","$link");

    for ($i=0; $i<3; $i++)    {
        $num1 = rand(0,9);
        $num2 = rand(1,5);

        switch ($num1)    {
            case 0: $articolo = "penne"; break;
            case 1: $articolo = "matite"; break;
            case 2: $articolo = "quaderni"; break;
            //tutti gli altri casi

            $query2 = "UPDATE TAB1 SET '$articolo' = '$num2' WHERE ID = '$id'";
            mysql_query("$query2","$link");
        }
    }
}
Edit: lo schema di TAB1 è id|penne|matite|quaderni|libri|ecc