Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème structure table

Sujet résolu
    19 novembre 2017 à 12:27:26

    Salut à tous,

    Je travaille actuellement sur un projet PHP ou je doit avoir donc un formulaire d'ajout d'un jeu. ( regles, materiel, temps ect..)

    Jusque là aucun soucis, j'affiche tout bien dans mes vues, avec mes catégories ect..., je teste et la poof ! 

    J'ai une table donc "jeu" 

    -- Structure de la table `JEU`
    --
    
    CREATE TABLE `JEU` (
      `IDJEU` int(11) NOT NULL,
      `IDMEMBRE` int(11) NOT NULL,
      `IDCATEGORIE` char(32) NOT NULL,
      `NOM` varchar(32) DEFAULT NULL,
      `LOGO` varchar(32) DEFAULT NULL,
      `NBRJOUEURS` int(11) DEFAULT NULL,
      `TEMPSMOYEN` time DEFAULT NULL,
      `REGLES` varchar(5000) DEFAULT NULL,
      `MATERIEL` varchar(32) DEFAULT NULL,
      `DATEAJOUT` date DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    -- Index pour la table `JEU`
    --
    ALTER TABLE `JEU`
      ADD PRIMARY KEY (`IDJEU`),
      ADD KEY `FK_JEU_MEMBRE` (`IDMEMBRE`),
      ADD KEY `FK_JEU_CATEGORIE` (`IDCATEGORIE`);
    
    --
    -- Contraintes pour les tables exportées
    --
    
    --
    -- Contraintes pour la table `JEU`
    --
    ALTER TABLE `JEU`
      ADD CONSTRAINT `JEU_ibfk_1` FOREIGN KEY (`IDMEMBRE`) REFERENCES `MEMBRE` (`IDMEMBRE`),
      ADD CONSTRAINT `JEU_ibfk_2` FOREIGN KEY (`IDCATEGORIE`) REFERENCES `CATEGORIE` (`IDCATEGORIE`);
    

    Jusque là aucun problème, le problème je pense viens de clé étrangère ou je ne sais quoi mais lorsque je veux afficher un jeu, il me faut TOUT LE TEMPS avoir un commentaire dans ma table commentaire ci dessous :

    -- Structure de la table `COMMENTE`
    --
    
    CREATE TABLE `COMMENTE` (
      `IDMEMBRE` int(11) NOT NULL,
      `IDJEU` int(11) NOT NULL,
      `COMMENTAIRE` varchar(32) DEFAULT NULL,
      `NOTE` smallint(6) DEFAULT NULL,
      `DATE` datetime DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    -- Index pour la table `COMMENTE`
    --
    ALTER TABLE `COMMENTE`
      ADD PRIMARY KEY (`IDMEMBRE`,`IDJEU`),
      ADD KEY `FK_COMMENTE_JEU` (`IDJEU`);
    
    --
    -- Contraintes pour les tables exportées
    --
    
    --
    -- Contraintes pour la table `COMMENTE`
    --
    ALTER TABLE `COMMENTE`
      ADD CONSTRAINT `COMMENTE_ibfk_1` FOREIGN KEY (`IDMEMBRE`) REFERENCES `MEMBRE` (`IDMEMBRE`),
      ADD CONSTRAINT `COMMENTE_ibfk_2` FOREIGN KEY (`IDJEU`) REFERENCES `JEU` (`IDJEU`);
    
    


    Si je n'ai pas de commentaire, je ne peut pas afficher les infos d'un jeu dans mon html..

    Merci d'avance de votre aide..

    -
    Edité par Syrosh 19 novembre 2017 à 12:43:51

    • Partager sur Facebook
    • Partager sur Twitter
    Comment vous représentez-vous ça : l'endroit ou l'espace se termine ? | Iss Live Feed
      19 novembre 2017 à 12:49:09

      Hello, tu peux nous donner ta requête côté PHP également ? Le problème pourrait aussi venir de là.

      Comme tes jeux n'ont pas de clé étrangères, tu devrais pouvoir les récupérer sans problème avec un

      SELECT * FROM JEU
      • Partager sur Facebook
      • Partager sur Twitter
      Celui qui croit tout savoir ne sait rien
        19 novembre 2017 à 12:51:18

        Algorun a écrit:

        Hello, tu peux nous donner ta requête côté PHP également ? Le problème pourrait aussi venir de là.

        Comme tes jeux n'ont pas de clé étrangères, tu devrais pouvoir les récupérer sans problème avec un

        SELECT * FROM JEU


        Ma rq en question pour avoir les infos : 

        		public function getDescription($idjeu)
        		{
        			$jeu = array();
        			$req = "SELECT JEU.nom, logo, regles, dateajout , materiel, nbrjoueurs, tempsmoyen, CATEGORIE.nomcat, MEMBRE.MAIL FROM JEU "
        			."JOIN CATEGORIE ON JEU.IDCATEGORIE = CATEGORIE.IDCATEGORIE JOIN COMMENTE on JEU.IDJEU = COMMENTE.IDJEU JOIN MEMBRE ON JEU.IDMEMBRE = MEMBRE.IDMEMBRE WHERE JEU.IDJEU =?";
        			
        			$stmt = $this->_db->prepare($req);
        			
        			$stmt->execute(array($idjeu));
        			while ($donnees = $stmt->fetch())
        			{
        			
        			$jeu = new Jeu($donnees);
        			}
        			
        			return $jeu;
        		
        		
        		
        		}
        		

        Edit: solved en relisant ma requête, je faisais un join inutile et c'était ça le soucis! Merci de ton aide

        -
        Edité par Syrosh 19 novembre 2017 à 12:53:06

        • Partager sur Facebook
        • Partager sur Twitter
        Comment vous représentez-vous ça : l'endroit ou l'espace se termine ? | Iss Live Feed
          19 novembre 2017 à 12:53:34

          Bonjour,

          Si tu ne précise pas quel type de jointure tu fais, SQL interprète cela comme un "INNER JOIN", c'est pour ça que tu n'as pas les lignes sans commentaires.

          • Partager sur Facebook
          • Partager sur Twitter
            19 novembre 2017 à 12:59:53

            -

            -
            Edité par Algorun 19 novembre 2017 à 13:00:47

            • Partager sur Facebook
            • Partager sur Twitter
            Celui qui croit tout savoir ne sait rien

            Problème structure table

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown