Bonsoir,
Lorsque j'appelle une procédure que j'ai créée, depuis php, je n'obtiens pas le même résultat que lorsque j'appelle la même procédure avec les mêmes paramètres depuis la console, et je ne comprends pas pourquoi;
Avec cette procédure :
Je crée [duree * nbplongees_jour] lignes dans ma table subasua_event;
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 DELIMITER $$ CREATE PROCEDURE createEvent(d_e DATE, l_e TEXT, nbpers_e INT, nbpers_mono_e INT, nbplongees_jour INT, duree INT, notes_e TEXT) BEGIN DECLARE i INT DEFAULT 0; DECLARE j INT DEFAULT 1; DECLARE id INT DEFAULT LAST_INSERT_ID(); DECLARE date_e DATE DEFAULT d_e; WHILE i < duree DO SET j = 1; WHILE j <= nbplongees_jour DO INSERT INTO subasua_event VALUES (id, j, date_e, l_e, nbpers_e, nbpers_mono_e, notes_e); SET j = j + 1; END WHILE; SET date_e = INTERVAL 1 DAY + date_e; SET i = i + 1; END WHILE; END$$
Le truc étant que je veux conserver le même id d'événement pour toutes les lignes créées, puisqu'il s'agit d'un seul et même événement, pouvant se dérouler sur plusieurs jours et avec éventuellement plusieurs plongées par jour !
Si j'exécute avec par exemple : call createEvent("1990-01-01", "angers", 12, 2, 2, 3, "");
Depuis la Console, j'ai bien l'id qui est toujours identique;
Depuis le Web, en php, avec mysql_query, l'id est incrémenté à chaque ligne et je ne comprends absolument pas pourquoi
P.S : je ne sais pas si cela peut vous être utile mais ma table est déclarée comme ceci :
Une idée quelqu'un ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE TABLE IF NOT EXISTS subasua_event(id_event INT NOT NULL AUTO_INCREMENT, num_plongee INT, date_event DATE, lieu_event TEXT, nbpers_event INT, nbpers_mono_event INT, notes_event TEXT, PRIMARY KEY (id_event, num_plongee, date_event) );
Merci d'avance !
Partager