nessun campo UNIQUE...
ho provato a rinominare, riparare, analizzare e ottimizzare la tabella e a volte mi da degli errori...come un out of memory, o got error 127..., ma sul web non ho trovato come risolverlo! leggo solo che c'è da fare un REPAIR TABLE, ma il problema è risolto solo per un inserimento, poi ritorna l'errore...

Queste sono le tabelel su cui scrive il componente VirtueMart al momento di registrare un ordine:

CREATE TABLE `jos_vm_order_history` (
`order_status_history_id` int(11) NOT NULL auto_increment,
`order_id` int(11) NOT NULL default '0',
`order_status_code` char(1) NOT NULL default '0',
`date_added` datetime NOT NULL default '0000-00-00 00:00:00',
`customer_notified` int(1) default '0',
`comments` text,
PRIMARY KEY (`order_status_history_id`)
) ENGINE=MyISAM AUTO_INCREMENT=191 DEFAULT CHARSET=latin1 COMMENT='Stores all actions and changes that occur to an order' AUTO_INCREMENT=191 ;

CREATE TABLE `jos_vm_order_item` (
`order_item_id` int(11) NOT NULL auto_increment,
`order_id` int(11) default NULL,
`user_info_id` varchar(32) default NULL,
`vendor_id` int(11) default NULL,
`product_id` int(11) default NULL,
`order_item_sku` varchar(64) NOT NULL default '',
`order_item_name` varchar(64) NOT NULL default '',
`product_quantity` int(11) default NULL,
`product_item_price` decimal(15,5) default NULL,
`product_final_price` decimal(12,2) NOT NULL default '0.00',
`order_item_currency` varchar(16) default NULL,
`order_status` char(1) default NULL,
`cdate` int(11) default NULL,
`mdate` int(11) default NULL,
`product_attribute` text,
PRIMARY KEY (`order_item_id`),
KEY `idx_order_item_order_id` (`order_id`),
KEY `idx_order_item_user_info_id` (`user_info_id`),
KEY `idx_order_item_vendor_id` (`vendor_id`)
) ENGINE=MyISAM AUTO_INCREMENT=180 DEFAULT CHARSET=latin1 COMMENT='Stores all items (products) which are part of an order' AUTO_INCREMENT=180 ;

CREATE TABLE `jos_vm_order_payment` (
`order_id` int(11) NOT NULL default '0',
`payment_method_id` int(11) default NULL,
`order_payment_code` varchar(30) NOT NULL default '',
`order_payment_number` blob,
`order_payment_expire` int(11) default NULL,
`order_payment_name` varchar(255) default NULL,
`order_payment_log` text,
`order_payment_trans_id` text NOT NULL,
KEY `idx_order_payment_order_id` (`order_id`),
KEY `idx_order_payment_method_id` (`payment_method_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='The payment method that was chosen for a specific order';

CREATE TABLE `jos_vm_order_user_info` (
`order_info_id` int(11) NOT NULL auto_increment,
`order_id` int(11) NOT NULL default '0',
`user_id` int(11) NOT NULL default '0',
`address_type` char(2) default NULL,
`address_type_name` varchar(32) default NULL,
`company` varchar(64) default NULL,
`title` varchar(32) default NULL,
`last_name` varchar(32) default NULL,
`first_name` varchar(32) default NULL,
`middle_name` varchar(32) default NULL,
`phone_1` varchar(32) default NULL,
`phone_2` varchar(32) default NULL,
`fax` varchar(32) default NULL,
`address_1` varchar(64) NOT NULL default '',
`address_2` varchar(64) default NULL,
`city` varchar(32) NOT NULL default '',
`state` varchar(32) NOT NULL default '',
`country` varchar(32) NOT NULL default 'US',
`zip` varchar(32) NOT NULL default '',
`user_email` varchar(255) default NULL,
`extra_field_1` varchar(255) default NULL,
`extra_field_2` varchar(255) default NULL,
`extra_field_3` varchar(255) default NULL,
`extra_field_4` char(1) default NULL,
`extra_field_5` char(1) default NULL,
`bank_account_nr` varchar(32) NOT NULL default '',
`bank_name` varchar(32) NOT NULL default '',
`bank_sort_code` varchar(16) NOT NULL default '',
`bank_iban` varchar(64) NOT NULL default '',
`bank_account_holder` varchar(48) NOT NULL default '',
`bank_account_type` enum('Checking','Business Checking','Savings') NOT NULL default 'Checking',
PRIMARY KEY (`order_info_id`),
KEY `idx_order_info_order_id` (`order_id`)
) ENGINE=MyISAM AUTO_INCREMENT=148 DEFAULT CHARSET=latin1 MAX_ROWS=65536 AVG_ROW_LENGTH=1048576 COMMENT='Stores the BillTo and ShipTo Information at order time' AUTO_INCREMENT=148 ;

CREATE TABLE `jos_vm_orders` (
`order_id` int(11) NOT NULL auto_increment,
`user_id` int(11) NOT NULL default '0',
`vendor_id` int(11) NOT NULL default '0',
`order_number` varchar(32) default NULL,
`user_info_id` varchar(32) default NULL,
`order_total` decimal(15,2) NOT NULL default '0.00',
`order_subtotal` decimal(15,5) default NULL,
`order_tax` decimal(10,2) default NULL,
`order_tax_details` text NOT NULL,
`order_shipping` decimal(10,2) default NULL,
`order_shipping_tax` decimal(10,2) default NULL,
`coupon_discount` decimal(12,2) NOT NULL default '0.00',
`order_discount` decimal(12,2) NOT NULL default '0.00',
`order_currency` varchar(16) default NULL,
`order_status` char(1) default NULL,
`cdate` int(11) default NULL,
`mdate` int(11) default NULL,
`ship_method_id` varchar(255) default NULL,
`customer_note` text NOT NULL,
`ip_address` varchar(15) NOT NULL default '',
PRIMARY KEY (`order_id`),
KEY `idx_orders_user_id` (`user_id`),
KEY `idx_orders_vendor_id` (`vendor_id`),
KEY `idx_orders_order_number` (`order_number`),
KEY `idx_orders_user_info_id` (`user_info_id`),
KEY `idx_orders_ship_method_id` (`ship_method_id`)
) ENGINE=MyISAM AUTO_INCREMENT=7159 DEFAULT CHARSET=latin1 COMMENT='Used to store all orders' AUTO_INCREMENT=7159 ;


Le strutture sno molto simili tra loro però "jos_vm_order_user_info" mi da questo fastidioso errore.
E queste sono le query eseguite:

Codice PHP:
        $q "INSERT INTO #__{vm}_orders \n";
        
$q .= "(user_id, vendor_id, order_number, user_info_id, ship_method_id, \n";
        
$q .= "order_total, order_subtotal, order_tax, order_tax_details, order_shipping, \n";
        
$q .= "order_shipping_tax, order_discount, coupon_discount,order_currency, order_status, cdate, \n";
        
$q .= "mdate,customer_note,ip_address) \n";
        
$q .= "VALUES (";
        
$q .= "'" $auth["user_id"] . "', ";
        
$q .= $ps_vendor_id ", ";
        
$q .= "'" $order_number "', '";
        
$q .= $d["ship_to_info_id"] . "', '";

        if (!empty(
$d["shipping_rate_id"])) {
            
$q .= urldecode($d["shipping_rate_id"]) . "', '";
        }
        else {
            
$q .= "', '";
        }
        
$q .= $order_total "', '";
        
$q .= $order_subtotal "', '";
        
$q .= $order_tax "', '";
        
$q .= serialize($order_tax_details). "', '";
        
$q .= $order_shipping "', '";
        
$q .= $order_shipping_tax "', '";
        
$q .= $payment_discount "', '";
        
$q .= $coupon_discount "', '";
        
$q .= $_SESSION['vendor_currency']."', "/* Currency is at the product level - line item */
        
$q .= "'P', '";
        
$q .= $timestamp "', '";
        
$q .= $timestamp"', '";
        
$q .= $db->getEscapedhtmlspecialchars(strip_tags($d['customer_note']))) . "', '";
        if (!empty(
$_SERVER['REMOTE_ADDR'])) {
            
$q .= $_SERVER['REMOTE_ADDR'] . "') ";
        }
        else {
            
$q .= "unknown') ";
        }



        
$q "INSERT INTO #__{vm}_order_payment ";
        
$q .= "(order_id, order_payment_code, payment_method_id, order_payment_number, ";
        
$q .= "order_payment_expire, order_payment_log, order_payment_name, order_payment_trans_id) ";
        
$q .= "VALUES ('$order_id', ";
        
$q .= "'" $d["order_payment_code"] . "', ";
        
$q .= "'" $d["payment_method_id"] . "', ";
        
$q .= "ENCODE(\"$payment_number\",\"" ENCODE_KEY "\"), ";
        
$q .= "'" . @$_SESSION["ccdata"]["order_payment_expire"] . "',";
        
$q .= "'" . @$d["order_payment_log"] . "',";
        
$q .= "'" . @$_SESSION["ccdata"]["order_payment_name"] . "',";
        
$q .= "'" $vmInputFilter->safeSQL( @$d["order_payment_trans_id"] ). "'";
        
$q .= ")";


        
$q "INSERT INTO #__{vm}_order_history ";
        
$q .= "(order_id,order_status_code,date_added,customer_notified,comments) VALUES (";
        
$q .= "'$order_id', 'P', '" $mysqlDatetime "', 1, '')";



        
$q "INSERT INTO `#__{vm}_order_user_info` ";
        
$q .= "SELECT '', '$order_id', '".$auth['user_id']."', address_type, address_type_name, company, title, last_name, first_name, middle_name, phone_1, phone_2, fax, address_1, address_2, city, state, country, zip, user_email, extra_field_1, extra_field_2, extra_field_3, extra_field_4, extra_field_5,bank_account_nr,bank_name,bank_sort_code,bank_iban,bank_account_holder,bank_account_type FROM #__{vm}_user_info WHERE user_id='".$auth['user_id']."' AND address_type='BT'"