Bonjour,

Voila je rencontre un petit problème avec mon code.

Salut je coince a la fin de de la vidéo 3. mon système de page la premiére et la second page ne s'affiche pas comme dans la video

<?php foreach($pages as $p): ?>
<li><a href="<?php echo BASE_URL.'/pages/view/'.$p->id; ?>" title="<?php echo $p->name; ?>"><?php echo $p->name; ?></a></li>
<?php endforeach; ?>

je comprends pas pourquoi j'espère que vous allez pouvoir me dire ou chercher ou comment trouve l'erreur...
merci avance

Décrivez ici votre code ou ce que vous cherchez à faire
<?php foreach($pages as $p): ?>
<li><a href="<?php echo BASE_URL.'/pages/view/'.$p->id; ?>" title="<?php echo $p->name; ?>"><?php echo $p->name; ?></a></li>
<?php endforeach; ?>
Entourez votre code avec ce symbole

<?php foreach($pages as $p): ?>
    <li><a href="<?php echo BASE_URL.'/pages/view/'.$p->id; ?>"  title="<?php echo $p->name; ?>"><?php echo $p->name; ?></a></li>
<?php endforeach; ?>

Ce que je veux

affiche premiére et la second page sur mon menu

Ce que j'obtiens

Décrivez ici vos erreurs ou ce que vous obtenez à la place de ce que vous attendez :(

7 réponses


Salut @lexis peux tu amener l'erreur SVP ?

Pour info,

<?php echo $p->name; ?>

peut être remplacé par

<?= $p->name; ?>

merci a vous spike_jr et intelligid d'avoir répondu justement je ne pas une erreur qui est debug mais les liens ver la base de donne et de mes différent articles ne donne pas

désole j' ai dû recommence la vidéo lorsque je change post par page comment sur ce code

<?php
class PagesController extends Controller{

    function view($id){
        $this->loadModel('Post');
        $d['page'] = $this->Post->findFirst(array(
            'conditions' => array('id'=>$id,'type'=>'page')
        ));
        if(empty($d['page'])){
            $this->e404("Le serveur proxy présente une erreur, ou l'adresse est incorrecte.");
        }
        $d['pages'] = $this->Post->find(array(
            'conditions' => array('type'=>'page')
        ));
        $this->set($d);
    }

}
?>

et je tonbe sur ça :
Warning: PDOStatement::execute(): SQLSTATE[42S22]: Column not found: 1054 Champ '5ANDtype' inconnu dans where clause in C:\wamp\www\P3\Site\core\Model.php on line 60

<?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::$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 !!!');
            }
        }
        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['conditions'];
            }else{
                $cond = array();
                foreach($req['conditions'] as $k=>$v){
                    if(!is_numeric($v)){
                        $v = '"'.addslashes($v).'"';
                    }
                    $cond[] = "$k=$v";
                }
                $sql .= implode('AND',$cond);
            }

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

    }

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

} 

?>

Regardez bien l'erreur, elle est explicite.
L'erreur viens de là :

 $sql .= implode('AND',$cond);

je vous remercie d'avence pour vos réponces

Carouge10 infiniment mercie pour ton aide