IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Remplacement et incrémentation [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 65
    Par défaut Remplacement et incrémentation
    Bonjour ou bonsoir,

    Je souhaite mettre en place une petit système de statistiques sur l'un de me sites permettant ainsi de relever un certain nombre d'information par jours et de les enregistrer dans une base de donnée.
    Je souhaite ainsi sauvegarder ces informations par jour (en utilisant un timestamp en clé primaire)

    Voici la structure de ma table :
    date (clé primaire) ++ nb_viewed ++ nb_created

    Et donc je souhaite ajouter/modifier les informations de cette table (donc un champ par jour) avec diverses valeurs. Ne sachant pas si un champ correspondant au jour est crée ou non j'ai donc pensé utiliser "Replace" qui me permettrait de ne pas gérer si il faut faire un "Insert" avant un "Update".
    Voici la requête que je souhaite donc utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    REPLACE INTO statistiques
    (date, nb_viewed, nb_created)
    VALUES
    (1244325600, (nb_viewed+1), (nb_created+1))
    Seulement je souhaite incrémenter mes champs par la même occasion à savoir : si l'enregistrement existe déjà, reprendre l'ancienne valeur et y ajouter 1 dans mon cas. Impossible de trouver une solution pour le faire.

    A chaque fois que j'éxecute cette requête je me retrouve donc avec le champ date à "1244325600" mais les champs nb_viewed et nb_created à 1 alors que je souhaiterais les voirs augmenter contament...

    Merci de votre coup de pouce.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu dois pouvoir faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO statistiques
     (date) VALUES (1244325600)
      ON DUPLICATE KEY UPDATE nb_viewed=nb_viewed+1, nb_created=nb_created+1
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 65
    Par défaut
    J'avais trouvé sur ce site (hier) ce lien avec beaucoup de mal !
    http://www.developpez.net/forums/d26...r-champ-mysql/

    Seulement je ne comprenait pas comment mettre en œuvre les champs... Je viens de tester et ça fonctionne !

    Merci beaucoup à toi !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. commande SED - rechercher et remplacer : faire une incrémentation
    Par gregou2007 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 08/08/2014, 14h51
  2. [RegEx] Remplacer une sous-chaine par une expression incrémentée
    Par krunch dans le forum Langage
    Réponses: 5
    Dernier message: 18/02/2013, 10h23
  3. Réponses: 0
    Dernier message: 04/03/2011, 12h16
  4. remplacement avec incrément regex
    Par van___fanel dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/03/2010, 16h17
  5. Réponses: 7
    Dernier message: 25/04/2008, 22h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo