Secondo me il tuo problema è qui
if($venduto == ' ')

Tu stai chiedendo se in $venduto c'è il carattere spazio, ma se il campo è vuoto non c'è neanche quello (a meno che tu abbia specificato il carattere spazio come default per il campo "venduto" quando hai creato la tabella, lo hai fatto? Altrimenti ci sarà il campo vuoto, non lo spazio), quindi in realtà il tuo sistema si aspetta 3 situazioni diverse, una col campo vuoto, una con il carattere spazio e una col carattere V.

Uniforma tutto, invece del carattere spazio, metti il campo vuoto e il controllo fallo sul campo vuoto.

if($venduto == '')
e
SET VENDUTO = ''

In caso tu ce l'abbia anche in qualche insert, imposta anche lì '' per il campo venduto, non mettrci ' '.