Clé Etrangère sous MySql d'EasyPhp - SQL/NoSQL - Programmation
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
Marsh Posté le 02-06-2005 à 10:04:53
si elles sont en MyISAM il ne peut y avoir d'intégrité fonctionnelle?
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?
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; ??
Marsh Posté le 02-06-2005 à 10:13:45
Non c'est pas trop ca:
ALTER TABLE 'Clients' TYPE=InnoDB;
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
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?
Marsh Posté le 02-06-2005 à 10:21:33
Bienvenue à phpMyAdmin 2.5.3
MySQL 4.0.15-max-debug sur le serveur localhost
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?
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
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
Marsh Posté le 02-06-2005 à 10:35:08
seulement sous Access et un peu avec Oracle
Marsh Posté le 02-06-2005 à 10:45:20
alter table client type=INNODB
Sans les ' ' pour le nom de la table
Marsh Posté le 02-06-2005 à 10:52:43
il execute les requetes avec succes mais le type reste MyISAM
Marsh Posté le 02-06-2005 à 10:55:26
ReplyMarsh Posté le 02-06-2005 à 10:56:25
Je comprends plus, c'est quoi le problème si les requetes sont executées?
Marsh Posté le 02-06-2005 à 16:36:35
Hey Guéno tu t'enfou des clé étrangère. Tu peux travailler sans...
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
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 ...
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
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
Marsh Posté le 23-09-2010 à 13:52:45
avec FOREIGN KEY. MyIsam ne gère pas les clés étrangères, InnoDB, si.
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
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)
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
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?
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
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
Marsh Posté le 24-09-2010 à 12:10:22
souadsouad a écrit : |
à quoi ça sert de faire un prepare pour ne pas s'en servir ?
Code :
|
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
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
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...
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