Je suis dans le même cas discuté sur https://stackoverflow.com/questions/11709043/mysql-update-column-with-value-from-another-table , c'est-à-dire que je dois copier la valeur d'une colonne de tableA à tableB en fonction d'une colonne commune dans chaque table.
J'ai utilisé le code suggéré à l'intérieur de PHPMyAdmin, et cela fonctionne parfaitement:
UPDATE TableB
SET TableB.value = (
SELECT TableA.value
FROM TableA
WHERE TableA.name = TableB.name
);
Mon problème est que je suis incapable de traduire cela en quelque chose que je peux utiliser à l'intérieur de mon mod_xxx.php
fichier. Sur la même page Stack Overflow, il existe un code suggéré qui utilise mysql_query
et fonctionne, mais Joomla ne l’accepte pas. Je sais que tout code doit être traduit selon les normes de Joomla, mais j'ai passé trois jours complets à l'essayer sans succès.
J'ai essayé le code suivant sans succès:
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query ->UPDATE ('#__gruposlocales')
->SET ('#__gruposlocales.name') =
(SELECT ('#__community_groups.name')
FROM ('#__community_groups')
WHERE ('#__community_groups.ownerid = #__gruposlocales.id'));
$db->setQuery($query);
$result = $db->execute();
Comme vous pouvez le deviner, je ne connais pas bien le code PHP, je suis donc dans le besoin de votre aide, s'il vous plaît. Ma question est de savoir comment puis-je traduire le code supérieur en quelque chose que Joomla prendra ?
Vous pouvez faire ce qui suit:
$db = JFactory::getDbo();
$sql = "UPDATE TableB SET TableB.value = (SELECT TableA.value FROM TableA WHERE TableA.name = TableB.name);
$db->setQuery($sql);
$db->execute();