Incompréhension

Résolu
Pierre_6790 -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, je suis un grand débutant en terme de langage informatique. J'ai créé une base de données sur phpmyadmin via wampserver, le problème est que je ne sais pas comment faire pour la relier (la base de données) à mon code qui est sur sublime text. Si vous pouviez m'éclairer sur le sujet. Merci

3 réponses

  1. Pierre_6790
     
    C'est notamment ici que je requiert ma base de données

    <?php
    
    namespace src\Calendar;
    
    class Events {
    
    	/**
    	 * Récupère les évènements commençant entre 2 dates
    	 * @param \DateTime $start
    	 * @param \DateTime $end
    	 * @return array
    	 */
    
    	public function getEventsBetween (\DateTime $start, \DateTime $end): array {
    		try{
    		$pdo =new PDO('mysql:host=localhost;dbname=calendar', 'root', 'root');
    		$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    		$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);	
    		} catch(PDOException $results) {
    		$sql = "SELECT * FROM events WHERE start BETWEEN '{$start->format('Y-m-d 00:00:00')}' AND '{$end->format('Y-m-d 23:59:59')}'";
    		$statement = $pdo->query($sql);
    		$results = $statement->fetchAll();
    		return $results;
    		}
    	}
    }


    Et cette deuxième partie
    <?php 
    require '../src/Calendar/Month.php';
    require '../src/Calendar/Events.php';
    $events = new Calendar\Events();
    $month = new Calendar\Month($_GET['month'] ?? null, $_GET['year'] ?? null);
    $start = $month->getStartingDay();
    $start = $start->format('N') === '1' ? $start : $month->getStartingDay()->modify('last monday');
    $weeks = $month->getWeeks();
    $end = (clone $start)->modify('+' . (6 + 7 * ($weeks -1)) . 'days');
    $events = $events->getEventsBetween($start, $end);
    ?>
    

    Sur localhost une erreur apparaît et me dit :
    ( ! ) Fatal error: Uncaught Error: Class 'Events' not found in C:\wamp64\www\site\public\index.php on line 19
    ( ! ) Error: Class 'Events' not found in C:\wamp64\www\site\public\index.php on line 19
    Je suppose qu'il y a un problème d'emplacement de fichier.
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      Je me demande si cette discussion ne fait pas double emploi avec une discussion que tu as créée récemment.
      0
    2. Pierre_6790 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Oui j'ai récemment poser une question en lien avec ce code mais c'était encore un autre problème, que je crois avoir pu résoudre à l'aide des informations qu'on m'a données.
      0
    3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Pierre_6790
       
      Il est utile, alors, de marquer l'autre discussion comme résolue.
      Il est possible, également, de remercier celui qui t'a aidé.
      0
    4. Pierre_6790 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      J'allais le faire, une fois que je n'aurais plus de problème afin que je sache si j'avais bel et bien réussi à résoudre cet ancien problème. Mais si vous me dîtes de le faire ce que j'ai correctement dû réaliser ce que l'autre utilisateur m'avait dit de faire.
      0
    5. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      Il est préférable de de partager l'ensemble de ton code, et, pour chaque fichier, de préciser son nom.
      0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,

    Je n'ai pas lu l'intégralité de la discussion .. mais ...

    Si tu utilises les namespace .. tu dois alors avoir un autoloader de class

    Sinon, en faisant le require à la main.. il ne faut pas prefixer par le namespace

    En gros
    require '../src/Calendar/Events.php';
    $events = new Events();
    


    En "namespace"
    use src\Calendar;
    $events = new Events();
    


    De plus.. il ne faut pas mettre le chemin depuis la racine de ton disque C mais seulement depuis la racine de ton site ( je te l'ai déjà dit non ?? )

    Enfin bon.. il serait utile tout de même que tu suives de vraies formations ou tutos (autrement qu'au format vidéo) ...
    Si tu n'apprends pas les "bases" du langages, tu vas être paumé et tu vas devoir quémander de l'aide à chaque ridicule petite difficulté...

    0