salut à tous,
J'ai un gros soucis, que je ne trouve pas !
Quand je fais un update sur ma base de données, qui a trois tables (jouer, stats et stats_010), les mêmes valeurs sont écrites sur toutes les lignes, alors même que je précise l'id.
Voici ma requete sql:
//requete SQL:
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $sql = "SELECT *, DATE_FORMAT(anni, '%d/%m/%Y') as anni FROM joueur INNER JOIN stats ON joueur.id = stats.stats_id INNER JOIN stats_010 ON joueur.id = stats_010.stats_010_id WHERE id = '".$id."' " ; //exécution de la requete: $requete = mysql_query( $sql, $cnx ) or die( mysql_error() );
la requete update:
Code PHP : 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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120 //connection au serveur include ('../includes/inc_connexion.php'); //récupération des valeurs des champs: //nom: $nom = $_POST["nom"] ; //echo 'nom='.$nom; //prenom: $prenom = $_POST["prenom"] ; //echo 'prenom='.$prenom; //poids: $poids = $_POST["poids"] ; //taille: $taille = $_POST["taille"] ; //position: $position = $_POST["position"]; //nationalité: $nat = $_POST["nat"]; //Date anniversaire: $anni = $_POST["anni"] ; //image position: $nom_img = $_POST["nom_img"] ; //au club depuis: $depuis = $_POST["depuis"] ; //etat civil: $ec = $_POST["ec"] ; //saison 08/09 //matchs: $matchs = $_POST["matchs"] ; echo 'matchs='.$matchs; //titulaire: $tit = $_POST["tit"] ; echo 'tit='.$tit; //buts: $buts = $_POST["buts"] ; echo 'buts='.$buts; //passes: $passes = $_POST["passes"] ; echo 'passes='.$passes; //min: $min = $_POST["min"] ; echo 'min='.$min; //mmm: $mmm = $_POST["mmm"] ; echo 'mmm='.$mmm; //cj: $cj = $_POST["cj"] ; echo 'cj='.$cj; //cr: $cr = $_POST["cr"] ; echo 'cr='.$cr; //saison 09/10 //matchs: $matchs_010 = $_POST["matchs_010"] ; echo 'matchs_010='.$matchs_010; //titulaire: $tit_010 = $_POST["tit_010"] ; echo 'tit_010='.$tit_010; //buts: $buts_010 = $_POST["buts_010"] ; echo 'buts_010='.$buts_010; //passes: $passes_010 = $_POST["passes_010"] ; echo 'passes_010='.$passes_010; //min: $min_010 = $_POST["min_010"] ; echo 'min_010='.$min_010; //mmm: $mmm_010 = $_POST["mmm_010"] ; echo 'mmm_010='.$mmm_010; //cj: $cj_010 = $_POST["cj_010"] ; echo 'cj_010='.$cj_010; //cr: $cr_010 = $_POST["cr_010"] ; echo 'cr_010='.$cr_010; //récupération de l'identifiant de la personne: $id = $_POST["id"] ; echo 'id='.$id; //création de la requête SQL: //if ($mon_action =="modifier") //{ $sql = "UPDATE joueur, stats, stats_010 SET nom = '$nom', prenom = '$prenom', nat = '$nat', position = '$position', taille = '$taille', poids = '$poids', ec = '$ec', anni = '$anni', depuis = '$depuis', nom_img = '$nom_img', matchs = '$matchs', tit = '$tit', buts = '$buts', passes = '$passes', min = '$min', mmm = '$mmm', cj = '$cj', cr = '$cr', matchs_010 = '$matchs_010', tit_010 = '$tit_010', buts_010 = '$buts_010', passes_010 = '$passes_010', min_010 = '$min_010', mmm_010 = '$mmm_010', cj_010 = '$cj_010', cr_010 = '$cr_010' WHERE id = '$id' " ; //exécution de la requête SQL: $requete = mysql_query($sql, $cnx) or die( mysql_error()); //} //affichage des résultats, pour savoir si la modification a marchée: if($requete) { echo("La modification à été correctement effectuée") ; } else { echo("La modification à échouée") ; } ?>
et la base de nonnées avec mes tables:
-- Serveur: localhost
-- Généré le : Mar 18 Août 2009 à 18:33
-- Version du serveur: 5.1.30
-- Version de PHP: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Base de données: `ma_base`
--
-- --------------------------------------------------------
--
-- Structure de la table `joueur`
--
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 CREATE TABLE `joueur` ( `id` tinyint(4) NOT NULL AUTO_INCREMENT, `nom` text, `prenom` text, `anni` date DEFAULT NULL, `nat` text, `nom_img` varchar(25) DEFAULT NULL, `extension` varchar(25) DEFAULT NULL, `position` varchar(20) DEFAULT NULL, `taille` varchar(10) DEFAULT NULL, `poids` varchar(10) DEFAULT NULL, `ec` varchar(25) DEFAULT NULL, `depuis` varchar(25) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=40 ;
--
-- Contenu de la table `joueur`
--
Code SQL : 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 INSERT INTO `joueur` (`id`, `nom`, `prenom`, `anni`, `nat`, `nom_img`, `extension`, `position`, `taille`, `poids`, `ec`, `depuis`) VALUES (1, 'JERONIMO', 'Valter ', '1980-03-15', 'SUI', 'pos1', 'gif', 'Gardien', '176 cm', '74 Kg', 'Célibataire', '2001-2002'), (2, 'HOFMANN', 'Philippe', '1982-06-26', 'SUI', 'pos4', 'gif', 'Attaquant', '189 cm', '81', 'Célibataire', '2006-2007'), (3, 'LIMERES CANEDA', 'Manuel', '1979-10-06', 'ESP', 'pos2', '', 'Défenseur', '172 cm', '64', 'Célibataire', ''), (4, 'VAZQUEZ', 'David', '1981-04-16', 'ESP', 'pos3', '', 'Milieu', '', '0', 'Célibataire', '2006-2007'), (5, 'CASTANHEIRA DOS SANTOS', 'Luis', '1978-07-05', 'POR', 'pos1', '', 'Gardien', '175 cm', '82', 'Marié', '2007-2008'), (10, 'STANCA', 'Daniele', '1985-11-18', 'ITA', 'pos2', '', 'Défenseur', '184 cm', '80 ', 'Célibataire', '2006-2007'), (12, 'POLET', 'Stéphane', '1979-11-25', 'SUI', 'pos2', '', 'Défenseur', '182 cm', '80 ', 'Célibataire', '2004-2005'), (13, 'BEN HAMADI', 'Tarek', '1978-05-20', 'TUN', 'pos3', '', 'Milieu', '182 cm', '76 ', 'Célibataire', '2007-2008'), (14, 'LAGHA', 'Mohamed', '1979-08-06', 'TUN', 'pos3', '', 'Milieu', '', '0', 'Marié', '2006-2007'), (15, 'PASTOR', 'David', '1981-04-23', 'ESP', 'pos3', '', 'Milieu', '183 cm', '65 ', 'Célibataire', '2006-2007'), (16, 'BARTOLINI', 'Ivan Simon', '1968-10-29', 'ITA', 'pos3', '', 'Milieu', '178 cm', '65 ', '', '2007-2008'), (17, 'BARTOLINI', 'Stefano', '1977-11-15', 'ITA', 'pos4', '', 'Attaquant', '185 cm', '0', 'Célibataire', '2004-2005'), (18, 'SALCUNI', 'David', '1983-06-10', 'SUI', 'pos2', '', 'Défenseur', '182 cm', '73 ', 'Célibataire', '2007-2008'), (19, 'STOPPONI', 'Roland', '1980-04-19', 'SUI', 'pos2', '', 'Défenseur', '186 cm', '77', 'Célibataire', '2006-2007'), (20, 'ALOUI', 'Samir', '1980-06-20', 'ESP', 'pos3', '', 'Milieu', '190 cm', '73 ', 'Marié (2 enfants)', '2005-2006'), (21, 'ANIDO MARTINEZ', 'Carlos', '1975-02-14', 'ESP', 'pos2', '', 'Défenseur / Gardien', '', '0', 'Marié (1 enfant)', '1998-1999'), (23, 'COHEN', 'Jonathan', '1980-06-07', 'SUI', 'pos2', '', 'Défenseur', '', '0', 'Célibataire', ''), (24, 'ALVAREZ VAZQUEZ', 'Alberto', '1981-02-27', 'SP', 'pos3', '', 'Milieu', '184 cm', '65 ', 'Célibataire', '2007-2008'), (25, 'BIANCHERI', 'Matthias', '1980-09-13', 'FRA', 'pos3', '', 'Milieu', '180 cm', '79 ', 'Célibataire', '2007-2008'), (27, 'COUSO', 'Daniel', '1987-05-04', 'ESP', 'pos4', '', 'Attaquant', '178 cm', '80 ', 'Célibataire', '2008-2009'), (28, 'APE', 'Giuseppe', '1974-03-01', 'ITA', 'pos2', '', 'Défenseur', '', '0', '', '2008-2009'), (33, 'BIANCANIELLO', 'Angelo Floriano', '1984-04-13', 'ITA', 'pos3', '', 'Milieu', '173 cm', '76 ', 'Célibataire', '2008-2009'), (34, 'GATTO', 'Marco', '1985-04-02', 'ITA', 'pos4', '', 'Attaquant', '', '', 'Célibataire', '2008-2009'), (35, 'CONIDI', 'Sarino', '1985-08-24', 'ITA', 'pos3', '', 'Milieu', '183 cm', '77 ', 'Célibataire', '2008-2009'), (36, 'SILVA', 'Jorge', '1982-05-20', 'POR', 'pos4', '', 'Attaquant', '180 cm', '79 ', 'Célibataire', '2008-2009'), (37, 'PAPEO', 'Ramon', '1970-08-14', '', 'pos1', '', 'Gardien', '178 cm', '100 ', 'Célibataire', ''), (38, 'KNECHT', 'Didier', '1982-07-28', '', 'pos3', '', 'Milieu', '172 cm', '70 ', 'Célibataire (3 enfants)', '2008-2009'), (39, 'SALCUNI', 'Graziano', '0000-00-00', '', 'pos3', '', 'Milieu', '', '', '', '2008-2009');
-- --------------------------------------------------------
--
-- Structure de la table `stats`
--
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 CREATE TABLE `stats` ( `id_stats` tinyint(4) NOT NULL, `matchs` tinyint(4) DEFAULT NULL, `tit` tinyint(4) DEFAULT NULL, `min` mediumint(9) DEFAULT NULL, `mmm` mediumint(9) DEFAULT NULL, `cj` tinyint(4) DEFAULT NULL, `cr` tinyint(4) DEFAULT NULL, `buts` tinyint(4) DEFAULT NULL, `encaisse` varchar(1) DEFAULT NULL, `passes` tinyint(4) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Contenu de la table `stats`
--
Code SQL : 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 INSERT INTO `stats` (`id_stats`, `matchs`, `tit`, `min`, `mmm`, `cj`, `cr`, `buts`, `encaisse`, `passes`) VALUES (1, 6, 1, 254, 43, 0, 0, 0, '', 1), (20, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '-', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '-', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '-', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1), (0, 6, 1, 254, 43, 0, 0, 0, '', 1);
-- --------------------------------------------------------
--
-- Structure de la table `stats_010`
--
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 CREATE TABLE `stats_010` ( `id_stats_010` tinyint(4) NOT NULL, `matchs_010` tinyint(4) DEFAULT NULL, `tit_010` tinyint(4) DEFAULT NULL, `min_010` mediumint(9) DEFAULT NULL, `mmm_010` mediumint(9) DEFAULT NULL, `cj_010` tinyint(4) DEFAULT NULL, `cr_010` tinyint(4) DEFAULT NULL, `buts_010` tinyint(4) DEFAULT NULL, `encaisse_010` varchar(1) DEFAULT NULL, `passes_010` tinyint(4) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Contenu de la table `stats_010`
--
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 INSERT INTO `stats_010` (`id_stats_010`, `matchs_010`, `tit_010`, `min_010`, `mmm_010`, `cj_010`, `cr_010`, `buts_010`, `encaisse_010`, `passes_010`) VALUES (1, 4, 1, 528, 132, 0, 0, 20, '', 5), (20, 4, 1, 528, 132, 0, 0, 20, '', 5);
comme vous voyez, les données sont les mêmes sur toutes les lignes, quand je modifie une ligne, ça prends les modifications en compte, mais ça les écrit sur toutes les lignes !
Partager