begin process at 2012 05 28 21:24:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Trucs et astuces

 > 

formation clé primaire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

formation clé primaire

jeudi 3 mars 2005 à 10:00:58 | formation clé primaire

didou8513

Bonjour, J'espère que je vais ètre assez clair sur mon problème car c'est assez difficile à expliquer.

Je possède une base de données oracle et je dois réaliser une application php. Je dois remplir un formulaire concernant des informations sur des entreprises, ces infos doivent alimenter ma base. Pour chaque insertion la clé primaire se forme automatiquement, de la manière suivante : année(yy)+code postal(5 chiffres)+numéro auto(3 chiffres). Je vous donne un exemple : 05+85000+001 ce qui donne 0585000001.

Mon problème est sur le numéro auto. Il doit augmenter si 2 entreprises ont les 7 permiers chiffres identiques. C'est à dire  qu'il est possible d'avoir : 05+85210+001 et 05+85000+001. Si 2 ou même plusieurs entreprises ont les 7 premiers chiffres identiques, il faudrait avoir : 05+85000+001 et 05+85000+002

Voila, désolé si je n'est pas été assez clair, je ne savais pas comment expliquer mon problème. Merci de votre aide
jeudi 3 mars 2005 à 10:31:03 | Re : formation clé primaire

tucsoufle

Réponse acceptée !
salut
il faut que tu test si la valeur est deja prise
si tu a 0585000, tu fait un truc du genre :
$cherche_id = 001;
do
{
  $cherche_id++;
  $id_vide = @mysql_query("SELECT ton_champ FROM ta_table WHERE ton_champ='0585000".
$cherche_id."'");
}
while(false!=($rep = @mysql_fetch_array($id_vide)));

voila, un truc de ce style
@+

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet

jeudi 3 mars 2005 à 10:59:15 | Re : formation clé primaire

didou8513

Salut, tu peux m'expliquer le while je comprends pas trop, merci
jeudi 3 mars 2005 à 11:15:19 | Re : formation clé primaire

tucsoufle

alors, en traduction ca fait,

le do .... while() ca veut dire tant que
donc tant que il y a un resultat a ta requete, tant qu'une ligne est renvoyé
do
{
....
}
while(false!=($rep = @mysql_fetch_array($id_vide)));

tu éxécute ça :
$cherche_id++;
  $id_vide = @mysql_query("SELECT ton_champ FROM ta_table WHERE ton_champ='0585000".
$cherche_id."'");

dés qu'il n'y a pas de resultat, on sort de la boucle et dans $cherche_id, tu a ta nouvelle valeur

donc le false!=($rep = @mysql_fetch_array($id_vide))
ca te dit si il y a un resultat, c'est à dire si l'id est déjà prise

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet

jeudi 3 mars 2005 à 11:22:54 | Re : formation clé primaire

didou8513

Est-ce que tu pourais traduire ton idée avec les fonctions d'oracle ? merci
jeudi 3 mars 2005 à 11:30:05 | Re : formation clé primaire

tucsoufle

désolé je ne connais pas oracle
mais ca doit etre a peut prés équivalent non ?

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet

jeudi 3 mars 2005 à 11:36:43 | Re : formation clé primaire

didou8513

ben non justement, mais c'est pas grave je vais suivre ton raisonnement je vais bien y arriver, merci salut.
jeudi 3 mars 2005 à 13:11:36 | Re : formation clé primaire

Anthomicro

Salut,

une requête dans une boucle ?

t'es en serveur dédié au moins lol

a +


    jeudi 3 mars 2005 à 13:54:38 | Re : formation clé primaire

    tucsoufle

    salut antho !
    pourquoi ca t'etonne ?
    l'accés a la base est vite surchargé tu pense ?
    si oui dans quel proportion ? si tu a fait des tests là dessus, ça m'interesse

    Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
    Mon site Internet

    jeudi 3 mars 2005 à 14:14:42 | Re : formation clé primaire

    Anthomicro

    Bah disons que une requête dans une boucle ça peut très vite surcharger le serveur, donc de toute façon EN GENERAL (parce que tu peux avec une seule requête cramer un serveur si tu veux) moins t'as de requêtes plus c'est rapide....

    Enfin bon y'a tellement de cas particuliers qu'il ne faut pas prendre cet exemple pour une généralité, par exemple avant pour l'affichage de la page d'accueil de mon forum j'utilisais 5 requêtes, maintenant au moins 20, et c'est largement plus rapide, j'ai des temps de génération inférieurs au dixième de seconde chez moi, et sous mon hébergeur aux heures creuses c'est encore plus rapide ;-)



      1 2

      Cette discussion est classée dans : problème, chiffres, clé, entreprises, primaire


      Répondre à ce message

      Sujets en rapport avec ce message

      Triage d'une requete en utilisant la clé primaire [ par hankroyd ] Bonjour j'ai un petit petit problème que je ne parviens pas à résoudre : J'ai une table 'info' avec un champ 'info_cle' (clé primaire), un second 'i Interface Iterator et problème de conception. [ par LocalStone ] Salut à tous, Alors voilà ... Un nouveau post, un nouveau problème ! Mais par contre, on continue avec l'interface Iterator.Pour un projet, j'ai du c Concaténation d'entier pour clé primaire... [ par stevenleferran ] Bonjour, voilà mon problème :- chaque client a un numéro unique (100 pour client A , 200 pour client B...).- pour chaque demande d'un client, lors de changer la valeur de la clé primaire [ par Jejechezpas ] Bonjour, à tousJe cherche à changer la valeur d'une clé primaire tout en contrôlant que la nouvelle valeur n'est pas déjà existanteJ'ai une Table Expl N'êtes vous tous pas suffisamment costaud en PHP ? [ par badjouane ] Pour solutionner mon problème ?Désolé, mais il me fallait un titre accrocheur et provocateur comme celui-la, pour être certain d'obtenir une certaine Comparaison chiffres entre eux [ par Monico9385 ] Bonjour, j'ai un problème et j'ai besoin d'une aide si possible : je voudrai comparer une liste de chiffres et les ressortir par ordre décroissant. J Remettre une clé primaire o u incrémentation a 0 [ par jzeel ] Bonjour a tous, J'ai une table dans une BD dans laquelle j'ai une clé primaire ID qui s'incrémente... présentement je suis arrive a 45 enregistreme Comment mettre à jour une clé primaire en auto_incrémentation ? [ par railyandtiti ] hello !J'ai créé toute une base de donnée MySql sur easyphp, et j'ai un problème :Lorsque je supprime une ligne dans la table "Contacts" avec le code Problème de lien :( [ par Tiriel ] Voilà mon problème je souhaiterais accèdé au détail d'une entreprise, pour cela j'ai créé un tableau contenant tous les noms de mes entreprises sous f Problème d'insertion de clé étrangère [ par samir1988 ] BonjourDans ma base de données, j'ai une table 'temperature' et une table 'enceinte'.Dans la table 'enceinte' j'ai une clé primaire appelée : 'idencei


      Nos sponsors


      Sondage...

      Comparez les prix

      CalendriCode

      Mai 2012
      LMMJVSD
       123456
      78910111213
      14151617181920
      21222324252627
      28293031   

      Consulter la suite du CalendriCode

      A découvrir



       
      Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
      CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
      CodeS-SourceS.com© est une marque déposée tous droits réservés

      Google Coop CodeS-SourceS Google Coop CodeS-SourceS
      Temps d'éxécution de la page : 4,103 sec (3)

      Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales