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

Langage PHP Discussion :

fonction mysql_result ou autre [PHP 4]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 93
    Par défaut fonction mysql_result ou autre
    Bonjour,

    J'ai écrit le bout de code suivant:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $requete_nombre_agences = 'SELECT COUNT (DISTINCT (agence_id)) FROM bureaux WHERE clients_au_pair=2 AND pays_id="'.$country.'"';
    $resultat_nombre_agences = mysql_query($requete_nombre_agences);
    $nombre_agences = mysql_result($resultat_nombre_agences,0);
     
    echo 'country: '.$country.'<br />';
    echo '$requete_nombre_agences: '.$requete_nombre_agences.'<br />';
    echo '$resultat_nombre_agences: '.$resultat_nombre_agences.'<br />';
    echo '$nombre_agences: '.$nombre_agences;

    Cela me génère le résultat suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    country: AUS
    $requete_nombre_agences: SELECT COUNT (DISTINCT (agence_id)) FROM bureaux WHERE clients_au_pair=2 AND pays_id="AUS"
    $resultat_nombre_agences:
    $nombre_agences:
    Le problème est que je ne comprends pas pourquoi la 3ème et 4ème ligne de l'affichage sont vides (pas de valeur pour $resultat_nombre_agences et pour $nombre_agences).
    Si je vais dans phpmyadmin et que je lance la requête sql affichée, j'obtiens "1" car il y a 1 enregistrement dans ma table "bureaux" qui ait à la fois le champs "pays_id" égal à "AUS" et le champs "clients_au_pair" égal à 2.
    Normalement selon moi la 4ème ligne devrait afficher:
    $nombre_agences: 1
    mais ce n'est pas le cas.

    Si quelqu'un peut m'expliquer pourquoi, cela me rendrait bien service.

    Merci!

    PS: Structure de ma table bureaux pour info bien que cela ne soit pas le problème vu que la requete sql fonctionne dans phpmyadmin...
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    -- 
    -- Structure de la table `bureaux`
    -- 
     
    CREATE TABLE `bureaux` (
      `id_bureaux` int(10) unsigned NOT NULL auto_increment,
      `agence_id` int(10) NOT NULL,
      `adresse1` varchar(50) collate utf8_unicode_ci NOT NULL,
      `adresse2` varchar(50) collate utf8_unicode_ci default NULL,
      `code_postal` varchar(10) collate utf8_unicode_ci default NULL,
      `ville` varchar(50) collate utf8_unicode_ci NOT NULL,
      `pays_id` varchar(3) collate utf8_unicode_ci NOT NULL,
      `tel` varchar(30) collate utf8_unicode_ci NOT NULL,
      `fax` varchar(30) collate utf8_unicode_ci default NULL,
      `email` varchar(50) collate utf8_unicode_ci default NULL,
      `clients_au_pair` tinyint(1) NOT NULL,
      `clients_famille` tinyint(1) NOT NULL,
      PRIMARY KEY  (`id_bureaux`),
      UNIQUE KEY `tel` (`tel`)
    ) ENGINE=MyISAM AUTO_INCREMENT=1113 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1113 ;
     
    -- 
    -- Contenu de la table `bureaux`
    -- 
     
    INSERT INTO `bureaux` VALUES (1092, 1092, 'P.O. Box 1166', NULL, '2037', 'Glebe NSW', 'AUS', '+61 (0)2 9571 61', NULL, 'info@australia.com.au', 2, 2);

    PPS: Le problème pourrait venir du fait que la connexion à la base de données ne se fait pas mais j'ai bien vérifié, ma connexion à la base de données fonctionne correctement et d'autres requêtes sur cette même page faisant appel à la base de données fonctionnent nickel.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il y a pourtant bien une erreur dans ta requete : des espaces indus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(DISTINCT(agence_id))
    Tu devrais afficher les erreurs de type warning, cela t'aurais indiqué le problème.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 93
    Par défaut
    Merci beaucoup pour la solution!
    Je vais suivre ton conseil et ajouter des "die ('Error :'.mysql_error())" pour m'indiquer les erreurs sql...

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

Discussions similaires

  1. Champ fonction d'un autre
    Par domdobrazil dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/10/2005, 09h38
  2. Réponses: 2
    Dernier message: 05/10/2005, 16h07
  3. Modifier la valeur d'un champ en fonction d'une autre...
    Par venividivici dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 25/08/2005, 14h28
  4. Réponses: 3
    Dernier message: 12/03/2005, 21h30
  5. Contraite NULL sur une colonne en fonction d'une autre colon
    Par speedy1496 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/04/2004, 19h29

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