par
kobee » 26 déc. 2011, 14:48
Bonjour!
Alors, je viens d’analyser un petit peu mon code en essayant une à une les requêtes dans PHPmyadmin.
Ce qui est étrange, c'est que le fragment de code suivant, en remplaçant par les N° des commandes à la place du $tableau_idcommandes fonctionne !
J'obtiens la liste de tous les produits confondus de mes 2 commandes concernées.
Code : Tout sélectionner
$q5 = "SELECT * FROM vtiger_products
LEFT JOIN vtiger_inventoryproductrel ON vtiger_inventoryproductrel.productid=vtiger_products.productid
LEFT JOIN vtiger_salesorder ON vtiger_inventoryproductrel.id=vtiger_salesorder.salesorderid
WHERE vtiger_inventoryproductrel.id IN (";
foreach ($tableau_idcommandes as $id)
$q5 .= $id.",";
$q5 = substr($q5,0,-1).")
AND type_cadeau=''
AND (subject LIKE '%INF%' OR subject LIKE '%indiv%')
ORDER BY 'vtiger_inventoryproductrel.product_name' ASC";
Donc ce n'est pas cette partie qui fait défaut selon moi mais la construction du tableau.
Le code qui construit le tableau des commandes est celui ci, je pense qu'il n'est pas en tort non plus
Code : Tout sélectionner
$tableau_idcommandes = array();
//requete qui liste toutes les commandes qu'on va devoir exporter et les stocke dans un tableau
$q4 = "SELECT * FROM vtiger_salesorder,vtiger_salesordercf, vtiger_crmentity,vtiger_contactdetails,vtiger_contactaddress ";
$q4 .= "WHERE vtiger_salesorder.salesorderid=vtiger_crmentity.crmid ";
$q4 .= "AND vtiger_contactdetails.contactid=vtiger_salesorder.contactid ";
$q4 .= "AND vtiger_salesordercf.salesorderid=vtiger_salesorder.salesorderid ";
$q4 .= "AND vtiger_contactdetails.contactid=vtiger_contactaddress.contactaddressid ";
$q4 .= "AND smownerid='".$user."' ";
$q4 .= "AND sostatus='En attente de traitement' AND deleted='0' ";
$db->query($q4);
while($db->next_record()){
{
$tableau_idcommandes[]=$db->f("salesorderid");
}
donc finalement, pour moi ce qui fait défaut c'est la boucle qui va lire dans le tableau
Qu'en pensez-vous ?
Merci d'avance pour votre aide,
Kobee
Bonjour!
Alors, je viens d’analyser un petit peu mon code en essayant une à une les requêtes dans PHPmyadmin.
Ce qui est étrange, c'est que le fragment de code suivant, en remplaçant par les N° des commandes à la place du $tableau_idcommandes fonctionne !
J'obtiens la liste de tous les produits confondus de mes 2 commandes concernées.
[code]
$q5 = "SELECT * FROM vtiger_products
LEFT JOIN vtiger_inventoryproductrel ON vtiger_inventoryproductrel.productid=vtiger_products.productid
LEFT JOIN vtiger_salesorder ON vtiger_inventoryproductrel.id=vtiger_salesorder.salesorderid
WHERE vtiger_inventoryproductrel.id IN (";
foreach ($tableau_idcommandes as $id)
$q5 .= $id.",";
$q5 = substr($q5,0,-1).")
AND type_cadeau=''
AND (subject LIKE '%INF%' OR subject LIKE '%indiv%')
ORDER BY 'vtiger_inventoryproductrel.product_name' ASC";
[/code]
Donc ce n'est pas cette partie qui fait défaut selon moi mais la construction du tableau.
Le code qui construit le tableau des commandes est celui ci, je pense qu'il n'est pas en tort non plus
[code]
$tableau_idcommandes = array();
//requete qui liste toutes les commandes qu'on va devoir exporter et les stocke dans un tableau
$q4 = "SELECT * FROM vtiger_salesorder,vtiger_salesordercf, vtiger_crmentity,vtiger_contactdetails,vtiger_contactaddress ";
$q4 .= "WHERE vtiger_salesorder.salesorderid=vtiger_crmentity.crmid ";
$q4 .= "AND vtiger_contactdetails.contactid=vtiger_salesorder.contactid ";
$q4 .= "AND vtiger_salesordercf.salesorderid=vtiger_salesorder.salesorderid ";
$q4 .= "AND vtiger_contactdetails.contactid=vtiger_contactaddress.contactaddressid ";
$q4 .= "AND smownerid='".$user."' ";
$q4 .= "AND sostatus='En attente de traitement' AND deleted='0' ";
$db->query($q4);
while($db->next_record()){
{
$tableau_idcommandes[]=$db->f("salesorderid");
}
[/code]
donc finalement, pour moi ce qui fait défaut c'est la boucle qui va lire dans le tableau
[code] for($i=0;$i<count($tableau_idcommandes);$i++){
[/code]
Qu'en pensez-vous ?
Merci d'avance pour votre aide,
Kobee