[PHP] les relations dans PHPmyAdmin, upload et 1 question...?

Philito

Membre d’élite
Club MacG
21 Février 2003
1 439
91
41
Pichilemu, Chile
www.standuplatino.com
Bonjour à tous,

Ayant utilisé l'ASP par le passé car obligé par mon entreprise, ici j'ai envie de me mettre au PHP de par son caractère gratuit et plus répandu !

Ayant pu installer sans problèmes PHP et mySQL sur mon serveur local ainsi que PHPmyAdmin, j'ai pu commencer à développer une base de données selon mes besoins. Tout d'abord il a fallu activer les relations et déjà là j'ai peiné, finalement ce site-ci m'a beaucoup aidé grace à son pas à pas pour les activer !!!! (pour qui cela pourrait aider un jour)

Ayant créé ma base dans PHPmyAdmin, et ayant créé une relation entre les deux tables, cela m'apparait de façon hyper désordonnée comme ici:



et j'aurais une question pourquoi la liste m'apparait deux fois et dans le désordre le plus aléatoire jamais vu....? pourtant j'ai bien mis dans la table "catégories" afficher le "nom" et lié le champ "catégorie" dans la table "produits" à l'ID de la table "catégorie" et j'aimerais que quand j'affiche les entrées de ma table "produits" s'affiche le "nom" (comme je l'ai spécifié dans la gestion des relations) et non son ID comme c'est le cas actuellement:



Bon cela étant mon premier problème.... bien que non essentiel car je peux afficher un produit selon sa catégorie malgré ce problème !

2° question: j'ai fait d'assez longues recherches sur le web à propos de l'upload de sa base de données au serveur en question.... mon serveur visiblement ne contient pas PHPmyAdmin par défaut mais mySQL et PHP activé. Le mieux serait-il dans un premier temps de dézipper une version de PHPmyadmin sur le serveur et la configurer sur le serveur avec les memes mots de passe que ceux sur ma machine locale....? mais ensuite, lors d'un changement de la base, j'ai saisi le mysql dump, mais je ne comprend pas trop comment cela s'applique ou alors quid de la fonction export.... si quelqu'un pouvait m'expliquer sa manière de faire
(dark t'es là....?)

et dernière question plus technique, comme dans les deux photos plus haut, quelle serait la meilleure manière pour qu'un produit puisse appartenir à deux ou plus catégories, par exemple une carte PCMCIA qui fait office de modem 56k, doit se retrouver dans PCMCIA et dans MODEMS.... quelle serait la meilleure manière de développer ceci avant de commencer de développer plus avant ma base.....???

Merci d'avance pour toutes les réponses que vous pourrez m'apporter et désolé pour la longuer du message, mais je préfères mettre tout dans le même message que d'en créer trois....


 

legritch

Membre d’élite
Club MacG
23 Août 2001
1 047
86
Je ne peux pas répondre à toutes tes questions car étant débutant moi-même, mais je peux au moins te dire ceci : j'ai installé sur le serveur où je fais mon site perso une version de phpmyadmin avec le mot passe/user qui va bien. Dans le phpmyadmin qui tourne sur mon mac en local, je fais un dump de ma base de données et ensuite via l'interface de phpmachin sur le serveur distant j'importe la base sans problèmes.

Evidemment, si tu arrives à avoir le même user/mot de passe en local et sur le serveur c'est génial mais moi je fait autrement : tout mon site est composé au maximum de modules réutilisables, j'ai donc mis dans un fichier include (et un seul) l'access à la base de données avec le nom de la base, le mot de passe et l'utilisateur.

Chaque fois que j'ai besoin d'un accèss à la base de données, je passe par ce fichier. Il me suffit de faire une version de ce fichier pour le serveur distant et une pour la version en local, à chaque nouvelle version du site j'écrase tous les fichiers sauf celui-là.
 

Philito

Membre d’élite
Club MacG
21 Février 2003
1 439
91
41
Pichilemu, Chile
www.standuplatino.com
Bon ben tout d'abord venant d'un liégeois ça fait plaisir.... j'ai habité jusqu'à mes 21 ans à Liège avant de bouger deux ans sur Bruxelles et maintenant je me retrouve au Chili....


Je ne peux pas répondre à toutes tes questions car étant débutant moi-même, mais je peux au moins te dire ceci : j'ai installé sur le serveur où je fais mon site perso une version de phpmyadmin avec le mot passe/user qui va bien. Dans le phpmyadmin qui tourne sur mon mac en local, je fais un dump de ma base de données et ensuite via l'interface de phpmachin sur le serveur distant j'importe la base sans problèmes.

En fait quand on dit un dump, c'est simplement la fonction "exporter" et le SQL qui en ressort le placer dans un requête SQL dans la version phpMyAdmin (pas machin, ça c'est un vrai liégeois....
) et ainsi la base s'exporte en fait....? et pour les mises à jour, simplement supprimer la base avant de l'exporter de nouveau du serveur local je suppose....?

J'ai bon jusque là....?

Evidemment, si tu arrives à avoir le même user/mot de passe en local et sur le serveur c'est génial mais moi je fait autrement : tout mon site est composé au maximum de modules réutilisables, j'ai donc mis dans un fichier include (et un seul) l'access à la base de données avec le nom de la base, le mot de passe et l'utilisateur.

ça après mes longues recherches sur le web, j'avais trouvé quelque chose de similaire, même si l'utilisateur et le mot de passe sont identiques, je crois que ce serait con de s'en passer.... je vais procéder ainsi je crois

Un grand merci déjà pour cette aide précieuse....
bon je commence à saisir l'export de bases de données sous mysql..... je viens de trouver deux pages qui parlent d'un produit avec différentes catégories....mais qui finalement n'expliqunt pas comment procéder pour afficher les produits quand chaque catégorie est appellée..... mais si qq'un a qqch... ce sera également avec plaisir car dans google, en faisant une recherche avec produit+plusieurs+catégories+mysql+phpmyadmin et toutes sortes de vriantes dans le genre, on me parle du produit merveilleux et meilleur de sa catégorie qu'est phpmyadmin, mais peu par rapport à ma recherche initiale....!!!!
donc si quelqu'un sait où je peux trouver un tutoriel ou un sujet parlant de ce problème spécifique ce serait cool....
 

legritch

Membre d’élite
Club MacG
23 Août 2001
1 047
86
Philito a dit:
Bon ben tout d'abord venant d'un liégeois ça fait plaisir.... j'ai habité jusqu'à mes 21 ans à Liège avant de bouger deux ans sur Bruxelles et maintenant je me retrouve au Chili....

Ben, pour être honnête, ça fait 2-3 ans que je n'habite plus la ville mais dans un petit village pas loin de l'aéroport (j'entends pas les avions). C'est pratique : 10 minutes de voiture et je suis à Lîdje et 10 minutes dans l'autre sens et je suis peinard à la campagne...


En fait quand on dit un dump, c'est simplement la fonction "exporter" et le SQL qui en ressort le placer dans un requête SQL dans la version phpMyAdmin (pas machin, ça c'est un vrai liégeois....
) et ainsi la base s'exporte en fait....? et pour les mises à jour, simplement supprimer la base avant de l'exporter de nouveau du serveur local je suppose....?

J'ai bon jusque là....?

En fait, tout ce que j'ai fait jusqu'à présent, c'est recréer la base que j'avais en local avec les quelques données bidons dedans. J'ai donc dans phpchose exporter la base (structure+données) dans un fichier .sql. En ouvrant le fichier, on voit effectivement les commandes pour créer les tables et les données prêtes à être entrées. Dans phptruc coté serveur web, je clique sur l'onglet SQL et j'importe le fichier. Tiens je viens de voir dans type d'exportation : INSERT, UPDATE, REPLACE peut-être des trucs à creuser de ce côté-là pour mettre la base à jour sans tout effacer. J'essayerai demain car ce week-end, en bon gros newbie, j'ai niqué complètement la BDD sur le serveur (kéne affère).



ça après mes longues recherches sur le web, j'avais trouvé quelque chose de similaire, même si l'utilisateur et le mot de passe sont identiques, je crois que ce serait con de s'en passer.... je vais procéder ainsi je crois

Un grand merci déjà pour cette aide précieuse....
bon je commence à saisir l'export de bases de données sous mysql..... je viens de trouver deux pages qui parlent d'un produit avec différentes catégories....mais qui finalement n'expliqunt pas comment procéder pour afficher les produits quand chaque catégorie est appellée..... mais si qq'un a qqch... ce sera également avec plaisir car dans google, en faisant une recherche avec produit+plusieurs+catégories+mysql+phpmyadmin et toutes sortes de vriantes dans le genre, on me parle du produit merveilleux et meilleur de sa catégorie qu'est phpmyadmin, mais peu par rapport à ma recherche initiale....!!!!
donc si quelqu'un sait où je peux trouver un tutoriel ou un sujet parlant de ce problème spécifique ce serait cool....

Alors je vais suivre ce sujet avec attention car tout ça m'intéresse beaucoup.
 

Lio70

Fitzcarraldo de l'IT
Club MacG
16 Janvier 2004
2 394
1 145
50
Cracovie
Philito,

Je ne comprends pas très bien ce que tu as programmé pour obtenir la liste montrée sur le printscreen. MySQL n'est pas à proprement parler une base de données relationnelles. Les relations ne s'effectuent que par les scripts que tu composes (en PHP par exemple). Pourrais-tu donner des précisions?

Jusqu'ici tout ce que je peux dire c'est qu'il vaut mieux utiliser le "dump" SQL pour importer/exporter des données car l'excellent phpMyAdmin gère correctement les caractères "à risque" tels que les apostrophes (il met des backslash devant pour qu'ils ne soient pas confondus avec des apostrophes "quotes" indiquant la limite d'un champ de données, par exemple).

Il y a une autre fonction d'importation qui porte sur des fichiers CSV mais je la déconseille car il faut pour cela que tu prépares correctement ce fichier avec toutes les contraintes que cela implique (dont cette fameuse histoire de quotes entre autres). De plus, sur un site web, tu risques de ne pas pouvoir utiliser cette fonction, à savoir "LOAD DATA" ou "LOAD DATA LOCAL" car elle est souvent désactivée par l'hébergeur pour des raisons de sécurité.

Bref, si tu m'en dis plus sur la structure de ta base de données, je veux bien essayer de t'aider. Peut-être pourrais-tu faire un "dump" de ta database (ou d'une partie de celle-ci) et me l'envoyer par mail pour que je l'examine si tes données ne sont pas confidentielles, ou bien le fichier PHP établissant la relation entre les tables...

 

plumber

Membre confirmé
15 Janvier 2003
473
0
Je ne comprends pas très bien ce que tu as programmé pour obtenir la liste montrée sur le printscreen. MySQL n'est pas à proprement parler une base de données relationnelles. Les relations ne s'effectuent que par les scripts que tu composes (en PHP par exemple). Pourrais-tu donner des précisions?

c'est vraie mais ca tente a le devenir avec la version 4 cela nous fait
passer a un autre niveau

certain bruit sur la mailing list mysql parle du envie d'implementer
aussi un module pl/sql a mysql qui est a mon sens un des point fort d'oracle pouvoir premacher des executions sql c'est top


fonction, à savoir "LOAD DATA" ou "LOAD DATA LOCAL" car elle est souvent désactivée par l'hébergeur pour des raisons de sécurité.

cela va plus loin le LOAD DATA LOCAL fait partie d'une directive de compilation qui est off par default maintenant

mais un load data n'est q'une requete sql permettant de remplir tel ou tel table

tout ca c'est refaisable rapidement avec un simple script

 

Lio70

Fitzcarraldo de l'IT
Club MacG
16 Janvier 2004
2 394
1 145
50
Cracovie
Merci pour ces précisions. Ah, MySQL n'arrête pas de se renforcer!