Différences à l'exécution entre la console et le web
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 :
Code:
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$$ |
Je crée [duree * nbplongees_jour] lignes dans ma table subasua_event;
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 :calim2:
P.S : je ne sais pas si cela peut vous être utile mais ma table est déclarée comme ceci :
Code:
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)
); |
Une idée quelqu'un ?
Merci d'avance !