Précédent   Forum des professionnels en informatique > Applications > Projets > Projets hébergés > Archives > PhpMyObject
PhpMyObject Mapper de bases de données écrit en PHP qui transforme les résultats de requêtes SQL en objets (ORM). Le site : http://pmo.developpez.com
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/12/2007, 20h29   #1
Invité régulier
 
Étudiant
Inscription : décembre 2007
Messages : 17
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2007
Messages : 17
Points : 6
Points : 6
Par défaut Bug ? Je suis completement perdu .

Alors j'ai ça :

Code :
Fatal error: Call to undefined method population::initObjectNew() in D:\www\pmo\PMO_core\PMO_MyObject.php on line 44
sachant que le bout de code n'a moi qui fait planter c'est :

Code :
$population = PMO_MyObject::factory("population");
appelant la fonction de PMO:

Code :
1
2
3
4
5
6
public static function factory($tablename){
  $table = new PMO_MyTable($tablename);
  $object = PMO_MyObject::internalfactory($table);
  $object->initObjectNew(1);
return $object;
}
j'utilise PhpMyObject version 0.10

ma population est bien une table de ma bdd
et que le reste du code marche parfaitement par exemple :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
$utilisateur = PMO_MyObject::factory("utilisateur");
$utilisateur->pseudo = $pseudo;
$utilisateur->mail = $mail;
$utilisateur->password = md5($password1);
try
{
	$utilisateur->commit();
}
catch(Exception $e)
{
	die($e->getMessage());
}
Voilou, je suis completement perdu ... Merci de votre aide
aedius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2007, 22h46   #2
Membre habitué
 
Inscription : janvier 2003
Messages : 181
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 181
Points : 114
Points : 114
mouai bizarre, et cette méthode existe initObjectNew() dans PMO_MyObject ?

Est-ce que tu fais appel à cette méthode quelque part dans ton code ? Utilises tu le class loader ?

A la rigueur copie colle la partie pmo concernant ta table population
__________________
PhpMyObject teck leader
http://pmo.developpez.com

La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
code34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2007, 23h02   #3
Invité régulier
 
Étudiant
Inscription : décembre 2007
Messages : 17
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2007
Messages : 17
Points : 6
Points : 6
mouai bizarre, et cette méthode existe initObjectNew() dans PMO_MyObject ?

ouip, mon 3° quote c'est dans PMO_MyObject

Est-ce que tu fais appel à cette méthode quelque part dans ton code ? Utilises tu le class loader ?

Je n'appelle jamais cette méthode directement (je savais pas qu'elle existait) Je n'utilise pas le classe loader

A la rigueur copie colle la partie pmo concernant ta table population

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$population = PMO_MyObject::factory("population");
$population->idVil = $idVil;
$population->idRac = $idRac;
$population->dateNaiss = $date-$i;
$population->homme = $h;
$population->femme = $f;
try
{
	$population->commit();
}
catch(Exception $e)
{
	die($e->getMessage());
}
mais ça plante juste avec :

Code :
PMO_MyObject::factory("population");
moi aussi ça me parait très bizarre ... Surtout que j'utilise exactement la même technique avec d'autre table et ça marche ...

Là en plus on voit que le chemin vers PMO est bon, ensuite le nom de la table semble bon ($tablename) puisqu'on obtient quelquechose ($table) qui a son tour est transformer en ($object) et seulement là, ça marche plus

Code :
1
2
3
	private function initObjectNew($value){
		$this->object_new = $value;
	}
défini dans le même fichier PMO_MyObject.php ... On ne peut donc pas dire que c'est parceque le fichier n'est pas inclu.

reste donc le $this qui ne serait pas du bon type ?
aedius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 08h27   #4
Membre habitué
 
Inscription : janvier 2003
Messages : 181
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 181
Points : 114
Points : 114
heu non ! c'est pas le this !!! c est le private qui devrait être une fonction public !

Citation:
public function initObjectNew($value){
je comprends pas comment ça se fait que t as un private, et comment ça se fait que ça marche pour le reste

Il y a un truc complètement fou (encore made in php). Il faut que je vérifie l'archive de la v 0.10. T'as récupéré les sources sur le cvs ou directement l'archive ?
__________________
PhpMyObject teck leader
http://pmo.developpez.com

La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
code34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 15h27   #5
Invité régulier
 
Étudiant
Inscription : décembre 2007
Messages : 17
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2007
Messages : 17
Points : 6
Points : 6
J'ai mis en public, toujours pareil ...

reste cette fonction qui pourrait posé problême:

Code :
1
2
3
4
5
6
7
8
9
	public static function internalfactory(PMO_Table $table){
		$tablename = $table->getTableName();
		if (class_exists($tablename)){
			$object = new $tablename($table);	
		}else{
			$object = new PMO_MyObject($table);
		}
		return $object;
	}
mais j'ai supprimé la première partie du if puis la 2° ... A chaque fois même résultat création d'une entré pour utilisateur et plantage pour population.

table que j'ai effacé puis réécrite fn d'être sur qu'il n'y avait pas un problême avec un espace au début ou à la fin ...

toujours aucune amélioration ...

"T'as récupéré les sources sur le cvs ou directement l'archive ?" alors ça je sais plus ... J'ai encore un .rar ...
aedius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 15h58   #6
Membre habitué
 
Inscription : janvier 2003
Messages : 181
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 181
Points : 114
Points : 114
je vais regarder le .rar
__________________
PhpMyObject teck leader
http://pmo.developpez.com

La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
code34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 16h02   #7
Invité régulier
 
Étudiant
Inscription : décembre 2007
Messages : 17
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2007
Messages : 17
Points : 6
Points : 6
franchement je suis désolé ...
aedius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 16h03   #8
Membre habitué
 
Inscription : janvier 2003
Messages : 181
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 181
Points : 114
Points : 114
est ce que tu as une classe qui s'appelle population ?
__________________
PhpMyObject teck leader
http://pmo.developpez.com

La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
code34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 16h03   #9
Membre habitué
 
Inscription : janvier 2003
Messages : 181
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 181
Points : 114
Points : 114
Citation:
Envoyé par aedius Voir le message
franchement je suis désolé ...
il y a pas de quoi au contraire c est un plaisr de t aider
__________________
PhpMyObject teck leader
http://pmo.developpez.com

La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
code34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 16h31   #10
Invité régulier
 
Étudiant
Inscription : décembre 2007
Messages : 17
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2007
Messages : 17
Points : 6
Points : 6
Citation:
Envoyé par code34 Voir le message
est ce que tu as une classe qui s'appelle population ?
arggghhhhhhhhh vi XD

je viens de renommé et ça marche c'était ça ...

Merci infiniment !
aedius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 22h08   #11
Membre habitué
 
Inscription : janvier 2003
Messages : 181
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 181
Points : 114
Points : 114
Citation:
Envoyé par aedius Voir le message
arggghhhhhhhhh vi XD

je viens de renommé et ça marche c'était ça ...

Merci infiniment !
C'est clairement un bug lié aux espaces de nomage PMO :/ Dis moi si cela est point bloquant pour toi, si c'est le cas, je ferais un correctif.
__________________
PhpMyObject teck leader
http://pmo.developpez.com

La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
code34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 01h51   #12
Invité régulier
 
Étudiant
Inscription : décembre 2007
Messages : 17
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2007
Messages : 17
Points : 6
Points : 6
non ce n'est pas bloquant ça va ...

Il suffit juste que je le sache car c'est vrai que d'habitude je fais souvent des classes avec les même noms que mes tables.

Je mettrais des diminutifss voilà tout
aedius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 14h40   #13
Membre habitué
 
Inscription : janvier 2003
Messages : 181
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 181
Points : 114
Points : 114
Citation:
Envoyé par aedius Voir le message
non ce n'est pas bloquant ça va ...

Il suffit juste que je le sache car c'est vrai que d'habitude je fais souvent des classes avec les même noms que mes tables.

Je mettrais des diminutifss voilà tout
Je vais quand même intégré ça en correctif dans la prochaine version.
__________________
PhpMyObject teck leader
http://pmo.developpez.com

La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
code34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2007, 01h33   #14
Invité régulier
 
Étudiant
Inscription : décembre 2007
Messages : 17
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2007
Messages : 17
Points : 6
Points : 6
ouki comme tu veus ...

Sinon, j'ai un autre soucis ... plus lourd pour moi utilisateur ...

Code :
1
2
3
4
if ($result['droit']->moderateur == 1)
{
	$smarty->assign('moderateur','oui');
}
plante des que je mets le champs moderateur de la table droit à 0 ... Du coup, jai mis 5 et ça marche ...

J'ai testé, des que j'ai un champs a 0 et que je veus l'exploiter ça plante avec un magnifique :

Code :
Fatal error: Uncaught exception 'Exception' with message 'Error: attribute value is undefine' in D:\www\pmo\PMO_core\PMO_MyObject.php:142 Stack trace: #0 D:\www\code\testlog.php(38): PMO_MyObject->__get('adminJeu') #1 D:\www\accueil.php(12): require_once('D:\www\code\tes...') #2 {main} thrown in D:\www\pmo\PMO_core\PMO_MyObject.php on line 142
Ce qui peut etre génant parceque j'aurais surement des champs à 0 ... Dans d'autres tables et ça c'est sacrément plus bloquant que l'autre.
aedius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2007, 22h12   #15
Membre habitué
 
Inscription : janvier 2003
Messages : 181
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 181
Points : 114
Points : 114
j'arrive pas à reproduire ton bug.

Est ce que tu peux me copier le code que tu utilises ?

Si je comprends bien c'est pas en paramètrant la valeur à 0, c'est en la récupérant que tu as ce message ?
__________________
PhpMyObject teck leader
http://pmo.developpez.com

La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
code34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2007, 14h42   #16
Invité régulier
 
Étudiant
Inscription : décembre 2007
Messages : 17
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2007
Messages : 17
Points : 6
Points : 6
Code :
1
2
3
4
5
6
7
$controler = new PMO_MyController();
	$map = $controler->queryController("SELECT * FROM droit WHERE idUti = '".$_SESSION['idUti']."' ;");
	while($result = $map->fetchMap())
	{
		//un administrateur ne peut etre banni
		if ($result['droit']->adminJeu == 1)
    }
et oui, c'est lorque je récupère la valeur 0 dans $result['droit']->adminJeu que ça plante :/
aedius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2007, 23h10   #17
Membre habitué
 
Inscription : janvier 2003
Messages : 181
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 181
Points : 114
Points : 114
normalement c'est parce que ta colonne adminJeu n'existe pas .
__________________
PhpMyObject teck leader
http://pmo.developpez.com

La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
code34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 00h12   #18
Invité régulier
 
Étudiant
Inscription : décembre 2007
Messages : 17
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2007
Messages : 17
Points : 6
Points : 6
mais pourquoi si je mets '5' par exemple à ce moment là ça marche ? Parceque là ça trouve bien la valeur avec 5 ... Mais si je mets 0, ça trouve pas la colonne ...
aedius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 09h37   #19
Membre habitué
 
Inscription : janvier 2003
Messages : 181
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 181
Points : 114
Points : 114
Citation:
Envoyé par aedius Voir le message
mais pourquoi si je mets '5' par exemple à ce moment là ça marche ? Parceque là ça trouve bien la valeur avec 5 ... Mais si je mets 0, ça trouve pas la colonne ...
En fait, soit ta colonne n'existe pas, soit la valeur est vide au lieu d'être 0. J'ai fais le test avec des colonnes à 0, et je n'ai pas eu le problème. Je réesserais ce soir si tu me confirmes que dans ta colonne, tu as bien la valeur 0, et non un vide.
__________________
PhpMyObject teck leader
http://pmo.developpez.com

La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
code34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h45.


 
 
 
 
Partenaires

Hébergement Web