Salut^^,

au moment ou il faut modifier le view.php dans la video jour 3 28:00min

<h1><?php echo $post->name; ?></h1>
<?php echo $post->content; ?>

j’obtiens cette erreur la

j'ai bau chercher, mais, je ne trouve pas

Merci :)

19 réponses


PuLSor24
Auteur
Réponse acceptée

Oulala ... j'ai tout installer sur un autre machine et la sa fonctionne :s
je ne comprend plus rien du tout.
Enfin, maintenant que cava, cava ^^

PuLSor24
Auteur
Réponse acceptée

Voilà, je viens de tout réinstaller et la sa fonction :)
je me suis remis en 2.1 sur wamp et la sa fonctionne
J'ai remarquer aussi que mes liens beug sur Mozilla mais que sur internet explorer cava, ex:
si je clique sur ma 1er page, il me dirige vers http://localhost//\/pages/view/1
alors que sur internet explorer cava ^^ bizard
Merci

PuLSor24
Auteur

...
j'ai modifier mon model.php

public function find($req){
        $sql = 'SELECT * FROM '.$this->table.' as '.get_class($this).' ';

        // Construction de la condition
        public function find($req){
            $sql = 'SELECT * FROM '.$this->table.' as '.get_class($this).' ';
            if(isset($req'conditions'])){
                $sql .= 'WHERE '.$req'conditions'];
            }else{
                $cond = array(); 
                foreach($req'conditions'] as $k=>$v){
                    if(!is_numeric($v)){
                        $v = '"'.mysql_escape_string($v).'"'; 
                    }

                    $cond] = "$k=$v";
                }
                $sql .= implode(' AND ',$cond);
            }
        }
        $pre = $this->db->prepare($sql);
        $pre->execute();
        return $pre->fetchAll(PDO::FETCH_OBJ);
    }

mais sa me met une erreur : Parse error: syntax error, unexpected T_PUBLIC in C:\wamp\www\core\Model.php on line 48

Quelqu'un a une idée ?

Thx

peux tu montrer l'integralité de ton fichier Model.php ?

PuLSor24
Auteur

Salut Djiins
merci de voler à mon second un 2em foi :)

<?php
class Model{

    static $connections = array(); 
    public $conf = 'default';
    public $table = false; 
    public $db; 
    public function __construct(){
        // Jme connecte à la base
        $conf = Conf::$databases$this->conf];
        if(isset(Model::$connections$this->conf])){
            $this->db = Model::$connections$this->conf];
            return true; 
        }
        try{
            $pdo = new PDO(
                'mysql:host='.$conf'host'].';dbname='.$conf'database'].';',
                $conf'login'],
                $conf'password'],
                array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')
            );
            $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
            Model::$connections$this->conf] = $pdo; 
            $this->db = $pdo; 
        }catch(PDOException $e){
            if(Conf::$debug >= 1){
                die($e->getMessage()); 
            }else{
                die('Impossible de se connecter à la base de donnée'); 
            }
        }

        // J'initialise qques variable
        if($this->table === false){
            $this->table = strtolower(get_class($this)).'s'; 
        }

    }
    public function find($req){
        $sql = 'SELECT * FROM '.$this->table.' as '.get_class($this).' ';

        // Construction de la condition
        public function find($req){
            $sql = 'SELECT * FROM '.$this->table.' as '.get_class($this).' ';
            if(isset($req'conditions'])){
                $sql .= 'WHERE '.$req'conditions'];
            }else{
                $cond = array(); 
                foreach($req'conditions'] as $k=>$v){
                    if(!is_numeric($v)){
                        $v = '"'.mysql_escape_string($v).'"'; 
                    }

                    $cond] = "$k=$v";
                }
                $sql .= implode(' AND ',$cond);
            }
        }
        $pre = $this->db->prepare($sql);
        $pre->execute();
        return $pre->fetchAll(PDO::FETCH_OBJ);
    }
    public function findFirst($req){
        return current($this->find($req)); 
    }

}

lol de rien :)

public function find($req){
        $sql = 'SELECT * FROM '.$this->table.' as '.get_class($this).' ';

}<================================================================================ici
        // Construction de la condition
        public function find($req){
            $sql = 'SELECT * FROM '.$this->table.' as '.get_class($this).' ';
            if(isset($req'conditions'])){
                $sql .= 'WHERE '.$req'conditions'];
            }else{
                $cond = array(); 
                foreach($req'conditions'] as $k=>$v){
                    if(!is_numeric($v)){
                        $v = '"'.mysql_escape_string($v).'"'; 
                    }

                    $cond] = "$k=$v";
                }
                $sql .= implode(' AND ',$cond);
            }

        }

il te manque une accolade pour fermer la fonction find :)

PuLSor24
Auteur

je ne sais pas ce j'ai foutu mais j'ai eu 2 fonction find ^^
Mais j'ai encor le même problème

public function find($req){
        $sql = 'SELECT * FROM '.$this->table.' as '.get_class($this).' ';

        // Construction de la condition
        if(isset($req'conditions'])){
            $sql .= 'WHERE ';
            if(!is_array($req'conditions'])){
                $sql .= $req'conditions']; 
            }else{
                $cond = array(); 
                foreach($req'conditions'] as $k=>$v){
                    if(!is_numeric($v)){
                        $v = '"'.mysql_escape_string($v).'"'; 
                    }

                    $cond] = "$k=$v";
                }
                $sql .= implode(' AND ',$cond);
            }
        }
        $pre = $this->db->prepare($sql); 
        $pre->execute(); 
        return $pre->fetchAll(PDO::FETCH_OBJ); 
    }

tiens je te met le mien qui fonctionne chez moi sans problème regarde si tu as tjrs l'erreur !!

<?php
class Model{
    static $connections=array();
    public $conf ='default';
    public $table =false;
    public $db;
    public function __construct(){
        $conf = Conf::$databases$this->conf];
        if (isset(Model::$connections$this->conf])) {
            $this->db=Model::$connection$this->conf];
            return true;
        }
        try{
        $pdo= new PDO('mysql:host='.$conf'host'].';dbname='.$conf'database'].';',
                    $conf'login'],
                    $conf'password'],
                    array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')
                );
        $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
            Model::$connections$this->conf]=$pdo;
            $this->db=$pdo;
        }catch(PDOException $e){
            if (Conf::$debug>=1) {
                die($e->getMessage());
            }else {
                die('impossible de se connecter a la base de donnée');
            }

        }
            if ($this->table ===false) {
                $this->table =strtolower(get_class($this)).'s';
            }
    }
    public function find($req){
        $sql ='SELECT *FROM '.$this->table.' as ' .get_class($this).' ';
        if (isset($req'conditions'])) {
            $sql.='WHERE ';
            if (!is_array($req'conditions'])) {
                $sql.=$req'conditons'];
            }else{
                $cond=array();
                foreach ($req'conditions'] as $k => $v) {
                    if (!is_numeric($v)) {
                        $v='"'.mysql_escape_string($v).'"';
                    }

                    $cond] = "$k=$v";
                }
                $sql.= implode (' AND ', $cond);
            }
        }

        $pre =$this->db->prepare($sql);
        $pre->execute();
        return $pre->fetchAll(PDO::FETCH_OBJ);
    }

    public function findFirst($req){
        return current($this->find($req));
    }
}

?>
PuLSor24
Auteur

Oui, sa me met même 2 nouvelles erreur
Notice: Undefined index: conditons in C:\wamp\www\core\Model.php on line 44
Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 in C:\wamp\www\core\Model.php on line 62
Notice: Trying to get property of non-object in C:\wamp\www\view\pages\view.php on line 1
Notice: Trying to get property of non-object in C:\wamp\www\view\pages\view.php on line 3

pour mon view.php

<h1><?php echo $post->name; ?></h1>
<?php echo $post->content; ?>

Je ne comprend pas, je met même les sources du prémium, changer pour ma db mais sa ne va pas :s

si tu mets toutes les sources prenium ca ne fonctionne pas non plus ?

moi dans le view j'ai ca

<?php $title_for_layout =$page->name; ?>

<h1><?php echo $page->name; ?></h1>
<p><?php echo $page->content; ?></p>

Généralement on a cette erreur quand on écrit mal la requête SQL.

PuLSor24
Auteur

Oui, j'ai mis tout les source prenium mais sa ne change rien.
J'ai aussi essayé de changer le view, mais sa ne pas l'aire de venir de la

ligne 44 c conditions et pas conditons.... Notice: Undefined index: conditons in C:\wamp\www\core\Model.php on line 44

PuLSor24
Auteur

Oui mais le condition viens de ton code Djiins :)
Au final je reviens sur les même erreurs du début
c-a-d ceux la
Notice: Trying to get property of non-object in C:\wamp\www\view\pages\view.php on line 1
Notice: Trying to get property of non-object in C:\wamp\www\view\pages\view.php on line 3

et la je suis avec le prémium pour temps. :/

tu dois avoir un autre probleme c sur mets toutes les sources prenium normalement ca devrais fonctionner

PuLSor24
Auteur

bin oui, c'est ce que je fais depuis le début, j'utilise les codes prémium mais sa me rajoute quand même des erreurs ..
je sais pas, je comprend pas.

et tu as changé le post par page dans ton view ? au pire desinstall et reinstall wamp pour voir si c pas ton server qui deconne mais j'y crois pas :)

affiche ton controller pour voir ainsi que le dispatcher et fait un screen de ton arborescence parce que la a part ne pas trouver page je ne vois pas ce qui cloche :)

Ravi que ça fonctionne :)