Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Problème tables reliées phpmyadmin

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
pp51
WRInaute discret
WRInaute discret

Inscrit le: 26 Aoû 2005
Messages: 86

URL permanente de ce messagePosté le : Lun Mar 13, 2006 15:31    Sujet du message: Problème tables reliées phpmyadmin

Bonjour à tous,

Je viens de me mettre sur phpmyadmin.

J'ai crée 3 tables:
- categories
- produits
- produits_categories

Je dois relier les tables mais j'ai un message d'erreur:

Erreur
Certaines fonctionnalités ayant trait aux tables reliées sont désactivées. Pour une analyse du problème, cliquez ici.

puis:
PMA Database ... en erreur[ Documentation ]
Fonctions relationnelles désactivé

Comment dois-je faire ?

Merci d'avance.

PP51
 
pp51
e-kiwi
Modérateur
Modérateur

Inscrit le: 23 Déc 2003
Messages: 12251
Localisation: Toulouse

URL permanente de ce messagePosté le : Lun Mar 13, 2006 15:39    Sujet du message: Problème tables reliées phpmyadmin

>> Je dois relier les tables
pour faire quoi ? c'est en php que tu fais tes requetes sur plusieurs tables
 
e-kiwi Visiter le site web du posteur
tom_pascal
WRInaute impliqué
WRInaute impliqué

Inscrit le: 17 Nov 2003
Messages: 278

URL permanente de ce messagePosté le : Lun Mar 13, 2006 15:40    Sujet du message: Problème tables reliées phpmyadmin

Bah, si tu peux assurer toi-même l'intégrité référentielle de la base, par tes scripts (genre, quand tu supprimes un produit, tu supprime les lignes qui vont bien de produits_categories), ça ne sert à rien de créer des clés externes.

C'est comme ça que j'ai l'habitude de faire depuis le temps que j'utilise mysql (car dans les anciennes versions, il n'acceptait pas du tout les contraintes FOREIGN KEY)

Il te suffit par contre de placer des index (en particulier dans les deux champs de produits_categories qui pointent "virtuellement" vers les clés primaires des autres tables) pour accélérer les jointures.
 
tom_pascal Visiter le site web du posteur
pp51
WRInaute discret
WRInaute discret

Inscrit le: 26 Aoû 2005
Messages: 86

URL permanente de ce messagePosté le : Lun Mar 13, 2006 15:49    Sujet du message: Problème tables reliées phpmyadmin

en fait j'ai acheté un bouquin pour monter mon site d'ecommerce de A à Z...

Comme je n'y connais strictement rien en php, je suis les instructions à la lettre Rolling Eyes

Ma table bt_prd_categories devrait me permettre de classer mes produits sur certaines catégories que j'ai crée.
Dans mon cas, un même produit doit pouvoir être relié à plusieures catégories...

En fait le message d'erreur est apparu dès la création de ma seconde table.
1ere table: - categories
2è table: - produits

C'est à ce moment que j'ai eu l'avertissement / alors que je n'avais jamais voulu faire de table reliée...

Y a t'il un paramétrage particulier à faire ?

Merci en tout cas pour vos réponses Wink
 
pp51
e-kiwi
Modérateur
Modérateur

Inscrit le: 23 Déc 2003
Messages: 12251
Localisation: Toulouse

URL permanente de ce messagePosté le : Lun Mar 13, 2006 15:55    Sujet du message: Problème tables reliées phpmyadmin

et opter pour une solution genre Oscommerce ca te branches pas ? ca ira plus vite je penses Smile
 
e-kiwi Visiter le site web du posteur
mr_go
WRInaute accro
WRInaute accro

Inscrit le: 21 Sep 2005
Messages: 1944
Localisation: Sous le soleil

URL permanente de ce messagePosté le : Lun Mar 13, 2006 16:01    Sujet du message: Problème tables reliées phpmyadmin

+1 e-kiwi

Si tu tiens toutefois à tout développer toi même :

Citation:
Erreur
Certaines fonctionnalités ayant trait aux tables reliées sont désactivées. Pour une analyse du problème, cliquez ici.


Ca sent le PHPMyAdmin ca...

Pour info, cela peut t'être utile :

http://mysql.ifrance.com/showthread.php?t=567&highlight=relationnel

@+

Wink
 
mr_go Visiter le site web du posteur
pp51
WRInaute discret
WRInaute discret

Inscrit le: 26 Aoû 2005
Messages: 86

URL permanente de ce messagePosté le : Lun Mar 13, 2006 16:07    Sujet du message: Problème tables reliées phpmyadmin

e-kiwi a écrit:
et opter pour une solution genre Oscommerce ca te branches pas ? ca ira plus vite je penses Smile


Ca ira sans doute plus vite, mais j'essaye de faire par moi-même Wink

J'ai déjà pris 4 mois pour apprendre le xhtml et le css

Maintenant pour avoir un résultat plus pro, j'ai besoin d'avoir un site dynamique entièrement personnalisé, fonctionnant avec des bases de données.

Ca ne me parait pas excessivement compliqué, le bouquin est plutôt bien fait, je procède étape par étape, création des bases, habillage graphique, création de classe_boutique, etc.

Mais bien entendu, à peine commencé, déjà une question...

Je me dis que ce problème de tables reliées peut provenir de mon fichier config.inc.php, mais je n'ai aucune certitude Rolling Eyes
 
pp51
e-kiwi
Modérateur
Modérateur

Inscrit le: 23 Déc 2003
Messages: 12251
Localisation: Toulouse

URL permanente de ce messagePosté le : Lun Mar 13, 2006 16:14    Sujet du message: Problème tables reliées phpmyadmin

moi je n'ai toujours pas compris ce que tu cherchai à faire en fait. une fois tes tables créées, laisse les telles qu'elles sont, tu fera le reste en php (requetes multi-tables)
 
e-kiwi Visiter le site web du posteur
pp51
WRInaute discret
WRInaute discret

Inscrit le: 26 Aoû 2005
Messages: 86

URL permanente de ce messagePosté le : Lun Mar 13, 2006 16:20    Sujet du message: Problème tables reliées phpmyadmin

e-kiwi a écrit:
moi je n'ai toujours pas compris ce que tu cherchai à faire en fait. une fois tes tables créées, laisse les telles qu'elles sont, tu fera le reste en php (requetes multi-tables)


C'est effectivement ce que je vais faire.

C'est juste cet avertissement "Certaines fonctionnalités ayant trait aux tables reliées sont désactivées" que j'essaye de comprendre.

J'ai vu sur d'autres forums que je ne suis pas le seul, visiblement dans config.inc.php dans le rep de phpmyadmin, il faut configurer la ligne PMA en debut de fichier

Je vais voir ça de ce pas
 
pp51
elmac
Nouveau WRInaute

Inscrit le: 12 Oct 2006
Messages: 1

URL permanente de ce messagePosté le : Jeu Oct 12, 2006 3:30    Sujet du message: Les liens de table, inutiles ???

Oulaaa que vois-je ?
Les liens au sein même d'une base de donnée, inutiles ?
Mouarf ! Je pensais comme vous aussi avant Wink

Et puis j'ai essayé d'autres bases de données que mysql (cadre professionnel) => mssql, oracle, etc.

L'arrivée des liens de tables (appelées aussi contraintes relationnelles) sur mysql est qqch de TRES TRES bien, et en profiter, qqch d'encore mieux Wink

J'explique, et peut-être que certains d'entre vous seront tentés de faire l'essai (Je le conseille même fortement si vous vous lancez dans des projets sérieux de grande envergure...)

1. Une contrainte relationnelle, qu'est-ce que c'est ?
Il s'agit de déclarer un lien entre deux tables, qui devient alors explicite au sein de mysql, et non plus uniquement implicite dans votre tête ou sur une feuille de papier.
Dans le cas d'une base de données avec 2 tables, ok, c'est un peu inutile, mais ca fait toujours propre.
Dans le cas d'une base avec beaucoup de tables, la, ca devient interressant car croyez moi, ca evite des erreurs par la suite.

2. A quoi ca peut servir ?
Trois interets majeurs:

- Permet d'élaborer à coup sur une base avec des ID de tables cohérents entre eux.
Sans contrainte (lien), il est si facile en mysql de définir un id sur une table en smallint, et son id equivalent sur une autre table en mediumint par exemple... Ca ne pose aucun soucis à l'execution... Jusqu'au moment ou BAM un des champs 'explose' et il y a des problemes d'intégrité dans votre base de données...

- Le deuxième, évident, est la contrainte du lien elle-même: si vous déclarez un lien entre deux tables, et que dans votre code (php ou autre) vous faites une requete SQL en reliant deux tables par le mauvais lien 'implicite' (2 ID qui n'auraient rien à voir entre eux), une erreur sera systématiquement retournée, et non pas un mauvais résultat comme ca pourrait arriver autrement.
Encore une fois, si votre base comporte un grand nombre de tables / champs, vous éviterez ainsi les erreurs et le temps de debug à repérer le soucis (d'autant que si vous n'avez pas pris grand soin de bien nommer vos champs (et dieu sait que ca arrive...) la confusion peut vite arriver.

- La troisième, pour moi la plus importante sans doute (car elle simplifiera vos codes de manière très significative ainsi que leur temp d'éxécution du même coup) est les fonctions apportées par ces liens.
Un exemple:
Je déclare deux tables, avec un lien entre elles. Je spécifie au niveau du lien un petit ON DELETE CASCADE, et la, la magie opère. Si vous supprimez dans votre code une donnée d'une des tables, que cette donnée était liée à une autre donnée de la deuxieme table, plus besoin de 'nettoyage' manuel en php, la suppression de la deuxieme donnée, plus liée à rien, se supprimera automatiquement (et bien plus rapidement qu'avec un code php...). D'autres options sont disponibles bien sur, comme la possibilité de remettre un ID à null en cas de suppression de la donnée sur laquelle il porte, etc.

*************************

Alors... oui, c'est peut être un concepte un peu délicat à maitriser, qui nécessite en plus un minimum de logique, mais... dire que c'est inutile et qu'on peut le gérer autrement, ben... c'est dommage Wink
En développement, il y a toujours des moyens de procéder autrement, mais utiliser les objets qui existent et qui sont fait pour ca simplifie beaucoup la vie et rend les codes beaucoup plus clairs, propres, et efficaces.

A vous de voir Wink
 
elmac
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Définitions :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort