Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD > PHP & SQL-Server
PHP & SQL-Server Forum d'entraide sur SQL-Server avec PHP. Avant de poster -> FAQ SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 05/11/2012, 11h16   #1
Orang-
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juin 2011
Messages : 4
Points : 1
Points : 1
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 :
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.
Orang- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2012, 11h29   #2
Fench
Expert Confirmé
 
Avatar de Fench
 
Homme
Chercheur en informatique
Inscription : mai 2002
Messages : 2 346
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 346
Points : 3 231
Points : 3 231
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)
Fench est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2012, 11h38   #3
Orang-
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juin 2011
Messages : 4
Points : 1
Points : 1
Merci Fench

Citation:
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 :
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.
Orang- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2012, 12h27   #4
Fench
Expert Confirmé
 
Avatar de Fench
 
Homme
Chercheur en informatique
Inscription : mai 2002
Messages : 2 346
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 346
Points : 3 231
Points : 3 231
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 :
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 :
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)
Fench est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2012, 12h44   #5
Orang-
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juin 2011
Messages : 4
Points : 1
Points : 1
Merci Fench
Orang- est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h58.


 
 
 
 
Partenaires

Hébergement Web