Nouveau n° ID différent [Résolu], Créer une location avec ID différent d'un nbre d'une autre t |
Bienvenue invité ( Connexion | Inscription )
Nouveau n° ID différent [Résolu], Créer une location avec ID différent d'un nbre d'une autre t |
15 Oct 2020, 16:39
Message
#1
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 1 045 Inscrit : 7 Sep 2003 Lieu : Monsempron-Libos (47) Membre no 9 439 |
Bonjour à tous.
Une autre demande d’aide en php d’un vieux de la vieille (69 ans) qui s’efforce d’entretenir ses méninges. Bien sûr, respectant les membres de MacBidouille, j’ai d’abord cherché une solution avec l’aide d’internet mais pas de réponse satisfaisante et précise. Donc voilà la situation : Une table nommée ‘locations’ Des tables (une vingtaine) contenant des renseignements et historiques (genre historique des quittances de l’année) concernant les locations. Dans ces tables, les différentes locations sont identifiées par leur id de la table ‘locations’ dans une colonne (rubrique) appelée id_location. J’ai regroupé dans une table ‘id_ne_pas_prendre’ tous les id_locations des autres tables. Quand je crée une nouvelle location, je ne veux pas que son id soit le même qu’un id_location contenu dans cette table ‘id_ne_pas_prendre’. J’espère avoir été clair. Donc, je n’y arrive pas. Une bonne âme peut-elle m’aider ? Merci d’avance. Ce message a été modifié par Mayol - 17 Oct 2020, 08:05. -------------------- iMac 27" (Mojave 10.14.1) - PowerMac G4-1.250 Ghz Bi (Tiger-Pour Classic- & Leopard) - IMac G5 20"-2 Ghz (Tiger-Pour Classic- & Leopard)- IMac G5 Intel Core i5 27"-2.66GHz (Snow Leopard [10.6.7] & Os 9.03 [Par SheepShaver]).
Imprimantes : Epson EPL6100 (Pour les travaux administratifs) - Xanté AW1200 (pour les stabis A3) - Xerox DC12 et Xerox DC242 (Pour la production) Avez-vous pensé à ce que nous deviendrions sans macbidouille.com ? Non au langage SMS sur internet ! |
|
|
15 Oct 2020, 23:52
Message
#2
|
|
Terminaltor Moderating Machine Groupe : Admin Messages : 24 455 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 |
Non, ce n'est pas très clair… table = tableau (array) ou table de base de données (MySQL?)
Pourquoi une vingtaine d'objets ? il est rare de travailler avec autant de structures de données différentes, il y a peut-être un problème de conception quelque part. -------------------- I think therefore I Mac
|
|
|
16 Oct 2020, 09:13
Message
#3
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 1 045 Inscrit : 7 Sep 2003 Lieu : Monsempron-Libos (47) Membre no 9 439 |
Bonjour schlum.
1- Pardon, c’est une table de base de données (MySQL). 2- Ce sont des données dans des tables qui sont utilisées dans un autre « programme » pour une petite compta : anc_nouv_virements_loyers attestations_assurance (fournie ou pas) ordures_menageres historique_factures (eau si sous-compteur) historique_quittances Etc … En fait c’est un projet que j’ai commencé en 2006 (souvent aidé par MacBidouille, d’ailleurs) Et fait des rajouts constamment. Ne me dit pas qu’il faut que je reprenne tout à zéro. Merci pour m’avoir répondu. -------------------- iMac 27" (Mojave 10.14.1) - PowerMac G4-1.250 Ghz Bi (Tiger-Pour Classic- & Leopard) - IMac G5 20"-2 Ghz (Tiger-Pour Classic- & Leopard)- IMac G5 Intel Core i5 27"-2.66GHz (Snow Leopard [10.6.7] & Os 9.03 [Par SheepShaver]).
Imprimantes : Epson EPL6100 (Pour les travaux administratifs) - Xanté AW1200 (pour les stabis A3) - Xerox DC12 et Xerox DC242 (Pour la production) Avez-vous pensé à ce que nous deviendrions sans macbidouille.com ? Non au langage SMS sur internet ! |
|
|
16 Oct 2020, 10:19
Message
#4
|
|
Terminaltor Moderating Machine Groupe : Admin Messages : 24 455 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 |
Pourquoi l'id de ta table "locations" n'est pas simplement un ID auto-incrémenté ?
https://dev.mysql.com/doc/refman/8.0/en/exa...-increment.html Avoir des tables du genre "id_ne_pas_prendre" n'est pas quelque chose qui se fait habituellement en bases de données. -------------------- I think therefore I Mac
|
|
|
16 Oct 2020, 10:50
Message
#5
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 1 045 Inscrit : 7 Sep 2003 Lieu : Monsempron-Libos (47) Membre no 9 439 |
Il l’est.
Mais je supprime cette location, son id disparait dans la table locations, mais est conservé en genre historique dans les autres tables sous id_location Je crée une nouvelle location, elle risque d’avoir le même id que l’ancienne (ou une autre ancienne) et je me retrouve dans mes tables genre historiques avec un même id_location 2 fois. -------------------- iMac 27" (Mojave 10.14.1) - PowerMac G4-1.250 Ghz Bi (Tiger-Pour Classic- & Leopard) - IMac G5 20"-2 Ghz (Tiger-Pour Classic- & Leopard)- IMac G5 Intel Core i5 27"-2.66GHz (Snow Leopard [10.6.7] & Os 9.03 [Par SheepShaver]).
Imprimantes : Epson EPL6100 (Pour les travaux administratifs) - Xanté AW1200 (pour les stabis A3) - Xerox DC12 et Xerox DC242 (Pour la production) Avez-vous pensé à ce que nous deviendrions sans macbidouille.com ? Non au langage SMS sur internet ! |
|
|
16 Oct 2020, 11:06
Message
#6
|
|
Terminaltor Moderating Machine Groupe : Admin Messages : 24 455 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 |
Non, une clé auto-incrémentée ne reprend jamais la même valeur que celle d'un champ supprimé, ou alors il y a un gros problème de configuration !
Après pour obtenir un ID différent de tous les nombres contenus dans une table, il est possible de faire une requête "SELECT MAX(id)+1 FROM table", mais ici c'est très coûteux et prise de tête pour un problème classique simple. -------------------- I think therefore I Mac
|
|
|
16 Oct 2020, 13:23
Message
#7
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 1 045 Inscrit : 7 Sep 2003 Lieu : Monsempron-Libos (47) Membre no 9 439 |
Tu es en train de me dire que si je supprime une location, que j’en crée une nouvelle bien après, il est impossible que la nouvelle ait le même id que celle supprimée ?
Même après plusieurs années, après des successions de créations et suppressions de locations dans cette table ? Mais où est donc cette mémoire de ……………. mysql ? -------------------- iMac 27" (Mojave 10.14.1) - PowerMac G4-1.250 Ghz Bi (Tiger-Pour Classic- & Leopard) - IMac G5 20"-2 Ghz (Tiger-Pour Classic- & Leopard)- IMac G5 Intel Core i5 27"-2.66GHz (Snow Leopard [10.6.7] & Os 9.03 [Par SheepShaver]).
Imprimantes : Epson EPL6100 (Pour les travaux administratifs) - Xanté AW1200 (pour les stabis A3) - Xerox DC12 et Xerox DC242 (Pour la production) Avez-vous pensé à ce que nous deviendrions sans macbidouille.com ? Non au langage SMS sur internet ! |
|
|
16 Oct 2020, 13:43
Message
#8
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340 |
Les Anglo-saxons disent "on ne peut pas manger son cookie, et l'avoir dans sa poche", nous on dit "on peut pas avoir le beurre et l'argent du beurre", sans parler du sourire de la fermière...
Soit une location est supprimée et elle l'est dans toutes les tables liées, plus d'historique. Soit on ne supprime rien, mais on ajoute une colonne "Statut" de type booléen, ou énuméré {Actif | Inactif}, et une date de l'événement. On ne supprime pas une location, on la désactive. la base de données ne fait que grossir, il faut des traitements intelligents en batch qui vont estimer si une location qui a été désactivée doit être finalement supprimée au bout de x jours/mois/années, avec tous ses liens bien sûr. On oublie pas immédiatement, mais avec le temps... tout s'en va. JP PS : Pour rappel, MySQL est un produit commercial, propriété d'Oracle, soumis à licence, ce n'est pas un SGBD libre. MariaDB est le clone resté libre. Ce message a été modifié par Jaypee - 16 Oct 2020, 13:47. |
|
|
16 Oct 2020, 13:59
Message
#9
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 1 045 Inscrit : 7 Sep 2003 Lieu : Monsempron-Libos (47) Membre no 9 439 |
Bon, j’ai compris.
Donc je continue comme avant (je pensais qu’il existait plus, comment dire, simple ou pro… Je capte tous les id_location existant dans toutes mes tables Je les mets dans cette table « id_locations_a_ne_pas_prendre » Quand je crée une nouvelle location, je capte le + grand « id_location_a_ne_pas_prendre », je rajoute 1 et j’en fait le nouvel id de ma nulle location. Merci pour tout et le rappel concernant la propriété de MySQL. -------------------- iMac 27" (Mojave 10.14.1) - PowerMac G4-1.250 Ghz Bi (Tiger-Pour Classic- & Leopard) - IMac G5 20"-2 Ghz (Tiger-Pour Classic- & Leopard)- IMac G5 Intel Core i5 27"-2.66GHz (Snow Leopard [10.6.7] & Os 9.03 [Par SheepShaver]).
Imprimantes : Epson EPL6100 (Pour les travaux administratifs) - Xanté AW1200 (pour les stabis A3) - Xerox DC12 et Xerox DC242 (Pour la production) Avez-vous pensé à ce que nous deviendrions sans macbidouille.com ? Non au langage SMS sur internet ! |
|
|
16 Oct 2020, 14:04
Message
#10
|
|
Terminaltor Moderating Machine Groupe : Admin Messages : 24 455 Inscrit : 25 Oct 2002 Lieu : Jeumont (59) Membre no 4 319 |
Tu es en train de me dire que si je supprime une location, que j’en crée une nouvelle bien après, il est impossible que la nouvelle ait le même id que celle supprimée ? Même après plusieurs années, après des successions de créations et suppressions de locations dans cette table ? Mais où est donc cette mémoire de ……………. mysql ? Sur une clé auto-incrémentée, oui ; pas besoin d'une mémoire extraordinaire, la table retient juste un entier qui est incrémenté à chaque nouvelle insertion. La table des posts, celle des sujets, celle des membres de ce forum fonctionnent toutes sur ce principe ; heureusement, sinon c'est ingérable ^^ -------------------- I think therefore I Mac
|
|
|
16 Oct 2020, 14:44
Message
#11
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 1 045 Inscrit : 7 Sep 2003 Lieu : Monsempron-Libos (47) Membre no 9 439 |
Ok ! Tout pigé.
Merci les gars. A moi de jouer... -------------------- iMac 27" (Mojave 10.14.1) - PowerMac G4-1.250 Ghz Bi (Tiger-Pour Classic- & Leopard) - IMac G5 20"-2 Ghz (Tiger-Pour Classic- & Leopard)- IMac G5 Intel Core i5 27"-2.66GHz (Snow Leopard [10.6.7] & Os 9.03 [Par SheepShaver]).
Imprimantes : Epson EPL6100 (Pour les travaux administratifs) - Xanté AW1200 (pour les stabis A3) - Xerox DC12 et Xerox DC242 (Pour la production) Avez-vous pensé à ce que nous deviendrions sans macbidouille.com ? Non au langage SMS sur internet ! |
|
|
17 Oct 2020, 01:38
Message
#12
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 648 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Pour moi qui ne parle pas « programmation » mais juste bien français, auto incrémentée était assez parlant, merci.
-------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
Nous sommes le : 10th November 2024 - 19:13 |