DBOC - V3.1 [AJAX][PHP5]

Signaler
Messages postés
261
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
-
lara31
Messages postés
2
Date d'inscription
mardi 12 mai 2009
Statut
Membre
Dernière intervention
13 février 2013
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51656-dboc-v3-1-ajax-php5

lara31
Messages postés
2
Date d'inscription
mardi 12 mai 2009
Statut
Membre
Dernière intervention
13 février 2013

merci, cela m'a été utile.
Morphinof
Messages postés
261
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
3
Et voila la 3.1 ! En retard mais j'ai eu beaucoup trop de travail pour la finir plus vite.
Morphinof
Messages postés
261
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
3
Une grosse mise a jour en cours qui va incorporer la generation d'un abstration de base de donnees basee sur PDO ! Hourra enfin ! Et aussi plusieurs correctif sur la generation de certaines fonctions ! Bientot sur Php CS :)
Morphinof
Messages postés
261
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
3
Oui ^^ La fonction load est indispensable pour les fonction pre-implementees car elle y est appelee
cs_Seven
Messages postés
39
Date d'inscription
lundi 15 juillet 2002
Statut
Membre
Dernière intervention
13 juillet 2009

fallait que je coche sur load ! :) avant la generation de des class ! :)
cs_Seven
Messages postés
39
Date d'inscription
lundi 15 juillet 2002
Statut
Membre
Dernière intervention
13 juillet 2009

(juste précision : "self" ici représente le nom de ma table ! c pour la methode "find"
cs_Seven
Messages postés
39
Date d'inscription
lundi 15 juillet 2002
Statut
Membre
Dernière intervention
13 juillet 2009

@Morphinof : ta source est très intéressante, elle me fait gagner beaucoup de temps :), mais j'ai un léger bug`:

Fatal error: Call to undefined method self::load()


la méthode load se trouve où ??? je ne la trouve pas !

je débute ds l'orienté objet !!

merci encore une fois pour ta source !
Morphinof
Messages postés
261
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
3
Oui je la'i corrige aussi en remplacant self par __CLASS_, j'ai egalement corrige la generation de la fonction loadAll par contre pour la fonction getArray() du DBA c'est pas une erreur c'est juste que j'utilise un foreach pour traiter le retour :
foreach ($result as $obj) ou foreach ($result as $index => $obj)
puis dedant if (!$obj == false) pour la derniere ligne du tableau qui contient false :)
genetApt151
Messages postés
30
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
2 avril 2011
1
Et aussi j'ai eu un problème sur les méthodes magics __get et __set
->if (!property_exists(self, $attribute)). je pense que utiliser self dans une méthode non static ne fonctionne pas. il faudrai utiliser $this ou __CLASS__
Morphinof
Messages postés
261
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
3
Merci pour ton retour je vais corriger tout ca :)
genetApt151
Messages postés
30
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
2 avril 2011
1
salut,
j'ai voulu tester ta source, j'ai trouvé une erreur sur la méthode générée loadAll à l'instruction $id = $result[$index][$article];
foreach ($result as $index => $article)
{
$id = $result[$index][$article]; //Illegal offset type ...
$arrayArticle[] = self::load($id);
}

print_r($article) -> Array ( [0] => 35 [id] => 35 ). j'ai l'ai donc remplacé par
$id = $article["id"];

Autre erreur dans DBA.php. les méthodes _getArray(),_getArray() ne sont pas correctes car elles revoient un tableau avec un ligne en trop par rapport à la base de données.

fonctionne pas : while ($result[sizeof($result)]= mysql_fetch_array($this->result)) ;fonctionne : while($r mysql_fetch_array($this->result)) $result[sizeof($result)] $r;
Morphinof
Messages postés
261
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
3
Mise a jour de la source :)
Morphinof
Messages postés
261
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
3
Je vais corriger sa des que je peux ^^
cs_Astalavista
Messages postés
192
Date d'inscription
lundi 24 décembre 2001
Statut
Membre
Dernière intervention
3 février 2010

ligne 265 : $this->class['functions'] .= '\'.$this->'.$field->__get('name').'.\'';

Bon maintenant j'arrête ....
cs_Astalavista
Messages postés
192
Date d'inscription
lundi 24 décembre 2001
Statut
Membre
Dernière intervention
3 février 2010

ligne 134: $this->class['functions'] .= '.\'" AND ';
Morphinof
Messages postés
261
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
3
Aie le copier coller c'est mal ! :D
En fait il reste un endroit ou j'acrit dans la partie constructeur et non dans la partie fonctions :

ligne 242 : $this->class['contruct'] .= '$sql .= \' AND \';';

remplaces 'construct' par 'functions' et sa regle le souci :)
cs_Astalavista
Messages postés
192
Date d'inscription
lundi 24 décembre 2001
Statut
Membre
Dernière intervention
3 février 2010

Ha Ha Ha ...
Je rigole ... Pour de vrai ... Non pas a cause de ta source ... Enfaite, je suis venu sur ce site pour trouver une source dans le genre, et Paf ! je tombe dessus ...
Ta source est très bien en faite ... par contre (comme j'ai l'esprit critique), voila un problème sur le quelle je suis tombé :

class Inventaires
{
# Attributes
private $o_id;
private $e_id;
private $i_nb;
private $i_use;
private $i_pa;
private $i_pv;
[.....]

!! $sql .= ' AND '; # Function "load(primary_keys/first_class_attribute)"
public static function load($o_id,$e_id)
{
!! $sql = 'SELECT * FROM Inventaires WHERE o_id="'.$o_id" AND e_id="'.$e_id.'";';

[.....]

En espérant contribuer à ta source ...
et de voir une release prochainement ...

PS : Je n'ai pas regardé ton code, mais uniquement le résultat ...
Morphinof
Messages postés
261
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
3
Il faut actuelement modifier les information de connection a la base dans inc/class/DBA.php

private $db_host = '127.0.0.1';
private $db_user = 'root';
private $db_pass = '';
private $db_name = 'mysql'; <- Votre base

C'est une Beta il manque encore pas mal de chose desole :)