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 :

rejoindre deux requêtes pour afficher des données


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut rejoindre deux requêtes pour afficher des données
    bonjours
    j'ai un petit problème
    j'ai deux requette il y en a une qui recupère les batiment de l'internaute et un autre qui prend tout les batiment a construire le problème c'est que moi je veut afficher que les batiment que l'internaute n'a pas
    les table
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
       1.
          -- 
       2.
          -- Structure de la table `batiment`
       3.
          -- 
       4.
     
       5.
          CREATE TABLE `batiment` (
       6.
            `id` int(11) NOT NULL AUTO_INCREMENT,
       7.
            `batiment` varchar(255) NOT NULL,
       8.
            `niveau` int(11) NOT NULL,
       9.
            `usure` int(11) NOT NULL,
      10.
            `idjoueur` int(11) NOT NULL,
      11.
            `timestamp` bigint(20) NOT NULL,
      12.
            `timestampexe` bigint(20) NOT NULL,
      13.
            PRIMARY KEY  (`id`)
      14.
          ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=261 ;
    #
    -- 
    #
    -- Structure de la table `niveau`
    #
    -- 
    #
     
    #
    CREATE TABLE `niveau` (
    #
      `id` int(11) NOT NULL AUTO_INCREMENT,
    #
      `nom` varchar(255) NOT NULL,
    #
      `niveau` varchar(255) NOT NULL,
    #
      `usure` bigint(255) NOT NULL,
    #
      `argent` bigint(255) NOT NULL,
    #
      `nourriture` varchar(255) NOT NULL,
    #
      `population` varchar(255) NOT NULL,
    #
      `electriciter` varchar(255) NOT NULL,
    #
      `metal` varchar(255) NOT NULL,
    #
      `bois` varchar(255) NOT NULL,
    #
      `cristal` varchar(255) NOT NULL,
    #
      `time` varchar(255) NOT NULL,
    #
      `fonction` varchar(255) NOT NULL,
    #
      `type` varchar(255) NOT NULL,
    #
      PRIMARY KEY  (`id`)
    #
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=47
    le code php
    Code php : 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
        1.
          <?php
       2.
           $p = 'select ajout from action where idpseudo="'.$_SESSION['id'].'"';
       3.
          $bb = mysql_query($p) or die (mysql_error());
       4.
          $a = mysql_fetch_array($bb);// on recuper les batiment deja créer par le joueur
       5.
          $plouf = 'SELECT *
       6.
          FROM niveau
       7.
          WHERE type = "'.$_GET['batiment'].' "
       8.
          AND fonction ="construire" ';
       9.
          $pa = mysql_query($plouf) or die (mysql_error());
      10.
          while($paf = mysql_fetch_array($pa))// on recuper  les batiment que l'on peu créer
      11.
          ?>
    merci de m'aider
    j'ai changer la table ajout par la table batiment

    schats

  2. #2
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 61
    Points : 59
    Points
    59
    Par défaut
    Bonjour,
    Ya plus simple,
    tu veux une extraction des batiments sauf ceux du user:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from batiments where batiments.idUsers != id_users
    @++

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    le problème c'est que il faut le faire avec le nom pas les id je vais voir mais sa a pas a l'air de marche :p
    requette tester :p
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from niveau left join batiment on batiment.batiment!=niveau.nom where batiment.idjoueur ='".SESSION['id']."' and niveau.fonction='construire' and niveau.type='"$_GET['type']."'
    je l'ai tester sur phpmyadmin les batiment créer sont aussi mit :s

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    après plusieurs teste je reviens car je ne voie vraiment plus comment faire
    j'ai tenter mettre dans un array les données de la premier puis faire un in_array dans la seconde sans succès j'ai tenter une jointure un union , je ne voie pas comment faire maintenant.
    merci de m'aider
    schats

  5. #5
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241
    Par défaut
    Bon la c'est juste l'ossature..........

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * from tabconstruction where nomduconstructeur not in (select nomconstructeur from tableXXXX where Id=$idcontructeur)
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * FROM tableconstructeur WHERE ------
    EXCEPT
    SELECT * FROM table2 WHERE ------
    ou


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * FROM tableconstructeur
    WHERE NOT EXISTS (SELECT * FROM table2
    		WHERE blabla)

  6. #6
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 324
    Points
    4 324
    Par défaut
    Oui plus simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM tab1
    WHERE idTab2 NOT IN (SELECT idTab2 FROM tab2)
    Apres a toi de d'arranger et de rajouter des where eventuels
    http://alaindefrance.wordpress.com
    Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1
    SDE at BitTitan

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    j'ai tenter
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * FROM tableconstructeur WHERE ------
    EXCEPT
    SELECT * FROM table2 WHERE -----
    le petit problème c'est que je ne voie pas ou mettre les simple ou double cote
    j'ai
    ' select * from table constrction where ------ EXCEPT SELECT * from table2 where -----' mais le except semble être génant il faut mettre des simple ou double cote entre le except

  8. #8
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241
    Par défaut
    Citation Envoyé par schats Voir le message
    j'ai tenter
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * FROM tableconstructeur WHERE ------
    EXCEPT
    SELECT * FROM table2 WHERE -----
    le petit problème c'est que je ne voie pas ou mettre les simple ou double cote
    j'ai
    ' select * from table constrction where ------ EXCEPT SELECT * from table2 where -----' mais le except semble être génant il faut mettre des simple ou double cote entre le except

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $req="SELECT * FROM tableconstructeur WHERE blablabla=blibli";
    $req2="SELECT * FROM table2 WHERE koki=koukou";
    $req3="$req"." EXCEPT ".$req2";

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 95
    Points
    95
    Par défaut
    j'ai tester
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $req="SELECT * FROM niveau WHERE fonction='construire' and type='".$_GET['batiment']."'";
    $req2="SELECT * FROM batiment WHERE idjoueur='".$_SESSION['id']."'";
    $c= "$req"." EXCEPT ".$req2";
    me donne
    Parse error: syntax error, unexpected '"' in /media/160go/hebergement/spouts.goldzoneweb.info/espace_membre/jeuxfutur/batiment.php on line 49
    la ligne 49 est la varaible $c

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/01/2009, 09h48
  2. [MySQL] Requête pour afficher des messages
    Par titirigole dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 08/12/2008, 14h30
  3. Requête pour ajouter des données
    Par parasol007 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/07/2008, 11h31
  4. Requête pour filtrer des données
    Par altecad dans le forum Requêtes
    Réponses: 2
    Dernier message: 03/02/2008, 14h16
  5. [SQL] Requête pour afficher des valeurs uniques
    Par gcvoiron dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 13/11/2007, 17h38

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