create_tables avec un champ decimal [Réglé]
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
est-ce que ce code serait correcte ?
Code PHP :
public function create_tables(){ $fields = array( 'id' => array('type' => 'integer', 'length' => 11, 'autoincrement' => true, 'notnull' => 1), 'name' => array('type' => 'string', 'length' => 255, 'notnull' => 1, 'default' => "''"), 'x' => array('type' => 'decimal', 'lenght' => 11, 'scale' => 8, 'notnull' => 1, 'default' => "''"), 'y' => array('type' => 'decimal', 'lenght' => 11, 'scale' => 8, 'notnull' => 1, 'default' => "''"), ); $options = array( 'primary' => array('id'), 'indexes' => array( 'name' => array('type' => 'fulltext', 'fields' => 'name') ), ); PersistenceContext::get_dbms_utils()->create_table(self::$tracks_table, $fields, $options); }
Sachant que le but est surtout de bien avoir 2 champs de type : DECIMAL(11, 8) NOT NULL servant à stocker des position qui peuvent être GPS ou non.
Cordialement, janus57
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement

Si jamais je regarde plus en profondeur
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
je peu tester en modifiant le module news par exemple sans pour autant planter le tout ?
Cordialement, janus57
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
je reviens sur cette question car après test de ce code :
Code PHP :
PHPBoost m'envoie sur les roses en me disant qu'il y a une erreur de syntaxe SQL.
EDIT :
Nettoyé et voir réponse juste en dessous.
Cordialement, janus57
Édité par janus57 Le 15/01/2015 à 14h36
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
non bah finalement cela viens de moi (cela m'apprendra a écrire trop vite avec notepad++ qui essaye de corriger en même temps....)
Solution : 'lenght' => 'length'
Bah oui cela fonctionne mieux quand on écrit correctement....
Donc le code fonctionnel (exemple) :
Code PHP :
Je tiens quand même a préciser que :
Code PHP :
passé sans problème malgré que ce soit mal écrit, voilà pourquoi j'ai remonté les fonctions PHP une a une pour me rendre compte que bah finalement c'était juste mal écrit, mais que cela fonctionné avec certaines valeur (qui a dit bizarre ?).
Cordialement, janus57
Édité par janus57 Le 15/01/2015 à 14h34
AiYori Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre AiYori
- Inscrit le : 23/08/2012
Je poursuis ce thread pour savoir s'il existait un moyen (quelque part dans la documentation ou dans le code) permettant de connaître les types de données disponibles et la façon dont on peut les manipuler.
J'étais justement intéressé pour insérer le type DECIMAL dans un de mes modules, et j'ai compris par ce thread que DECIMAL(M, D) pouvait être obtenu par le code suivant.
Code PHP :
'type' => 'decimal', 'lenght' => M, 'scale' => D
Si je veux insérer d'autres types, comment faire pour savoir comment les manipuler ?
Cordialement,
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
sans trop dire de connerie pratiquement tous les champs SQL (utile pour un site) sont pris en compte, en tout cas PHPBoost utilise DBAL au niveau MySQL, donc perso je me suis basé sur la doc de DBAL.
Cordialement, janus57
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie