Bonjour à toute la communauté.

Je viens de suivre un tuto vidéo sur un site mais je rencontre pas mal d'erreurs et à vrai dire, je ne sais pas par où commencer...
Je suis preneur de toutes les infos et de tous les conseils...
J'ai des erreurs de type 'unexpected public', unexpected ')' etc...

Voici mes fichiers :

index.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
<?php 
	require '_access.php';
?>
<!DOCTYPE html>
<html lang="fr">
<meta charset="utf-8">
<head>
<title></title>
</head>
<body>
 
<header>
	<span id="count"><?= $basket->count(); ?></span>
	<span id="total"><?= number_format($basket->total(),2,',',' '); ?></span>
</header>
 
 
<?php $products = $DB->query('SELECT description,price FROM products'); ?>
<?php foreach ( $products as $product ): ?>
	<table width="500" border="1">
		<tr>
			<td width="400"><?= $product->description; ?></td>
			<td width="75" align="right"><b><?= number_format($product->price,2,',',' '); ?> &euro;</b></td>
			<td width="25" align="center"><a class="addbasket" href="addbasket.php?id=<?= $product->id; ?>">+</a></td>
		</tr>
	</table>
 
<?php endforeach ?>
 
 
<footer>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/addbasket.js"></script>
</footer>
 
</body>
</html>
_access.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
<?php
require 'class.db.php';
require 'class.basket.php';
$DB = new DB();
$basket = new basket($DB);
?>
class.db.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
<?php
class DB{
	private $host = 'localhost';
	private $username = 'root';
	private $password = '';
	private $database = 'dbmysql';
	private $db;
 
	public function __construct($host = null, $username = null, $password = null, $database = null){
		if($host != null){
			$this->host = $host;
			$this->username = $username;
			$this->password = $password;
			$this->database = $database;
		}
		try{
		$this->db = new PDO('mysql:host='.$this->host.';dbname='.$this->database, $this->username, $this->password, 
					  array(
					  	PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8',
					  	PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
					  	));
		}
		catch(PDOException $e){
			die('La connexion &agrave; la base de donn&eacute;e a rencontr&eacute;e une erreur.<br \>Nous faisons notre possible pour r&eacute;tablir la connexion.<br \>Merci pour votre compr&eacute;hension.');
		}
	}
 
	public function query($sql, $data = array()){
		$req=$this->db->prepare($sql);
		$req->execute($data);
		return $req->fetchAll(PDO::FETCH_OBJ);
	}
}
?>
class.basket.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
<?php
////////////////////////////////////////////////////////////////////////////
	class basket{
 
		private $DB;
 
		public function __construct($DB){
			if(!isset($SESSION)){
				session_start();
			}
			if(!isset($_SESSION['basket'])){
				$_SESSION['basket'] = array();
			}
			$this->DB = $DB;
 
			if(isset($_GET['delbasket'])){
				$this->del($_GET['delbasket']);
			}
			if(isset($_POST['basket']['quantity'])){
				$this->recalc();
			}
		}
 
/////////ACTIONS SUR LE DEVIS///////////////////////////////////////////////
 
// AJOUTE addbasket.php
		public function add($product_id){
			if(isset($_SESSION['basket'][$product_id])){
				$_SESSION['basket'][$product_id]++;
			}else{
				$_SESSION['basket'][$product_id] = 1;
			}
		}
 
// SUPPRIME basket.php
		public function del($product_id){
			unset($_SESSION['basket'][$product_id]);
		}
	}
 
// COMPTE basket.php
		public function count(){
			return array_sum($_SESSION['basket']);
		}
 
// RECALCUL basket.php
		public function recalc(){
			foreach($_SESSION['basket'] as $product_id => $quantity){
				if(isset($_POST['basket']['quantity'][$product_id])){
					$_SESSION['basket'][$product_id] = $_POST['basket']['quantity'][$product_id];
				}
			}
		}
 
// TOTAL basket.php
		public function total(){
			$total = 0;
			$ids = array_keys($_SESSION['basket']);
				if(empty($ids)){
					$products = array();
				}else{
					$products = $this->DB->query('SELECT id,price FROM products WHERE id IN ('.implode(',', $ids).')');
				}
			foreach ($products as $product){
				$total += $product->price * $_SESSION['basket'][$product->id];
			}
			return $total;
		}
 
////////////////////////////////////////////////////////////////////////////
?>
addbasket.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<?php
	require '_access.php';
	$json = array('error' => true);
	if(isset($_GET['id'])){
		$product = $DB->query('SELECT id FROM products WHERE id=:id', array('id' => $_GET['id']));
		if(empty($product)){
			$json['message'] = "Vous avez s&eacutelectionn&eacute; un produit inexistant!";
		}
		$basket->add($product[0]->id);
		$json['error'] = false;
		$json['total'] = number_format($basket->total(),2,',',' ');
		$json['count'] = $basket->count();
		$json['message'] = 'Votre choix a bien &eacute;t&eacute; pris en compte pour votre devis!';
	}else{
		$json['message'] = "Vous n&acute;avez pas s&eacutelectionn&eacute; de produit!";
	}
	echo json_encode($json);
?>
basket.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
<?php require '_access.php';?>
 
<?php
	$ids = array_keys($_SESSION['basket']);
	if(empty($ids)){
		$products = array();
	}else{
			$products = $DB->query('SELECT description,price FROM products WHERE id IN ('.implode(',', $ids).')');
	}
	foreach ($products as $product):
?>
 
Votre devis compte <?= $basket->count(); ?> produits :<br \><br \>
<form method="post" action="basket.php">
<table width="500" border="0">
<tr> <!-- ligne 1 -->
    <td align="left" valign="middle">Description du produit</td>
    <td width="25" align="center" valign="middle">Nombre d'heures estim&eacute;(*)</td>
    <td width="100" align="right" valign="middle">Prix TTC en &euro;uros</td>
    <td width="25" align="center" valign="middle"></td>
  </tr>
  <tr> <!-- ligne 2 -->
    <td align="left" valign="middle"><?= $product->description; ?></td>
    <td width="25" align="center" valign="middle"><span class="quantity"><input type="text" name="basket[quantity][<?= $product->id; ?>" value="<?= $_SESSION['basket'][$product->id];?>"></span></td>
    <td width="100" align="right" valign="middle"><b><?= number_format($product->price,2,',',' '); ?> &euro;</b></td>
    <td width="25" align="center" valign="middle"><a href="basket.php?delbasket=<?= $product->id; ?>">-</a></td>
  </tr>
  <tr> <!-- ligne 3 -->
    <td colspan="3" align="right" valign="middle"><h1><?= number_format($basket->total(),2,',',' '); ?> &euro; TTC</h1></td>
  </tr>
</table>
<?php endforeach ?>
<input type="submit" value="Recalculer le devis">
</form>
<a href="index.php">Continuer mon devis</a>
addbasket.js
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
(function($){
 
	$('.addbasket').click(function(event){
		event.preventDefault();
		$.get($(this).attr('href'),{},function(data){
			if(data.error){
				alert(data.message);
			}else{
				if(confirm(data.message + '. Souhaitez-vous consulter votre devis?')){
					location.href = 'basket.php';
				}else{
					$('#total').empty().append(data.total);
					$('#count').empty().append(data.count);
				}
			}
		},'json');
		return false;
	});
 
})(jQuery);
et dbmysql.sql
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
-- phpMyAdmin SQL Dump
-- version 4.1.4
-- http://www.phpmyadmin.net
--
-- Client :  
-- Généré le :  Ven 21 Août 2015
-- Version du serveur :  5.6.15-log
-- Version de PHP :  5.4.24
 
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
 
-- Base de données :  `dbmysql`
--
 
-- --------------------------------------------------------
 
--
-- Structure de la table `products`
--
 
CREATE TABLE IF NOT EXISTS `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `designation` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `description` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `price` float NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=18 ;
 
--
-- Contenu de la table `products`
--
 
INSERT INTO `products` (`id`, `ref`, `description`, `price`) VALUES
(1, 'ref1', 'produit A', 10),
(2, 'ref2', 'produit B', 8);
Ca fait 2 jours que je refait le tutoriel et là je commence à être désespéré :-(
Si quelqu'un peut m'aider ce serait top! Merci d'avance