bonjour a tous et toutes,
je tente de faire de A a Z un composant pour Joomla 2.5 qui affichera des produits Virtuemart en fonction de critères précis(catégories ou encore produits par 'id'....) sélectionnés depuis l'administration, mais je débute dans mon apprentissage dans la programmation, (pas facile..)
j'ai un problème avec ma requête SQL
lorsque je teste celle ci avec phpmyadmin, j'ai bien le résultat voulu.
mais je dois faire une grossière erreur dans la transcription en php
mon composant affiche en front une liste de produits.
les produits, les images et les categorie sont dans les tables suivantes.
j1730vm2_virtuemart_products_fr_fr ,
j1730vm2_virtuemart_medias ,
j1730vm2_virtuemart_categories_fr_fr ,
les tables suivantes font le lien entre produits, catégorie et medias et prix
j1730vm2_virtuemart_product_categories,
j1730vm2_virtuemart_product_medias,
j1730vm2_virtuemart_product_prices,
j'ai fais ma requête SQL de la façon suivante :
j'obtiens ceci :
j'ai donc mis dans le model du front ceci :
Dans le default.php de la vue
mais je ne récupère pas la même chose que sur phpmyadmin,
je ne vois pas ou est mon problème, mais je suis sur que la population de ce fofo va le voir comme le nez au milieu de la figure...
d'avance merci d’éclairer le néophyte que je suis...
je tente de faire de A a Z un composant pour Joomla 2.5 qui affichera des produits Virtuemart en fonction de critères précis(catégories ou encore produits par 'id'....) sélectionnés depuis l'administration, mais je débute dans mon apprentissage dans la programmation, (pas facile..)
j'ai un problème avec ma requête SQL
lorsque je teste celle ci avec phpmyadmin, j'ai bien le résultat voulu.
mais je dois faire une grossière erreur dans la transcription en php
mon composant affiche en front une liste de produits.
les produits, les images et les categorie sont dans les tables suivantes.
j1730vm2_virtuemart_products_fr_fr ,
j1730vm2_virtuemart_medias ,
j1730vm2_virtuemart_categories_fr_fr ,
les tables suivantes font le lien entre produits, catégorie et medias et prix
j1730vm2_virtuemart_product_categories,
j1730vm2_virtuemart_product_medias,
j1730vm2_virtuemart_product_prices,
j'ai fais ma requête SQL de la façon suivante :
Code:
SELECT pc.virtuemart_category_id, p.virtuemart_product_id, p.product_name, m.file_url, pp.product_price FROM j1730vm2_virtuemart_product_categories AS pc, j1730vm2_virtuemart_categories_fr_fr AS c, j1730vm2_virtuemart_products_fr_fr AS p, j1730vm2_virtuemart_medias AS m, j1730vm2_virtuemart_product_medias AS pm, j1730vm2_virtuemart_product_prices AS pp WHERE pc.virtuemart_category_id = c.virtuemart_category_id AND pc.virtuemart_product_id = p.virtuemart_product_id AND pm.virtuemart_product_id = p.virtuemart_product_id AND pm.virtuemart_media_id = m.virtuemart_media_id AND pp.virtuemart_product_id = p.virtuemart_product_id ORDER BY pc.virtuemart_category_id, pp.virtuemart_product_id ASC
Code:
virtuemart_category_id virtuemart_product_id product_name file_url product_price 1 89 blouson nylon images/stories/virtuemart/product/ve... 169.00000 4 26 blouson double images/stories/virtuemart/product/bl... 199.00000 5 16 blouson réfléchissant images/stories/virtuemart/product/blo... 189.00000
Code PHP:
public function getProduits()
{
if (!isset($this->produits))
{
$db = JFactory::getDBO();
//$query = $this->_db->setQuery($this->_db->getQuery(true)
//$query = new JDatabaseQuery;
$query = $db->getQuery(true);
$query->from('
`#__virtuemart_product_categories` AS pc,
`#__virtuemart_categories_fr_fr` AS c,
`#__virtuemart_products_fr_fr` AS p,
`#__virtuemart_medias` AS m,
`#__virtuemart_product_medias` AS pm,
`#__virtuemart_product_prices` AS pp');
$query->select('pc.virtuemart_product_id,
c.virtuemart_category_id,
p.product_name,
m.file_url_thumb,
pp.product_price');
$query->where('
pc.virtuemart_category_id = "24"
AND
pc.virtuemart_product_id = p.virtuemart_product_id
AND
pm.virtuemart_product_id = p.virtuemart_product_id
AND
pm.virtuemart_media_id = m.virtuemart_media_id
AND
pp.virtuemart_product_id = p.virtuemart_product_id');
$query->orderby('pc.virtuemart_category_id ASC');
$db->setQuery((string)$query);
$produits = $db->loadObjectList();
echo "les produits existent.";
if (!$this->produits = $this->_db->loadObject())
{
$this->setError($this->_db->getError());
}
}
else
{
echo "les produits n'existent pas.";
// Load the JSON string
$params = new JRegistry;
$params->loadJSON($this->produits->params);
$this->produits->params = $params;
// Merge global params with item params
$params = clone $this->getState('params');
$params->merge($this->produits->params);
$this->produits->params = $params;
}
return $produits;
}
Code PHP:
<?php
$produits =array();
foreach ($this->produits as $produit)
{
echo "<h3>nom :".$produit->product_name."</h3><br>";
/*
echo "<pre>";
print_r($produit);
echo "</pre>";
*/
echo "<img src='/joomla_1730_vm2/"
.$produit->file_url_thumb.
"' alt="
.$produit->product_name.
"class='browseProductImage' border='0' title='"
.$produit->product_name.
"'><br><p>"
.$produit->product_price.
"</p>";
}
?>
je ne vois pas ou est mon problème, mais je suis sur que la population de ce fofo va le voir comme le nez au milieu de la figure...
d'avance merci d’éclairer le néophyte que je suis...
Commentaire