Clé Etrangère sous MySql d'EasyPhp

Clé Etrangère sous MySql d'EasyPhp - SQL/NoSQL - Programmation

Marsh Posté le 02-06-2005 à 09:53:32    

J'aurais simplement aimé savoir comment faire pour avoir des clés
 
étarngères dans mes tables avec MySql d'EasyPhp.
 
Je ne comprend pas comment cela peut fonctionner sans.
 


---------------
merci
Reply

Marsh Posté le 02-06-2005 à 09:53:32   

Reply

Marsh Posté le 02-06-2005 à 09:55:11    

Bah si ca peut fonctionner sanas, par exemple si tu as pas besoin de l'intégrité référentielle....sous MySQL il faut que tes tables soient en InnoDB

Reply

Marsh Posté le 02-06-2005 à 10:04:53    

si elles sont en MyISAM il ne peut y avoir d'intégrité fonctionnelle?


---------------
merci
Reply

Marsh Posté le 02-06-2005 à 10:05:23    

Je suis pas certain, mais il me semble que non.

Reply

Marsh Posté le 02-06-2005 à 10:07:30    

si je veux changer de type je suis obligé de supprimer la table et de la recréer avec le bon type?


---------------
merci
Reply

Marsh Posté le 02-06-2005 à 10:08:47    

bah non tu utilise ALTER

Reply

Marsh Posté le 02-06-2005 à 10:12:38    

désolé si je passe pour un empoté mais je n'ai pas encore l'habitude.
Donc ALTER TABLE `Clients` CHANGE MyISAM InnoDB TYPE; ??


---------------
merci
Reply

Marsh Posté le 02-06-2005 à 10:13:45    

Non c'est pas trop ca:
ALTER TABLE 'Clients' TYPE=InnoDB;

Reply

Marsh Posté le 02-06-2005 à 10:14:46    

*


---------------
merci
Reply

Marsh Posté le 02-06-2005 à 10:15:27    

hé non :
Erreur
 
requête SQL :  
 
ALTER TABLE 'Clients' TYPE = InnoDB  
 
MySQL a répondu:
 
 
#1064 - Erreur de syntaxe près de ''Clients' TYPE  = InnoDB' à la ligne 1


---------------
merci
Reply

Marsh Posté le 02-06-2005 à 10:15:27   

Reply

Marsh Posté le 02-06-2005 à 10:18:00    

Bah écoute moi ca marche, tu as quoi comme version de MySQL?
Tu es bien dans la bonne BD?
Tu as plusieurs schémas?

Reply

Marsh Posté le 02-06-2005 à 10:21:33    

Bienvenue à phpMyAdmin 2.5.3  
MySQL 4.0.15-max-debug sur le serveur localhost


---------------
merci
Reply

Marsh Posté le 02-06-2005 à 10:22:42    

Tu as plusieurs Schémas ou pas?

Reply

Marsh Posté le 02-06-2005 à 10:24:45    

désolé mais ou voit-on s'il on a plusieurs schéma?
et qu'est-ce qu'un schéma sous MySql?


---------------
merci
Reply

Marsh Posté le 02-06-2005 à 10:26:34    

Un shéma c'est une base si tu préfére, genre ta table, c'est peut être NomDuSchéma.NomTable....Bah tu devrais le savoir si tu as plusieurs schéma ou pas

Reply

Marsh Posté le 02-06-2005 à 10:31:59    

Je viens d'installer EasyPhp et à l'ouverture de l'administration de PhpMyAdmin il y avait déjà deux tables:test(-) et mysql(6)je les ai laissé car je ne savais pas si elles étaient importantes pour tout le reste vu que dans la table mysql il y a un champs "user" avec un enregistrement, ce qui doit correspondre à ma session.après je dis ca j'en sais rien


---------------
merci
Reply

Marsh Posté le 02-06-2005 à 10:32:58    

Tu as déjà fait du SQL un peu?

Reply

Marsh Posté le 02-06-2005 à 10:35:08    

seulement sous Access et un peu avec Oracle


---------------
merci
Reply

Marsh Posté le 02-06-2005 à 10:36:22    

Bah regarde la doc de MySQL alors

Reply

Marsh Posté le 02-06-2005 à 10:45:20    

alter table client type=INNODB
Sans les ' ' pour le nom de la table

Reply

Marsh Posté le 02-06-2005 à 10:51:35    

mais meme avec les '' ca marche normalement

Reply

Marsh Posté le 02-06-2005 à 10:52:43    

il execute les requetes avec succes mais le type reste MyISAM


---------------
merci
Reply

Marsh Posté le 02-06-2005 à 10:55:26    

cesarr89 a écrit :

mais meme avec les '' ca marche normalement


 
Pas chez moi (v4.1)

Reply

Marsh Posté le 02-06-2005 à 10:56:25    

Je comprends plus, c'est quoi le problème si les requetes sont executées?

Reply

Marsh Posté le 02-06-2005 à 16:36:35    

Hey Guéno tu t'enfou des clé étrangère. Tu peux travailler sans...


Message édité par Spir le 02-06-2005 à 16:37:10
Reply

Marsh Posté le 02-06-2005 à 16:46:53    

Citation :

Hey Guéno tu t'enfou des clé étrangère. Tu peux travailler sans...


en fait cela depend de ton type de db
il faut savoir que innodb ralentit enormemet tout ce qui est fonction d'aggregation
 
il est parfois preferable de gerer l'integrite referentielle dans ton codage logiciel


Message édité par betsamee le 02-06-2005 à 16:47:40
Reply

Marsh Posté le 02-06-2005 à 23:18:14    

Si c'est EasyPHP, y a phpmyadmin d'office qui convertit les tables en INNODB en un seul clic ...
Mais est-ce que EasyPHP gère l'INNODB ?
Pour le gérer, MySQL doit être démarré/configuré avec le gestion INNODB ...

Reply

Marsh Posté le 28-07-2005 à 02:07:13    

c jomu d maroc
 
 
j pense k il fau d abord illiminer l commentaire concerant la configuration d INNODB  
dans l fihcier de configurationd mysql  
é merci

Reply

Marsh Posté le 22-09-2010 à 19:08:44    

Je veux creer un champ en tant que clé etranger sous mysql easyphp1.8 et j'ai changer la table sous innoDB mais j'ai remarquer une abscence de difference entre innoDB et myISAM. j'aimerais avoir la réponse à ce sujet et le plus important c'est comment je vais creer ce champs en tant que clé etranger
 
Merci d'avance

Reply

Marsh Posté le 23-09-2010 à 13:52:45    

avec FOREIGN KEY. MyIsam ne gère pas les clés étrangères, InnoDB, si.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 23-09-2010 à 15:18:14    

Bonjour
Merci rufo.
J'aimerais connaitre comment faire une fonction qui retourne les info d'une région selon son id et comment tester une fonction dans mysql pour voir le resultat de cette fonction car j'ai un essai de cette fonction mais je veux la tester sous sql de mysql
 
merci d'avance pour l'aide

Reply

Marsh Posté le 23-09-2010 à 15:23:20    

ben t'apprends le SQL (en particulier la clause SELEC... FROM...WHERE + les jointures du style INNER JOIN ou LEFT JOIN) :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 23-09-2010 à 21:52:12    

Bonjour
 
c'est ça la fonction. elle ne marche pas. je veux savoir pourquoi et comment je peut la rendre retourne resultat car je veux dépasser ce probleme et comment je peut la tester dans sql de mysql de easyphp1.8
public function getRegionById($id)
 {
  $prepare = $this->prepare('SELECT region_id, region_name
  FROM region
  WHERE region_id = "'.$id.'"');
  $prepare->execute();
  $region = $prepare->fetchAll();
 
  return $region;  
 }
 
 
merci

Reply

Marsh Posté le 23-09-2010 à 22:26:49    

ça ressemble à une requête préparée via la lib PDO. Faut activer cette lib dans le php.ini. Mais si tu ne donnes pas plus de détail sur ce qui ne fonctionne pas (genre, un message d'erreur), ça va être dur de t'aider :/
 
ps : à la vue de ton post, j'imagine que le français n'est pas ta langue maternelle?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 24-09-2010 à 11:48:53    

Bonjour,
 
oui, cette requete preparée via la lib PDO, et j'ai l'activer déjà, j'ai pas message d'erreur mais le but de mon travail c'est de faire une liste liée pour les champs region, departement et ville la premiere fonction retourne la liste des regions de france existant dans la base de donnée et cette deuxieme fonction c'est  d'afficher les info d'une region selon son id. elle ne retourne pas resultat et si je choisi (dans le formulaire) une region, le champ departement reste vide aucune valeur n'est affiché et bien sûr même pour le champ ville. je veux avoir une solution.
Merci de me répondre

Reply

Marsh Posté le 24-09-2010 à 11:54:21    

Ben si tu veux la liste de toutes les régions, la requête SQL c'est :
SELECT region_id, region_name FROM region ORDER BY region_name
 
Pour le reste, vu que tu donnes même pas le MCD, ni code source un peu plus complet, ça va être dur de t'aider plus :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 24-09-2010 à 12:10:22    

souadsouad a écrit :


public function getRegionById($id)
 {
  $prepare = $this->prepare('SELECT region_id, region_name
  FROM region
  WHERE region_id = "'.$id.'"');
  $prepare->execute();
  $region = $prepare->fetchAll();
 
  return $region;  
 }


à quoi ça sert de faire un prepare pour ne pas s'en servir ?

Code :
  1. $prepare = $this->prepare('SELECT region_id, region_name
  2.         FROM region
  3.         WHERE region_id = :id');
  4.         $prepare->execute(array('id' => $id));
  5.         $region = $prepare->fetchAll();
  6.  
  7.         return $region;


Reply

Marsh Posté le 24-09-2010 à 12:14:38    

Merci,
Je veux pas la requete d'affichage de liste de toute les regions, j'ai une fonction dans la quelle la requete existe et cette fonction renvoi résultat car lors de mon test j'ai un champ region qui contient la liste des regions qui sont stocké dans la base mais mon probleme c'est que le champ departement et le champ ville sont toujours vide et mon but c'est que lorsque je choisie dans le formulaire une region dans ma liste déroulante le champ departement se charge selon la region que j'ai selectionnée et lors du choix d'un departement je doit avoir la liste des ville de ce departement choisi.  
la premiere fonction qui renvoi la liste des regions marche mais cette fonction pour que je peut avoir la liste des departements correspondant à une region choisi ne retourne pas valeur. s'il y a une chose qui n'est pas clair me dite
merci

Reply

Marsh Posté le 24-09-2010 à 12:58:12    

prepare donne le plus possible de puissance et de flexibilité pour l'exécution d'une requete. on l'utilise par exemple pour plus qu'une simple requète d'égalité et dans notre exemple $region c'est un tableau

Reply

Marsh Posté le 24-09-2010 à 13:27:55    

Ce qu'il voulait dire c'est que getRegionById() contient des fonctions du type "requête préparée" mais qu'en fait, elle ne s'en sert pas et fonctionne comme une requête SQL classique (l'ID est passé direct dans la requête et non en tant que paramètre de celle-ci :/
 
Pour ton pb, a mon avis, ça va se résoudre avec du Ajax : quand tu sélectionne une région dans la liste déroulante, une requête httprequest est envoyé au serveur et récupère les départements de la région sélectionnée. Même chose quand tu sélectionnes un département pour récupérer les villes...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed