begin process at 2012 05 31 17:22:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Bases de données

 > 

SQL 2000 Query failed ???


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

SQL 2000 Query failed ???

lundi 16 janvier 2006 à 15:06:16 | SQL 2000 Query failed ???

espadon2

Bonjour a tous,

Voila j' ai un petit probleme d'excution d'une requete sun un serveur SQL 2000 (WINDOWS 2000 server) dans un de mes scripts PHP :
    Warning: MS SQL: Query failed in d:\dvlp\va\includes\function.php on line 816
Le contexte de la base de donn‚es a ‚t‚ chang‚ en 'stat'.

j'ai une table  VENTES (de produits) , et je crée une requete en fonction de certaines selection de l' utilisateur.

En resumé , l'utilsateur selectionne ou pas , une année , un mois, un fournisseur , un de ses magasins ...etc
et je dois lui renvoyer la quantité , le chiffre affaire, la marge etc ... pour chaque produit correspondant aux critéres de selection

Ma requete marche dans l' analyseur de requete de MS SQL 2000, mais pas avec PHP  :-(

EXP: pour DECEMBRE 2005 AVEC COMPARAISON 2004
SELECT code_article,sum(Case When annee='2005' Then qte Else 0 End) as qte,sum(Case When annee_facture='2004' Then qte Else 0 End) as qtepre,sum(Case When annee='2005' Then achat Else 0 End) AS achat,sum(Case When annee_facture='2004' Then achat Else 0 End) AS achatpre ,sum(Case When annee='2005' Then montant_net_fact Else 0 End ) AS chiffaff ,sum(Case When annee='2004' Then montant_net_fact Else 0 End ) AS chiffaffpre,sum(Case When annee='2005' Then marge Else 0 End ) AS marge,sum(Case When annee='2004' Then val_marge Else 0 End ) AS margepre from ventes WHERE mois <='12' GROUP BY code_article ORDER BY chiffaff DESC


Quelqu'un y comprends quelque chose ???
Merci de m' aider SVP , là je patoge ..
C'est pas le temps d'execution en php , je l' ai mis a 0 dans php.ini ....

Merci d'avance...

Amicalement,

espadon
lundi 16 janvier 2006 à 16:00:03 | Re : SQL 2000 Query failed ???

sidf

SELECT code_article,

sum(Case When annee='2005' Then qte Else 0 End) as qte,

sum(Case When annee_facture='2004' Then qte Else 0 End) as qtepre,

sum(Case When annee='2005' Then achat Else 0 End) AS achat,

sum(Case When annee_facture='2004' Then achat Else 0 End) AS achatpre,

sum(Case When annee='2005' Then montant_net_fact Else 0 End ) AS chiffaff,

sum(Case When annee='2004' Then montant_net_fact Else 0 End ) AS chiffaffpre,

sum(Case When annee='2005' Then marge Else 0 End ) AS marge,

sum(Case When annee='2004' Then val_marge Else 0 End ) AS margepre

from ventes WHERE mois <='12' GROUP BY code_article

ORDER BY chiffaff DESC

tu ne te serais pas trompé dans la sélection (en gras)
annee_facture ou annee ???

apparemment le case marche en php
lundi 16 janvier 2006 à 16:07:53 | Re : SQL 2000 Query failed ???

FhX

Moi ce que je voudrais voir, c'est le code PHP qu'il utilise.
Car si ca marche via SQL, ca marche aussi pour PHP.
Je suis quasi sur que c'est un problème de guillemets...
lundi 16 janvier 2006 à 16:58:54 | Re : SQL 2000 Query failed ???

espadon2

Merci de vous pencher sur mon petit probleme

Il y a bien une erreur dans ma requete sur le champ annee , mais jsute ici , pas dans mon script ... copier/coller raté
Désolé

Le case marche en php , déjà utilisé dans d'autres scripts

------------  MON CODE PHP -----------

function GiveMeProduits($aAnnee,$aMois,$aFourniseur,$aMagasin)
{
   $server= "servSQL";
   $login="sa";
   $password="toto";
   $base="achat_vente";

    $idConn=mssql_connect($server,$login,$password) ;
    mssql_select_db($base) ;

   $anneePre=$aAnnee-1;

 $query ="SELECT code_article,sum(Case When annee='$aAnnee' Then qte Else 0 End) as qte,sum(Case When annee='$anneePre' Then qte Else 0 End) as qtepre,sum(Case When annee='$aAnnee'  Then achat Else 0 End) AS achat,sum(Case When annee='$anneePre' Then achat Else 0 End) AS achatpre ,sum(Case When annee='$aAnnee'  Then montant_net_fact Else 0 End ) AS chiffaff ,sum(Case When annee='$anneePre' Then montant_net_fact Else 0 End ) AS chiffaffpre,sum(Case When annee='$aAnnee'  Then marge Else 0 End ) AS marge,sum(Case When annee='$anneePre' Then val_marge Else 0 End ) AS margepre from ventes WHERE mois <='$aMois'";

     if ($aFourniseur!="")
    {
        $where =  $where." AND code_four='$aFournisseur'";
    }
     if ($aMagasin!="")
    {
        $where =  $where." AND code_mag='$aMagasin'";
    }

    $query = $query .$where ." GROUP BY code_article ORDER BY chiffaff DESC";

     // je faits un echo de la requete , puis copier et coller dans analyseur de requete
    // et elle marche ...mais pas ici
     echo $query ;
    $result=mssql_query ($query,$idConn);

    $nb=mssql_num_rows($result);

      for ($i=0;$i<$nb;$i++)
     {  
         $row=mssql_fetch_row($result);
         echo $row[0]."-".$row[1]."-".$row[2]."-".$row[3];
     }
  mssql_close($idConn);
}
-------------------------------------

Voila , si vous pouvez me donner une piste .... je pensais au temps d' execution , car ca demande un peu de temps .. mais bon je sais pas trop ......

la table a environ 1 000 000 de lignes au fait

Merci d'avance...

Bonne journée

Amicalement,
espadon

lundi 16 janvier 2006 à 17:02:09 | Re : SQL 2000 Query failed ???

espadon2

ne pas tenir compte de l' erreur de frappe  $aFournisseur/$aFourniseur ..... oublié un S
espadon
lundi 16 janvier 2006 à 17:12:12 | Re : SQL 2000 Query failed ???

sidf

chez moi mssql ne fonctionne pas
essaie de remplacer la chaine mssql par mysql sinon je ne vois pas !
lundi 16 janvier 2006 à 17:28:37 | Re : SQL 2000 Query failed ???

espadon2

Ben il faut activer mssql dans php.ini   c'est tout ...en retirant le point virgule devant
     extension=php_mssql.dll

je vais pas attaquer une base microsoft SQL 2000 avec mysql_query ...etc ..  !!!???? va pas bien marcher ca ...
mysql c'est juste .. ben pour une base mysql ...

Mais merci tout de meme......

ma fonction marche une fois , puis a le seconde execution elle plante ... bref c'est un peu aléatoire ..c'est ce que je pige pas ... je faits bien mssql_free_result, je ferme bien ma base ... mais rien .. le probleme ne vierndrai pas de PHP (essayer avec php4.1 et php 5.0) , ou SQL 2000 tout simplement , un bug ???

espadon
lundi 16 janvier 2006 à 17:33:11 | Re : SQL 2000 Query failed ???

sidf

je n'ai rien dit mssql ça marche
lundi 16 janvier 2006 à 17:44:43 | Re : SQL 2000 Query failed ???

malalam

Administrateur CodeS-SourceS
Essaye un mssql_get_last_message () sur ton mssql_query () pour voir si on a plus d'infos.
En attendant, tu devrais réflêchir à une autre façon de requêter, parce que faire autant de sommes, avec autant de conditions, sur une grosse table...ça risque de faire bcp, en effet.
lundi 16 janvier 2006 à 17:48:38 | Re : SQL 2000 Query failed ???

sidf

il faudrait savoir dans quelles conditions la fonction plante et celles où elle ne plante pas
$where n'est jamais initialisé mais je ne sais pas si ça a une incidence

1 2

Cette discussion est classée dans : end, case, annee, sum, when


Répondre à ce message

Sujets en rapport avec ce message

prob de retour à la ligne....lol [ par FleX ] Alors voila :Je rentre mon texte dans une case texte, la case texte a l'option wrap et est multiligne.Apres, quand j'affiche ce string dans une case t case a cocher !! [ par Xime ] salut :)voila j'ai une page avec un tableau regroupant les employés stockés dans ma base mais j'aimerais pouvoir mettre devant chacun une case a coche Formulaire dans base de donnée [ par fabiin ] Salut,Alors voilasur mon site, les gens s'y inscrive, et il y a une case ou ils mettent une description longue...(j'accept le html)jusque la, tous va Update [ par asterixobelix ] François C.Merci à TortueGeniale pour son aide dans le message Session. Un autre problème se pose à moi:La supression et l'ajout d'un enregistrement f snif j'y suis presque fonction + condition [ par tutouche ] Bonsoir à tous,J'en ai marre je pensais y être en fin, mais malheureusement non!!!Qlq1 peut il me venir en secour?Voici mon code qui fonctionne parfai image helllp!! [ par elpitou86 ] Elpitousui un newbi en prog . je voulais savoir coment on faisait pour découper une image avec une grille et pour avoir les coordonnés ou un probleme frame [ par Alferox ] Bonjour,bon c pas vraiment du PHP, mais je ne suis pas foutu de trouver comment faire:Donc je mes ce code pour que la case de mon tableau change de co Problème avec un formulaire tout simple !! [ par adys ] G un pb avec un formulaire bidon, c'est à dire k'il n'y a k'une listbox et une case à cocher (et un bouton submit evidemment).je voudrais que le formu Case a cocher activant ou desactivant des cases [ par nikos283 ] Bonjour,Je cherche a créer un formulaire contenant des champs qui soit utilisable ou non en fonction du fait que l'utilisateur coche ou non une case.M qcm et case a cocher sur une Base MySQL [ par caper ] bonjour a tousje suis novice dans ce domainemon pb du moment est de faire un qcm avec une base MySQL.Les question doit s'afficher aleatoirement ainsi


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales