IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

probleme de requete (difference?) [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 57
    Par défaut probleme de requete (difference?)
    bonjour
    je travaille avec MySQL et PHP pour la réalisation d'un site. j'ai la table suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE IF NOT EXISTS `elec_retards` (
      `idPers` mediumint(9) NOT NULL auto_increment,
      `personne` text collate latin1_general_ci NOT NULL,
      `nbRetard` mediumint(9) NOT NULL,
      `nbAbsence` mediumint(9) NOT NULL,
      `owed` double NOT NULL,
      `paid` double NOT NULL,
      PRIMARY KEY  (`idPers`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=7 ;
    et je souhaite faire une requête dans laquelle on fait la différence entre owed et paid (et ne prendre que les positifs). j'ai donc écrit la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT personne, owed-paid AS diff FROM elec_retards WHERE diff>0
    pour finalement aboutir à la fonction PHP suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function aff_retard() {
     
    	$requete=mysql_query( 'SELECT personne, owed-paid AS diff FROM elec_retards' ) ;
    	$compte=0 ;
    	while ($donnees = mysql_fetch_array($requete)) {
    	$compte++ ;
    	if ($compte!=1) echo ', ' ;
    	echo $donnees['personne'].' ('.$donnees['diff'].'€)' ;
    	}
     
    }
    Je pensais que ça serait bon mais le serveur renvoit l'erreur suivante :

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ../retard/retard.php on line 92

    savez vous d'où vient le problème ? j'ai pensé que c'était peut-être à cause de la différence, je n'ai pas l'habitude de manier ce genre d'opérations dans les requêtes, mais il me semblait que ça existait.

    merci d'avance

  2. #2
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Bonjour déjà pour débugger :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete=mysql_query( 'SELECT personne, owed-paid AS diff FROM elec_retards' ) or die(mysql_error()) ;
    Sinon moi j'aurais fait ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete=mysql_query( 'SELECT personne, SUM(owed-paid) AS diff FROM elec_retards GROUP BY personne');

  3. #3
    Membre éclairé Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Par défaut
    oua chelou tu veux faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT idPers, (personne-owed-paid) AS diff FROM elec_retards GROUP BY idPers HAVING (personne-owed-paid)>0
    ??

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 57
    Par défaut
    merci pour le 'or die...', ça m'a permis de me rendre compte que je sélectionnait la mauvaise base de donnée. une fois connecté à la bonne bdd, tout va sur des roulettes ^^

  5. #5
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    et donc tout marche?^^

    Bref n'oublie pas le bouton

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 57
    Par défaut
    pour répondre à Sekigawa (dont j'ai vu la réponse après mon post) 'owed' est la somme due par la personne, 'paid' ce qu'elle a déjà payé. on fait la différence entre les deux pour savoir ce qu'elle doit encore.
    'idPers' est la clé primaire. il n'y a pas de doublon de 'personne' mais je n'aime pas mettre un champ texte en clé... je préfère utiliser l'auto-increment

    edit : oui tout marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/02/2009, 16h07
  2. probleme avec requete sql aime pas les strings
    Par lil_jam63 dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/02/2004, 14h45
  3. PROBLEME DE REQUETE IMBRIQUEE
    Par fleuve007 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/12/2003, 15h33
  4. probleme de requete
    Par LineLe dans le forum ASP
    Réponses: 8
    Dernier message: 17/09/2003, 16h47
  5. Probleme de requete
    Par misterbillyboy dans le forum Requêtes
    Réponses: 4
    Dernier message: 15/07/2003, 08h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo