Bonjour,

je suis sur la réalisation d'une billetterie interne qui permet juste la consultation des offres.

J'ai fait mes tables de manière suivante :
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
 
--
-- Base de données: `test`
--
 
-- --------------------------------------------------------
 
--
-- Structure de la table `activite`
--
 
CREATE TABLE `activite` (
  `idactivite` int(11) NOT NULL AUTO_INCREMENT,
  `nomactivite` varchar(250) NOT NULL,
  PRIMARY KEY (`idactivite`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
 
--
-- Contenu de la table `activite`
--
 
INSERT INTO `activite` VALUES(1, 'eurodisney');
INSERT INTO `activite` VALUES(2, 'parc asterix');
INSERT INTO `activite` VALUES(3, 'piscine');
INSERT INTO `activite` VALUES(4, 'tennis');
 
-- --------------------------------------------------------
 
--
-- Structure de la table `billet`
--
 
CREATE TABLE `billet` (
  `idbillet` int(11) NOT NULL AUTO_INCREMENT,
  `idactivite` int(11) NOT NULL,
  `idhotel` int(11) NOT NULL,
  `idvoyage` int(11) NOT NULL,
  `idoperateur` int(11) NOT NULL,
  `datedebut` date NOT NULL,
  `datefin` date NOT NULL,
  `description` blob NOT NULL,
  `prix` float NOT NULL,
  `reduction` float NOT NULL,
  PRIMARY KEY (`idbillet`),
  KEY `idactivite` (`idactivite`,`idhotel`,`idvoyage`,`idoperateur`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
 
--
-- Contenu de la table `billet`
--
 
 
-- --------------------------------------------------------
 
--
-- Structure de la table `hotel`
--
 
CREATE TABLE `hotel` (
  `idhotel` int(11) NOT NULL AUTO_INCREMENT,
  `nomhotel` varchar(250) NOT NULL,
  PRIMARY KEY (`idhotel`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
 
--
-- Contenu de la table `hotel`
--
 
 
-- --------------------------------------------------------
 
--
-- Structure de la table `operateur`
--
 
CREATE TABLE `operateur` (
  `idoperateur` int(11) NOT NULL AUTO_INCREMENT,
  `nomoperateur` varchar(250) NOT NULL,
  PRIMARY KEY (`idoperateur`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
 
--
-- Contenu de la table `operateur`
--
 
INSERT INTO `operateur` VALUES(1, 'jet tour');
INSERT INTO `operateur` VALUES(2, 'easy jet');
 
-- --------------------------------------------------------
 
--
-- Structure de la table `voyage`
--
 
CREATE TABLE `voyage` (
  `idvoyage` int(11) NOT NULL AUTO_INCREMENT,
  `nomvoyage` varchar(250) NOT NULL,
  PRIMARY KEY (`idvoyage`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
 
--
-- Contenu de la table `voyage`
--
INSERT INTO `activite` VALUES(1, 'egypte');
INSERT INTO `activite` VALUES(2, 'martinique');
le soucis est que lors d'un nouvelle enregistrement il me prend pas le nom de l'activité et me remplis pas mon table billet.

voici le code

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
 
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'user', 'mdp');
mysql_select_db ('base', $base) ;
?>
<html>
<head>
<title>billet</title>
</head>
<body>
<?php
// on teste si les variables du formulaire sont bien déclarées
if (isset($_POST['nomactivite']) &&
isset($_POST['datedebut']) &&
isset($_POST['datefin']) &&
isset($_POST['description']) &&
isset($_POST['prix']) && 
isset($_POST['reduction'])) 
{
 
// on prépare la requête pour récupérer l'id de l'activite
$sql = 'SELECT idactivite FROM activite WHERE nomactivite = "'.$_POST['nomactivite'].'"';
 
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// on récupère le résultat sous forme d'un tableau
$data = mysql_fetch_array($req);
// on libère l'espace mémoire alloué pour cette interrogation de la base
mysql_free_result ($req);
// on insère le tuple (mysql_query) et au cas où, on écrira un petit message d'erreur si la requête ne se passe pas bien (or die)
$sql = 'INSERT INTO billet VALUES(""'.$data['idbillet'].'" ,"'.$data['idactivite'].'" ,"'.$data['idhotel'].'" ,"'.$data['idvoyage'].'" , "'.$data['idoperateur'].'", "'.$_POST[
'datedebut'].'", "'.$_POST['datefin'].'", "'.$_POST['description'].'", "'.$_POST['prix'].'", "'.$_POST['reduction'].'")';
// on insère le tuple (mysql_query) et au cas où, on écrira un petit message d'erreur si la requête ne se passe pas bien (or die)
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on ferme la connexion à la base
mysql_close();
echo 'Nous venons d\'insérer une nouvelle activite : '.$_POST['nomactivite'];
}
else {
echo 'Les variables du formulaire ne sont pas déclarées';
}
?>
</body>
</html>
Merci par avance