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 :

Lecture dans deux tables différentes [SQL-Server]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier

    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Juin 2011
    Messages : 81
    Points : 89
    Points
    89
    Billets dans le blog
    2
    Par défaut Lecture dans deux tables différentes
    Bonjour,

    Je me permets de poster ici après lecture du tutoriel sur les jointures.

    Le script est prévu pour une page affichant deux div distinctes.
    Pour éviter de multiples (de)connexions à la BDD, je souhaiterais que des informations issues de deux tables s'affichent conjointement.
    Code : 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
    <div id="colonne1">
    	<?php
    		if (empty($_GET["page"])) 
    			echo "<a href='/accueil'>Retour à l'accueil</a>";
    		else
    		{
    			$numpage = $_GET['page'] ;
    			try
    			{
    				$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    				$bdd = new PDO('mysql:host=localhost;dbname=site', 'root', '***', $pdo_options);
    				$bdd->query("SET NAMES UTF8");
    				$requete = $bdd->query("SELECT * FROM pages,rubriques WHERE id=$numpage");
    				while ($donnees = $requete->fetch()) {
    					echo $donnees['titre']; // pages
    					echo $donnees['rub_titre']; // rubriques
     
     
    	?>
    </div><!--colonne1-->
    <div id="colonne2">
    	<?php
    					echo "<h1>".$donnees['soustitre']."</h1>";
    					echo $donnees['texte'];
    				}
    			}
    			catch(Exception $e)
    			{
    				die('Erreur : '.$e->getMessage());
    			}
    			$requete->closeCursor(); // Termine le traitement de la requête
    		}
    	?>
    </div><!--colonne2-->
    Le problème est qu'à partir du moment où j'ajoute ",rubriques", le contenu de la BDD ne s'affiche plus.
    Pas même une "Erreur : SQLSTATE[42000]: Syntax" comme il pourrait y en avoir si je remplaçais la virgule par un operateur.

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Dans une page, tu as plusieurs rubriques ?

    Tu n'as pas de jointure pour l'instant ... donnes nous la structure des deux tables.
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  3. #3
    Membre régulier

    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Juin 2011
    Messages : 81
    Points : 89
    Points
    89
    Billets dans le blog
    2
    Par défaut
    Merci Fench

    1 id int(11) Non Aucune AUTO_INCREMENT
    2 titre char(40) utf8_general_ci Non Aucune
    3 soustitre char(250) utf8_general_ci Oui NULL
    4 texte text utf8_general_ci Oui NULL
    Pour les deux tables avec le préfixe 'rub_' pour la table 'rubriques'.

    Justement, je n'ai pas de jointure car je ne suis pas sûr que cela est nécessaire ici.

    Citation Envoyé par Fench Voir le message
    Bonjour,

    Dans une page, tu as plusieurs rubriques ?
    Pour le moment, non, mais effectivement le problème va se poser.
    Je pense qu'à ce moment, j'ajouterais une colonne 'rub_id-pages' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE id=rub_id-page=$numpage
    Et dans ce cas, effectivement il faudra créer un lien entre 'rub_id-pages' et le 'id' de la table 'pages'. Je vais voir ça plus attentivement.

  4. #4
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Je t'invite à regarder le tutoriel du forum ici

    Pour ton cas, il faudrait ajouter un id de de la table pages dans ta table rubriques car sinon tu n'auras pas de jointure mais un produit cartésien entre les deux.
    Ex
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM pages,rubriques
    Qd tu auras lu le tuto, utilises le mot clé JOIN et non un where sur l'id des deux tables. Ensuite après la jointure tu ajouteras un where
    Ex
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT ...
    FROM   pages
           JOIN rubriques
           ON pages.id = rubriques.id_page
           WHERE pages.id=$numpage
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  5. #5
    Membre régulier

    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Juin 2011
    Messages : 81
    Points : 89
    Points
    89
    Billets dans le blog
    2
    Par défaut
    Merci Fench

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/04/2009, 13h46
  2. Réponses: 10
    Dernier message: 17/04/2009, 18h19
  3. Réponses: 2
    Dernier message: 10/04/2009, 15h34
  4. [MySQL] Insérer dans deux tables différentes
    Par nita2006 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 21/01/2008, 13h47
  5. données dans deux tables différentes
    Par [Hugo] dans le forum Langage SQL
    Réponses: 9
    Dernier message: 09/11/2007, 13h51

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