DBUtil::insertObject
Auteur Sujet

Post 
Bonjour,

je suis en train de créer un module pour la version 0.8 et je peine sur l'ajout d'informations dans la base de donnée:

  1. $obj = array(    'id'        => '', 
  2.                     'uid'        => '2', 
  3.                     'msg'        => 'toto', 
  4.                     'date'       => '2000-01-01'); 
  5.  
  6. $result = DBUtil::insertObject($obj, 'test'); 


voici le code que j'utilise pour insérer des valeurs

id est une clé primaire (int) , uid est un int contenant un n° d'utilisateur, msg est un message, et date contient une date :)

Celà peut-il venir que ce code est situé dans pnajax.php ??


Gilles  ><>°
Données personnelles Accueil

Post 
Un peu tôt pour faire un module 0.8 uniquement (uniquement car inutilisable sans le pnobjlib)...

Mais bon... petit manque d'information... quelle est l'erreur, le message, l'appel api (user ou ajax)... etc.

A suivre...


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
Voir aussi le module ExampleDB dans le SVN ValueAddons pour les exemples.
icon_wink


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
ok, je vais regarder...

je pense toutefois que je devrais y arriver car les autres modules de la 0.8 fonctionnent icon_razz

l'erreur provient de json, mais la boite d'erreur est tellement grande qu'elle déborde de ma fenêtre... je vais regarder ExampleDB !


Gilles  ><>°
Données personnelles Accueil

Post 
Gilles a écrit :

je pense toutefois que je devrais y arriver car les autres modules de la 0.8 fonctionnent icon_razz


Bien évidemment... puisqu'ils ont été fait pour la 0.8. Mais tout module utilisant le pnobjlib, le pnajax et autres ne fonctionnera pas sur les version antérieures... Et comme on en a encore pour quelques mois avant une sortie RC de la 0.8.......

Gilles a écrit :

l'erreur provient de json, mais la boite d'erreur est tellement grande qu'elle déborde de ma fenêtre... je vais regarder ExampleDB !


Possible texte renvoyé au pnajax contenant une erreur de parsing (apostrophe, quillemets, etc).

Good luck ! icon_wink


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
A noter par contre....... garde tout renseignement sous la main. Si tu distribue ton module à titre d'exemple, ça pourrait être utile.

icon_wink


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
Chestnut a écrit :
A noter par contre....... garde tout renseignement sous la main. Si tu distribue ton module à titre d'exemple, ça pourrait être utile.

icon_wink


je comprend pas ce que je doit garder...

Citation :
Bien évidemment... puisqu'ils ont été fait pour la 0.8. Mais tout module utilisant le pnobjlib, le pnajax et autres ne fonctionnera pas sur les version antérieures... Et comme on en a encore pour quelques mois avant une sortie RC de la 0.8.......


je sais... mais je fais un module "spécial ajax", et il me faudra bien les quelques mois pour le finaliser... je dit spécial ajax, car je tente de faire un module de chat sans devoir utiliser du flash ou autre systèmes propriétaires... icon_biggrin


Gilles  ><>°
Données personnelles Accueil

Post 
Voilà le code que j'ai pu trouver dans le module de permissions:

  1.     $obj = array('realm'     => (int)$realm, 
  2.                  'gid'       => (int)$id, 
  3.                  'sequence'  => (int)$newseq, 
  4.                  'component' => $component, 
  5.                  'instance'  => $instance, 
  6.                  'level'     => (int)$level); 
  7.  
  8.     if (!DBUtil::insertObject($obj, 'group_perms', false, 'pid')) { 
  9.         pnSessionSetVar('errormsg', "Error adding group permission"); 
  10.         return false; 
  11.     } 

A partir de celà, j'ai écrit mon code:

  1. function pchat_ajax_addmessage() //ajout d'un message 
  2.     $message['message'] = "message"; 
  3.     $message['uname'] = "gilles"; 
  4.     $message['time'] = "01234567"; 
  5.      
  6.     $message['erreur'] = "aucune"; 
  7.      
  8.     $obj = array('uid'             =>     (int)0, 
  9.                  'msg'           =>     $message['message'], 
  10.                  'timestamp'      =>     (int)$message['time']); 
  11.  
  12.     if (!DBUtil::insertObject($obj, 'pchat',false,'id')) { 
  13.         pnSessionSetVar('errormsg', "Error"); 
  14.     } 
  15.  
  16.     return $message; 


ma base de données est constituée de la manière suivante:
pchat:
id (int) <<- cle primaire
uid (int)
msg (varchar)
timestamp (int)

Quelqu'a-t-il une idée de la manière de faire marcher ce code?


Gilles  ><>°
Données personnelles Accueil

Post 
Dois-je utiliser DBUtil::createTable pour créer la table et ensuite l'utiliser ??


Gilles  ><>°
Données personnelles Accueil

Post 
J'ai fait un screenshoot...

http://gilles.pilloud.free.fr/mesfichiers/shootbugsql.JPG




Gilles  ><>°
Données personnelles Accueil

Post 
Impossible à voir... pas assez d'info...
Ta table, elle existe ou non... le pntable est là ? La table s'appelle bien pchat ? les champs ont le nom et l'alias que tu donnes ?

Car pour l'instant, la seule chose qu'on peut voir est que insertObject ne voit ni les valeurs, ni les champs de table.


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
Citation :
Ta table, elle existe ou non... le pntable est là ? La table s'appelle bien pchat ? les champs ont le nom et l'alias que tu donnes ?


La table existe, je l'ai crée manuellement.

que veux-tu dire par pntable ???

La table s'appelle bien pchat.

Les champs on bien les mêmes noms et le même alias.

je vais essayer de trouver une autre résolution d'ecran pour faire un meilleur screenshoot !


Gilles  ><>°
Données personnelles Accueil

Post 
Sans le fichier pntables.php (voir création d'un module - ExampleDB par exemple), insertObject ne connaît pas la définition de la table...

b-a-ba de la création d'un module. icon_wink


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
Chestnut a écrit :
Sans le fichier pntables.php (voir création d'un module - ExampleDB par exemple), insertObject ne connaît pas la définition de la table...

b-a-ba de la création d'un module. icon_wink

Oups... icon_biggrin

merci !!!

ca devrais aller mieux maintenant, si j'ai pas fait d'autres bourdes !


Gilles  ><>°
Données personnelles Accueil
Post 
OK !

Merci une fois de plus pour ton aide Chestnut !!




Gilles  ><>°
Données personnelles Accueil