8725 sujets

Développement web côté serveur, CMS

Pages :
(reprise du message précédent)

ok merci beaucoup, je vais essayer ca mais en faisant une sorte de sauvergarde de ma base. on ne siat jamais.
et je te tiens au courant, j'espere que tu sera dans les parage vers les 14h30 15h.

il est bientot midi, je vais manger.
au fait merci tu m'a vraiment beaucoup aider et je t'en remerci, bon bein a tte a l'heure.

et bonne appetit bien sur . Smiley langue
re salut, deja j'ai essayé d'activé Innodb, pas de menu deroulant dans la fenetre d'admin de easy php.
ensuite j'ai fait quelques recherches, j'ai vu qu'en fait il fallait decommenter certaines lignes dans le fichier de configuration my.ini, c'est ce que j'ai fait mais apres l'enregistrement des changement mon serveur mysql ne veut pu se lancer.

je commence a deseperer. Smiley decu

edit:finalement j'ai ajouter la igne "default-table-type=innodb " dans le fichier my.ini et cela ne marche tj pas. et j'ai du de nouveau decommenter les ligne que javai decommenter pour que mon serveur se relance.
Modifié par alucard67 (23 May 2007 - 16:28)
Euh je dis peut-être une sottise, mais chez moi, lorsque je crée une nouvelle table, dans l'écran qui suit le formulaire de saisie du nom de la nouvelle table et du nombre de champs, je dispose d'un menu déroulant me permettant de sélectionner le "Type de la table", par exemple INNO DB...

Tu cherchais au bon endroit ? Peut-être n'avons-nous pas la même version de PHPMyAdmin (2.6.1 chez moi)/MySQL ?
ecoute jai regarder ps de menu deroulant, j'ai juste un menu deroulant avec
Interclassement:. c'est tout .
a part un e autre ligne avec une erreur je sais pas ce que c'est .
Ah ok, bon, alors on ne peut pas même partir du principe que ton PHPMyAdmin est opérationnel.

En tout cas, je confirme, chez moi, c'est bien lors de la création d'une table que j'ai le choix du type de moteur (c'est logique, puisqu'en SQL MySQL, on mentionne le type de moteur à la fin de l'instruction "CREATE"), et ça se passe dans la page qui suit le choix du nombre de champs et du nom de la table.
Cette seconde page exhibe un formulaire tabulaire de création des colonnes au-dessus de "Commentaires sur la table", "Type de la table" (qui nous intéresse) et "Interclassement"...

Valà, désolé de n'être pas plus utile, bon courage !
c bon j'ai vu. j'ai essayer de creer une nouvel base et je voi ou c'est qu'on peut le changer.
Mais apres ca tu pense que la requete ALTER TABLE marchera?
Post-scriptum : Il y a une solution, en filigrane dans mon dernier message. Il suffirait de créer les tables en SQL pur...

Exemple :


CREATE TABLE auteurs (
  id_auteur tinyint(2) NOT NULL auto_increment,
  nom_auteur varchar(20) NOT NULL default '',
  prenom_auteur varchar(20) NOT NULL default '',
  PRIMARY KEY  (id_auteur)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


Et hop !
Modifié par uGhz (23 May 2007 - 18:01)
ok j'ai virere mes tables en myisam et jai creer les table en ligne de commandes.

pour commencer j'ai plusieurs question:

-est ce que mes tables vont aparaitre dans la page d'administration de MySql?
-voila ce que j'ai fait pour l'instant


	 CREATE TABLE cartes (

  ID_C tinyint(5) NOT NULL auto_increment,

  description varchar(256) NOT NULL default '',

  Serial varchar(250) NOT NULL default '',
  
  HW_Version varchar(256) NOT NULL default '',
  
  SW_Version varchar (256) NOT NULL default '',

  PRIMARY KEY  (ID_E)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


CREATE TABLE equipements (

  ID_E tinyint(5) NOT NULL auto_increment,

  IP varchar(20) NOT NULL default '',

  marque varchar(20) NOT NULL default '',

  nom varchar(20) NOT NULL default '',
  
  PRIMARY KEY  (ID_E)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


CREATE TABLE relation (

  ID_R tinyint(5) NOT NULL auto_increment,

  ID_E ,  <<--------------------------------

  ID_R ,  <<--------------------------------

  PRIMARY KEY  (ID_R)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


voila et je voulai savoir si dans ma table de liaison (table RELATION) je doit pas ajouter des argument aux lignes où j'ai ratouté des fleches?

- et vu qu'on a changer de moteur esque je doi changer ttes mes requetes SQL ?

voila merci d'avance à ceux qui me repondront !!!
mais svp n'attender pas trop Smiley cligne
j'ai pris trop de retard je suis dans la mouise total Smiley sweatdrop merciiiiii
Modifié par alucard67 (24 May 2007 - 09:34)
a écrit :
est ce que mes tables vont aparaitre dans la page d'administration de MySql?


Bien sûr le changement de moteur ne "cache" pas les tables sous phpmyadmin.

a écrit :
et vu qu'on a changer de moteur esque je doi changer ttes mes requetes SQL ?


La réponse est toujours non cela ne change rien.

Concernant ta table Relation (vérifier la syntaxe des foreign key sous MySQL ; pas sûr que ça soit celle là) :


CREATE TABLE relation (
ID_R tinyint(5) NOT NULL auto_increment,
[b]ID_E tinyint(5) NOT NULL,[/b]
[b]ID_R tinyint(5) NOT NULL,[/b]
PRIMARY KEY (ID_R),
[b]FOREIGN KEY (ID_E) REFERENCES equipements(ID_E)[/b],
[b]FOREIGN KEY (ID_C) REFERENCES cartes(ID_C)[/b],
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
biggggre

j'ai l'impression que php reconnais pas la ligne CREATE TABLE parce qu'il me sort une erreur.


Parse error: parse error, unexpected T_STRING in C:\Program Files\EasyPHP 2.0b1\www\ajoutbase.php on line 65


la ligne 65 c'est la ligne de mon preimier CREATE TABLE.

sorais-tu pourquoi??
heu nan mon point virgule est bien là, je te met mon script à partir de la ligne 60.
cela me laisse dubidatif (comme le dirait mon prof de maths)

     mysql_select_db('projet',$db)  or die('Erreur de selection '.mysql_error()); 


	 ///////////////////////////CREATION DES TABLES/////////////////////////////
	 
	 CREATE TABLE cartes (

  ID_C tinyint(5) NOT NULL auto_increment,

  description varchar(256) NOT NULL default '',

  Serial varchar(250) NOT NULL default '',
  
  HW_Version varchar(256) NOT NULL default '',
  
  SW_Version varchar (256) NOT NULL default '',

  PRIMARY KEY  (ID_E)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


CREATE TABLE equipements (

  ID_E tinyint(5) NOT NULL auto_increment,

  IP varchar(20) NOT NULL default '',

  marque varchar(20) NOT NULL default '',

  nom varchar(20) NOT NULL default '',
  
  PRIMARY KEY  (ID_E)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;



CREATE TABLE relation (

ID_R tinyint(5) NOT NULL auto_increment,

ID_E tinyint(5) NOT NULL,

ID_R tinyint(5) NOT NULL,

PRIMARY KEY (ID_R),

FOREIGN KEY (ID_E) REFERENCES equipements(ID_E),

FOREIGN KEY (ID_C) REFERENCES cartes(ID_C),

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


merciiii Smiley smile
Ok, normal cela ne fonctionne pas comme ça (mais là ça dépasse le but de ce forum ; il te manque apparemment des bases fondamentales Smiley decu ). Au lieu de faire ça depuis le PHP, je pense qu'il te sera plus simple de faire un copie/colle de chaque create table sous phpmyadmin Smiley cligne .
ahhhh faut le mettre sur l'executeur de requete sql sous phpmyadmin.
dsl mais pouvais pa savoir .
je suis un pti debutant en fait mon tuteur de stage ma donner un programme en php a fair ou j'y connaissai que dalle.
jai du apprendre par mes propre moyens...
donc je pense que j'ai pas mal de lacunes.
mais les lacunes sont faites pour etre comblées.


EDIT : j'ai un souci pour ce qui est de la derniere table (table relation)

CREATE TABLE relation(

ID_R tinyint( 5 ) NOT NULL AUTO_INCREMENT ,
ID_E tinyint( 5 ) NOT NULL ,
ID_R tinyint( 5 ) NOT NULL ,
PRIMARY KEY ( ID_R ) ,
FOREIGN KEY ( ID_E ) REFERENCES equipements( ID_E ) ,
FOREIGN KEY ( ID_C ) REFERENCES cartes( ID_C ) ,

) ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT =1; <------------



c'est la ligne fleché qui a un souci.
si qqun peut m'aider je crit tout haut que je l'aime. Smiley biggrin
Modifié par alucard67 (24 May 2007 - 10:30)
Je comprend bien Smiley cligne mais tu as choisis le mauvaise endroit pour ce genre de problème. Tu as de la chance que j'intervienne bien que les règles de ce forum sont formelles (il n'est pas à but d'apprentissage depuis 0). Il faudrait peut être que tu changes de lieu (Raphaël dans le message d'intro de cette partie du forum doit indiquer des liens : tutos et forums sur PHP qui à mon avis te seront beaucoup plus utiles et formateurs ...).
c'est gentil a toi d'intervenir quand meme mais je me considere pas comme qqun ki n'y connais rien, j'ai juste du mal avec les nouvelle chose .
et lorsque je cherche sur des sites je me retrouve sur des site incomprhensible.
donc la en dernier recourt je viens sur ce genre de forum.
apres si je fait des erreur sur des choses que je n'ai jamais vu avant , je pense que c'est un peu normal. tu crois pas , bref voila . Smiley decu

edit: si tu pouvais une derniere fois jeter un coup d'oeil à l'avant dernier message stppp ce serai vraiment cool de ta part. Smiley confused
Modifié par alucard67 (24 May 2007 - 10:25)
Attention je n'ai pas dis que tu n'y connaissais rien ce que tu demandes est assez basique concernant l'utilisation couple PHP/MySQL Smiley cligne C'est tout ce que j'ai voulu dire. Et c'est normal, quand on commence on se prend toujours les pieds dans le tapis Smiley smile .

Concernant ton problème, il me semble que la syntaxe pour définir le moteur (InnoDB) est incorrecte. Juste un test pour résoudre le problème :
- créer dans ta base une table bidon en choisissant bien InnoDB en moteur ;
- phpmyadmin génére le code sql et l'affiche récupère cette requête et modifie tes requêtes avec Engine en conséquence ...
Modifié par yodaswii (24 May 2007 - 10:49)
pfff ca commence a m'enerver, j'ai creer une autre table comme tu me la dit , grace a cela j'ai pu creer ma table relation mais sans les foreign key, et ca a marché, ensuite j'ai rajouter les liens grave a alter table, il les a pri en compte.

mais lorsque je lance le programlme , la tabel equipement et cartes se rempli et la table relation reste vierge.
je comprend pu la Smiley bawling

EDIT:
La Bonne syntaxe est la suivante pour les gens qui en aurait besoin un jour!

CREATE TABLE `relation` (
`ID_R` TINYINT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`ID_R` TINYINT( 5 ) NOT NULL ,
`ID_C` TINYINT( 5 ) NOT NULL ,
FOREIGN KEY ( ID_E ) REFERENCES equipements( ID_E ) ,

FOREIGN KEY ( ID_C ) REFERENCES cartes( ID_C ) 
) ENGINE = innodb;

Modifié par alucard67 (24 May 2007 - 11:42)
Bon ben le problème est résolu ... maintenant il s'agit d'un problème d'intégrité référentielle : c'est à dire que pour ajouter un enregistrement dans ta table Relation il faut que l'id de l'équipement existe dans la table Equipement et que l'id de la carte existe dans la table Carte.
bein c'est le cas, lorque je regarde dans la table equipement il y a une ligne (normal vu qu'on a un chassis par adresse ip et par nom), et dans la table cartes jai bien 16 entrées (pour les 16 carte que contient notre chassis).
mais je comprend toujours pas pourquoi le lien n'est pas fait, ça devrait se fair automatiquement? ou faut il entré une ligne de commande supplémentaire.

au fait jte remrcierai jamais assez pour tout jeune homme ! Smiley smile
Modifié par alucard67 (24 May 2007 - 11:46)
Pages :