Bonjour,

J'ai un site sous MVC que j'essaye de mettre en ligne.

J'ai des données stockées dans ma base de données et que j'affiche sur le site via les models/controllers/views du MVC.

En local ça marche nickel, j'ai toutes mes données de la BDD qui s'affichent sur le site (images, texte), en revanche en ligne, quasi tout fonctionne sauf 3 tables qui ne s'affichent pas sur le site (j'ai une page blanche) et j'ai constaté que c'était les 3 seules tables qui n'avaient pas d'images. Toutes les autres qui s'affichent correctement ont une image.

Exemple d'1 des 3 tables qui ne s'affichent pas en ligne :

View index.php :

<div class="titretarif col-lg-4-ml-auto text-center rectangle">

  <p>Tarif de la licence</p>
  <?phpforeach($variablecinq['prixlicence'] as $ligne) {

     ?>>

     <div class="tarif"><p><?= $ligne->cat-prixlicence ?> <?= $ligne->prix_prixlicence ?></p></div><?php } ?>

</div>

Model PrixLicence.php :


class PrixLicence extends Model

{

  var $table="prixlicence";

}

?>

Controller Licence.php :

<?php class Licence extends Controller{

  function index(){

    $tables = Model::load("prixlicence");

     $tableRes['variablecinq']=array("prixlicence"=>$tables->find(Model::connexion()));

     Model::deconnexion();

    $tableRes["variable"]=array('titre'=>'Licence', 'description'=>'Prix des licences');

    $this-> set($tableRes);

    $this->render('index');

  }

 }

?>

Et j'ai remarqué que quand je mets :

    $tableRes["variable"]=array('titre'=>'Licence', 'description'=>'Prix des licences');

    $this-> set($tableRes);

    $this->render('index');

au dessus de :

    $tables = Model::load("prixlicence");

     $tableRes['variablecinq']=array("prixlicence"=>$tables->find(Model::connexion()));

     Model::deconnexion();

la page s'affiche bien mais sans les données de la BDD.

Un exemple de controller qui fonctionne bien :

Controller Boutique.php :

<?php class Boutique extends Controller{

  function index(){

    $tables = Model::load("produit");

    $tableRes['variable']=array("produit"=>$tables->find(Model::connexion(), array('inner'=>'natural join illustration')));

    Model::deconnexion();

    $tableRes["variablee"]=array('titre'=>'Boutique', 'description'=>'Produits du site');

    $this-> set($tableRes);

    $this->render('index');

  }

}
?>

6 réponses


Bonjour,

Est-ce que les données se trouvent bien en base ? Il pourrait être judicieux de vérifier avec un outil comme phpMyAdmin...

Il y a peut être eu un loupé lors du transfert base locale vers base distante, certaines données n'ont peut être pas été exportées d'un côté ou importées de l'autre...

Je commencerais par vérifier si les tables existent bien, et si c'est pas le cas refaire un export puis import des tables en question.

À noté que si il s'agit d'un problème de table manquante, de mon point de vue il n'est pas normal que le Model ne gère pas cette erreur critique en levant une exception.

Robiox
Auteur

Hey,

J'ai regardé sur phpMyAdmin et j'ai bien ma table prixlicence et toutes ses données.

Je me dis que ça vient peut être du controller étant donné que quand je change la position du code ça influe sur l'affichage ou non de la page (sans les données de la base de données) mais je vois pas qu'est-ce que je pourrais changer.

OK... je pense que tu dois avoir des erreurs PHP qui ne s'affiche pas parce que ton site est en ligne et que tu a de ce fait l'affichage des erreurs désactivé, il faudrait eventuellement le réactivé après avoir mis ton site en Maintenance si tu peux le faire.

Est-ce que ta version de PHP en ligne = ta version de PHP en local ? et pour le SGBD ?

Je pense que va devoir faire du debug "pas à pas" en partant de la réception du resultat de la requête jusqu'à l'affichage des données.

Robiox
Auteur

Mon site est hébergé chez OVH, y'a un moyen de le mettre en maintenance autre que rediriger vers une page "Maintenance" via le htaccess ?

Et sinon mon site est en php 7.3 alors qu'en local il était en 8.0 du coup j'ai modif le local en 7.3 mais ça s'affiche toujours donc ça vient pas de ça.

chenage php version 7.4.3

Robiox
Auteur

en 7.4 ça ne fonctionne pas non plus