cs_pbreaker
Messages postés34Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention 9 février 2009
-
11 avril 2006 à 14:26
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 2007
-
11 avril 2006 à 17:04
J ai un problème avec cette requete et je voi vraiment pas pourkoi, dc est ce ke qq1 aurai une idée plz !!!
while ($qte_ajou > 0)
{
$req tep_db_query("select orders_products_id from " . TABLE_ORDERS_PRODUCTS . " group by orders_products_id having orders_products_id ( select min(distinct orders_products_id) from " . TABLE_ORDERS_PRODUCTS . " where products_id='" . (int)$products_id . "' and prix_unit_moy is null)");
$contenu=tep_db_fetch_array(tep_db_query("select orders_products_id as opi, products_quantity as pqt form " . TABLE_ORDERS_PRODUCTS . " where opi = '" . (int)$req ."' ")) ;
if($qte_ajou>(int)$contenu['pqt'])
{
tep_db_query("update " . TABLE_ORDERS_PRODUCTS . " set prix_unit_moy '" . $HTTP_POST_VARS['prix_unit'] . "' where orders_products_id '" . (int)$contenu['opi'] . "'");
$qte_ajou= $qte_ajou - (int)$contenu['pqt'];
}
else break;
}
}
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 11 avril 2006 à 14:29
Salut!
- parle français
- achète-toi un clavier qui possède une touche <enter>
- fais afficher ta requête
- fais afficher les erreurs mysql
Une fois toutes ces infos en poches redis nous et on sera plus à même de t'aider!
@++
R@f
www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
cs_pbreaker
Messages postés34Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention 9 février 2009 11 avril 2006 à 14:37
J'espere que t'est servi cette fois:
while ($qte_ajou > 0)
{ $req tep_db_query("select orders_products_id from " . TABLE_ORDERS_PRODUCTS . " group by orders_products_id having orders_products_id ( select min(distinct orders_products_id) from " . TABLE_ORDERS_PRODUCTS . " where products_id='" . (int)$products_id . "' and prix_unit_moy is null)");
$contenu=tep_db_fetch_array(tep_db_query("select orders_products_id as opi, products_quantity as pqt form " . TABLE_ORDERS_PRODUCTS . " where opi = '" . (int)$req ."' ")) ;
if($qte_ajou>(int)$contenu['pqt'])
{ tep_db_query("update " . TABLE_ORDERS_PRODUCTS . " set prix_unit_moy '" . $HTTP_POST_VARS['prix_unit'] . "' where orders_products_id '" . (int)$contenu['opi'] . "'");
$qte_ajou= $qte_ajou - (int)$contenu['pqt'];
}
else break;
cs_pbreaker
Messages postés34Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention 9 février 2009 11 avril 2006 à 14:41
Ceci est l erreur afficher
1064 - You have an error in your SQL syntax near 'select min(distinct orders_products_id) from orders_products where products_id='' at line 1
select orders_products_id from orders_products group by orders_products_id having orders_products_id = ( select min(distinct orders_products_id) from orders_products where products_id='310' and prix_unit_moy is null)
Vous n’avez pas trouvé la réponse que vous recherchez ?
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 11 avril 2006 à 14:41
Salut!
C'est mieux, merci!
Alors, qu'est ce qui cloche?
1) essaie de faire afficher la requête pour voir si elle correspond vraiment à ce que tu veux:
echo "select orders_products_id from " . TABLE_ORDERS_PRODUCTS . " group by
orders_products_id having orders_products_id = ( select min(distinct
orders_products_id) from " . TABLE_ORDERS_PRODUCTS . " where
products_id='" . (int)$products_id . "' and prix_unit_moy is null)";
et echo "select orders_products_id as opi, products_quantity as pqt form " . TABLE_ORDERS_PRODUCTS . " where opi = '" . (int)$req ."' ";
Des fois on remarque que y'a une variable qui joue pas, ou un truc dans le genre.
Ensuite, si y'a une erreur, essaye un:
echo mysql_error();
Ca t'affichera l'erreur MySQL et on pourra mieux cibler! :)
@++
R@f
www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
cs_pbreaker
Messages postés34Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention 9 février 2009 11 avril 2006 à 14:55
Je suis installé chez VERIO il sont tt le tps updaté il doivent avoir la derniere version de mysql
Pour les mysql error il sont integré dans les fonctions tep_db_xxxx, donc ce n'est pas un problème de catch d'erreur.
Mais il me semble que mysql accepte pas cette requete a cause du min. Elle fonctionne sous oracl, donc coté syntaxe elle semble correcte.
donc pour vous expliquer ce que je veux atteindre : je dois recuperer les champs products_quantity pour un certain products_id et où le produit moyen est null, commencant par la commande la plus ancienne, apres je dois commencer a modifier ce prix moyen et ceci par commande jusqu' ce que la quantité que j ai ajouté a mon stock soit nule.
J ai essayer avec une autre solution qui est la suivante mais ca ne marche pas non plus
$contenu tep_db_query("select products_quantity as qte, orders_id as oid, prix_unit_moy as pm, orders_products_id as opid, products_id from " . TABLE_ORDERS_PRODUCTS . " where products_id '" . (int)$products_id . "' and prix_unit_moy is null order by products_quantity asc");