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
_access.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,',',' '); ?> €</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>
class.db.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.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 <?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 à la base de donnée a rencontrée une erreur.<br \>Nous faisons notre possible pour rétablir la connexion.<br \>Merci pour votre compréhension.'); } } public function query($sql, $data = array()){ $req=$this->db->prepare($sql); $req->execute($data); return $req->fetchAll(PDO::FETCH_OBJ); } } ?>
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
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; } //////////////////////////////////////////////////////////////////////////// ?>
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 <?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électionné 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 été pris en compte pour votre devis!'; }else{ $json['message'] = "Vous n´avez pas sélectionné de produit!"; } echo json_encode($json); ?>
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
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é(*)</td> <td width="100" align="right" valign="middle">Prix TTC en €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,',',' '); ?> €</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,',',' '); ?> € TTC</h1></td> </tr> </table> <?php endforeach ?> <input type="submit" value="Recalculer le devis"> </form> <a href="index.php">Continuer mon devis</a>
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 (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);
Ca fait 2 jours que je refait le tutoriel et là je commence à être désespéré :-(
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);
Si quelqu'un peut m'aider ce serait top! Merci d'avance
Partager