Probleme ordre copie champs table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme ordre copie champs table

Re: Probleme ordre copie champs table

par lecer144 » 18 mai 2012, 01:07

Je vais potasser ça, ça devrait être dans mes cordes .. Merci beaucoup !

Re: Probleme ordre copie champs table

par Calimero » 17 mai 2012, 22:56

Bonjour,

Le problème vient du fait que tu ne précises aucun tri dans le SELECT qui alimente le processus de copie, du coup ton MySQL fait un peu ce qu'il veut :)

Il faudrait donc ajouter dans les SELECT de tes requêtes un ORDER BY correspondant au tri que tu veux mettre en place (par ID croissant, par euros/kg décroissant, ou autre logique de ton choix).

Probleme ordre copie champs table

par lecer144 » 17 mai 2012, 18:59

Bonjour,

j'ai un composant Joomla/virtuemart qui est sensé me permettre de dupliquer une configuration de frais de port mais quand je l'utilise, les champs sont bien copiés mais l'ordre n'est pas respecté.
Dans la base, j'ai une table qui gère ça sous cette forme (en résumant un peu):

ID (auto increment) // département concerné // euros au kg // debut fourchette poids // fin fourchette poids
EX :
1 // 01 // 2 // 0 // 1
2 // 01 // 1.9 // 1 // 3
3 // 01 // 1.8 // 3 // 5
4 // 01 // 1.7 // 5 // 9

et après copie, je peux me retrouver avec ça :
EX :
6 // 01 // 1.9 // 1 // 3
5 // 01 // 2 // 0 // 1
7 // 01 // 1.8 // 3 // 5
8 // 01 // 1.7 // 5 // 9

J'essaie de trouver d'ou peut venir le problème et la fonction _task_rateduplicate() qui semble faire la copie donne ça :
	function _task_rateduplicate() {
		$db =& JFactory::getDBO();
		
		$shipping_rate_id = @(int)$_POST['shipping_rate_id'];
		if(!empty($shipping_rate_id)) {
			
			$db->Execute('INSERT INTO #__vm_ss_shipping_rate (shipping_rate_name,carrier_id,zone_id,parcel_starting_price,package_fee,currency_id,vat_id,unit,image,zip_start,zip_end,unit_measure,extra_info,zip_exclude,published,fuel_surcharge)
						SELECT shipping_rate_name,carrier_id,zone_id,parcel_starting_price,package_fee,currency_id,vat_id,unit,image,zip_start,zip_end,unit_measure,extra_info,zip_exclude,published,fuel_surcharge
						  FROM #__vm_ss_shipping_rate
						 WHERE shipping_rate_id='.$shipping_rate_id);
			$new_shipping_rate_id = $db->insertid();
			if(!empty($new_shipping_rate_id)) {
				$db->Execute('INSERT INTO #__vm_ss_shipping_rate_weight ( shipping_rate_id,rate_weight_start,rate_weight_end,rate_value )
							SELECT  '.$new_shipping_rate_id.',rate_weight_start,rate_weight_end,rate_value
							  FROM #__vm_ss_shipping_rate_weight
							 WHERE shipping_rate_id='.$shipping_rate_id);
			}
		}

		return True;
	}
et les infos sur insertid() sont là >> http://help.joomla.org/content/view/716/125/

Je ne vois pas ou est le problème ... quelqu'un aurait-il une idée svp ?
Ps: j'ai 25 paramètres sur 95 départements à faire ... au secours si je ne peux pas dupliquer ...

Par avance merci pour votre aide.