Ce que j'essaye de faire est de mettre la colonne de chaque requête d'insertion à la dernière valeur de $i
Je n'ai jamais utilisé un déclencheur dans MySQL auparavant mais je crois que c'est le moyen le plus facile de le faire. Je serais ouvert à d'autres idées et suggestions. En ce moment je:Utiliser un déclencheur MySQL pour mettre à jour tous les champs correspondant à une condition
$i = 1;
foreach($_FILES["upload_project_images"]["name"] as $key => $name) {
$p_image_query = "
delimiter |
CREATE TRIGGER update_start_num BEFORE INSERT ON project_images
FOR EACH ROW
BEGIN
UPDATE `project_images` SET `NEW.i_start_num` = '$i' WHERE `i_project_id` = '$prject_id' AND 'i_type' = '2';
END |
delimiter;
INSERT INTO `project_images` (i_name, i_type, i_project_id,i_start_num) VALUES ('$upload_project_images_name', '2', '$project_id','$i');";
$result=mysql_query($p_image_query) or die(mysql_error());
$i++;
}
L'idée est que i_start_num
va égaler le dernier $i
donc je peux ramasser là quand la mise à jour de la requête.
Ma première idée était d'exécuter une requête après la otherbut qui ne fonctionne pas non plus que j'ai essayé:
$i = 1;
foreach($_FILES["upload_project_images"]["name"] as $key => $name) {
//insert the file data into the database
$p_image_query = "INSERT INTO `project_images` (i_name, i_type, i_project_id,i_start_num) VALUES ('$upload_project_images_name', '2', '$project_id','$i')"
$result=mysql_query($p_image_query) or die(mysql_error());
$i++;
//update the starting image id number on all project images
$p_update_startnum_qry ="UPDATE `project_images` SET `i_start_num` = '$i' WHERE `i_project_id` = '$prject_id' AND 'i_type' = '2'";
$p_update_startnum_qry_result=mysql_query($p_update_startnum_qry) or die(mysql_error());
}
Ce qui a également échoué.
Vous avez une erreur de syntaxe dans votre deuxième exemple. Pourriez-vous expliquer un peu plus sur ce que vous essayez de faire? Dans le deuxième exemple pourquoi mettez-vous à jour après l'insertion? Aussi, si vous incrémentez $ i avant la mise à jour, l'enregistrement que vous venez d'insérer en aura un de moins. –