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 :

[SQL] requête ne renvoit pas le bon resultat


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut [SQL] requête ne renvoit pas le bon resultat
    Bonjour tout le monde,
    J'ai dans une table "nature_complexe", 2 champs (nature_complexes, taux).

    J'ai créé une requête permettant selon la nature du complexe de renvoyer la valeur du taux correspondant.

    Dans ma table, j'ai 3 natures de complexes :
    1 - Complexes résidentiels composés exclusivement de villas
    2 - Complexes résidentiels composés exclusivement d'immeubles
    3 - Complexes résidentiels composés à la fois de villas et d'immeubles.

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    $sql="SELECT valeur_residence_immeuble,nature_complexe FROM devis_immeuble_residence WHERE id_devis_imm_res ='".$id_devis."'";
     
    $result = mysql_query($sql);
    $row = mysql_fetch_array($result, MYSQL_NUM);
    $val_batiment=$row[0];
    $nature_complexe=$row[1];
     
    $sql1='SELECT taux FROM nature_complexe WHERE nature like "'.$nature_complexe.'"';
     
     	$result = mysql_query($sql1);
     	$taux = mysql_result($result,0,0);
    Cette requête ne renvoit rien. Lorsque je teste la requête (je l'affiche avc un echo) directement sous phpmyAdmin, elle renvoit bien le taux. Pouvez-vous m'aider à résoudre le problème parce que vraiment je vois pas d'ou ca vient. Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $sql="SELECT valeur_residence_immeuble,nature_complexe,taux FROM devis_immeuble_residence ,nature_complexe WHERE id_devis_imm_res ='".$id_devis."' and nature_complexe=nature";
     //enlmeve le champ bnature_complexe si tu ne t'en sers pas
    $result = mysql_query($sql)or die(mysql_error());
    $row = mysql_fetch_row($result);
    $val_batiment=$row[0];
    $nature_complexe=$row[1];
    $nature=$row[2];
     ?>
    faisable en une seul requete

    petite suggestion tu devrais créer un id_complex dans ta table nature plus simple a manipuler et pour l'integrité de ta base il te faut une clé etrangere entre ta table devi et ta table complexe
    Stay in Bed .. Save Energy

  3. #3
    Membre éclairé Avatar de bruman
    Inscrit en
    Juin 2005
    Messages
    566
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juin 2005
    Messages : 566
    Points : 794
    Points
    794
    Par défaut
    salut,
    pourquoi as tu fais une requête sql encadré par des ' et une autre par des ". Peu être que ça viens de là... J'avais eu un souci avec ça une fois mais dans un autre contexte.
    Sinon, tu as bien des valeurs dans ta base? Tu les as inséré comment? Directement avec une console SQL? Si c'est ça, fais un commit, peu être que tu n'a pas comité tes insert et du coup ton site vois une base vide.
    Le hardware est la partie de l'ordinateur qui prend les coups quand le software se plante.
    Théoriquement, ça fonctionne, sauf erreur....

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2006
    Messages : 124
    Points : 130
    Points
    130
    Par défaut
    Aussi vérifier que $taux n'est pas égale à FALSE, sinon c'est qu'il y a un problème

    Peut etre en essayant avec que 2 paramètres (le 3e est optionnel)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $taux = mysql_result($result,0);

  5. #5
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut
    Ma table n'est pas vide et contient des valeurs que j'ai tapé manuellement.
    J'ai dit que lorsque j'execute la requête directement dans PhpMyAdmin, j'ai la valeur renvoyée.
    Les valeurs que j'ai dans le champs nature sont les suivantes :

    Complexes résidentiels composés exclusivement de villas
    Complexes résidentiels composés exclusivement d'immeubles
    Complexes résidentiels composés à la fois de villas et d'immeubles.

    j'ai modifié mon code comme suit et pas de résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	$sql="SELECT valeur_residence_immeuble,nature_complexe FROM devis_immeuble_residence WHERE id_devis_imm_res ='".$id_devis."'";
    	$result = mysql_query($sql);
    	$row = mysql_fetch_array($result, MYSQL_NUM);
    	echo $val_batiment=$row[0];
    	//$nature_complexe=addslashes($row[1]);
    	echo $nature_complexe=addslashes($row[1]);
     
    	echo $sql1="SELECT taux FROM nature_complexe WHERE nature like '".$nature_complexe."'";
     
     	$result = mysql_query($sql1);
     	echo mysql_num_rows($result);
     	$taux = mysql_result($result,0,0);

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2006
    Messages : 124
    Points : 130
    Points
    130
    Par défaut
    Les appels mysql_result() ne devraient pas être mélangés avec d'autres fonctions qui travaillent aussi sur le résultat.
    donc ton mysql_num_rows risque d'affecter ton mysql_result

    $taux renvoie false ?

  7. #7
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut
    Le problème est dû à l'encodage. les données se trouvant danjs la table devis_immeuble_residence sont encodés au format utf-8 du coup les caractères spéciaux deviennent un peu bizarre. pour eviter ceci, j'ai remplacé les "é" par "e" et voila. bon c'est une solution bricolage

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2005
    Messages : 357
    Points : 537
    Points
    537
    Par défaut
    Salut,
    boo64 t'a donné la solution idéale depuis le début.

Discussions similaires

  1. [Excel 2007-2010]Requête SQL qui ne donne pas le bon résultat
    Par Davidw dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/10/2012, 11h48
  2. Requête ne donnant pas le bon résultat !
    Par Titiii25 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 02/03/2010, 14h56
  3. Pourquoi SQL server n'utilise pas le bon index
    Par cmako dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/02/2009, 09h23
  4. [MySQL] requete sql qui ne donne pas le bon array
    Par easyjava dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 02/11/2006, 14h41
  5. Requête UNION renvoie pas le bon nombre de lignes
    Par le lynx dans le forum Contribuez
    Réponses: 2
    Dernier message: 29/06/2006, 10h52

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