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

SQL Procédural MySQL Discussion :

+1 à une valeur


Sujet :

SQL Procédural MySQL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 51
    Par défaut +1 à une valeur
    bonjour, je ne sais pas si c'est du à cette heure tardive mais j'ai un probleme pour un script php que je suis en trein de programmer :

    je vous explique : je voudrait ajouter 1 (donc fair +1) à la valeur d'un de mes champ donc j'ai fait cela mais ca ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query('UPDATE total SET nombre="+1" ');
    j'ai ensuite fait cela mais sans plus de succès :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $rp = mysql_query("SELECT nombre FROM total");
        $dn = mysql_fetch_array($rp);
     
    	 mysql_query('UPDATE total SET nombre="$dn+1" ');
    Pouvez-vous m'aidez ? merci d'avance

  2. #2
    Membre éprouvé

    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 236
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 236
    Par défaut
    oula, tu as de serieuse lacune pour recuperer des valeurs d'une bases de donnée MySQL en Php.
    Stp, va sur php.net, recherche mysql_fetch_assoc pour avoir quelques exemples. Pour info, cette fonction te renvoie un tableau associatif.

    Sinon pour repondre à ta question, tu veux additionner un nombre par 1 et que fais tu dans ta requete ? Tu additionne 1 par quoi ?

    Reponse :
    update MATABLE set CHAMPS=CHAMPS+1

  3. #3
    Membre éclairé Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Par défaut
    Si tu veux ajouter 1 à la valeur du champ 'nombre' présent dans la table 'total', il te suffit de faire la requête:

    mysql_query('UPDATE total SET nombre = nombre +1 ');

    Cette requête va augmenter de 1 le champ 'nombre' pour TOUTES les lignes de la table 'total'.

    Pour modifier une seule ligne ou un nombre limité de lignes il faut ajouter une clause where.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 51
    Par défaut
    merci pour vos réponce.
    en effet j'ai de sérieuse lacune pour une raison simple c'est mon premier script et il y a pasmal de choses que j'ai du mal à cerner Mais bon c'est en cherchan qu'on trouve et que l'on progresse.
    merci ca marche maintenant mais je suis bloqué à un autre point : peut-on vider les entrées a 00h par exemple ? (une heure fixe)
    je continu à chercher mais si vous avez la réponce sa serait simpa. merci

  5. #5
    Membre éprouvé

    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 236
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 236
    Par défaut
    oui si ton serveur est sur ton poste avec le plannificateur de tache de windows ou crontab sous linux ...

    si ton site est chez un hebergeur, tu as webcron ou cronweb ou un truc dans le genre qui te permet d'executer des commandes à heures fixe

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 51
    Par défaut
    Et il n'y a pas une requete juste car on peut faire cela pour effacer les entré plus vieille que 5min (je ne suis pas sur que sa marche dailleur quand j'ai essayer ce sur mon script...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // ETAPE 2 : on supprime toutes les entrées dont le timestamp est plus vieux que 5 minutes
     
    // On stocke dans une variable le timestamp qu'il était il y a 5 minutes :
    $timestamp_5min = time() - (60 * 5); // 60 * 5 = nombre de secondes écoulées en 5 minutes
    mysql_query('DELETE FROM connectes WHERE timestamp < ' . $timestamp_5min);
    Ne peut-on pas faire un truc dans le genre pour effacer tout ce qui n'est pas de la meme journée ?

  7. #7
    Membre éprouvé

    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 236
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 236
    Par défaut
    tres bien mais comment execute tu ta requete ?

    par l'opération du saint esprit

    tu ira devant pile poile à minuit devant ta machine pour l'executer

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 51
    Par défaut
    ok mais je ne sais pas on ne peut pas faire que la premiere personne qui va afficher le script dans une nouvelle journée (donc après 00h) il y ait une requete qui se fasse et qui supprime les entrés ?

    sinon vous pouvez regardez le code au dessus que j'ai pris sur sdz car moi sa ne marche pas l'entrés ne se supprime pas après 5min d'absence...merci

  9. #9
    Membre éprouvé

    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 236
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 236
    Par défaut
    ok dans ce cas, tu peux executer la requete des le premier utilisateur de la journée.


    sinon ce que tu demandes n'est plus en rapport avec le forum MySQL mais PHP.

    sinon petit conseil, mets ta requete dans une variables et utilise mysql_error() pour voire pourquoi la requete ne s'execute pas.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $query = "delete from connecte where timestamp < " . $timestamp_5min;
    mysql_query ($query) or die (mysql_error()."<br />requete : ".$query);
    quelques liens que je te conseillerai :
    http://uk.php.net/manual/fr/function...etch-assoc.php
    http://uk.php.net/manual/fr/function.mysql-error.php

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 51
    Par défaut
    ok dans ce cas, tu peux executer la requete des le premier utilisateur de la journée.
    Comment je peux faire cela ?

  11. #11
    Membre éprouvé

    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 236
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 236
    Par défaut
    chaque chose en son temps

    1./ il faut dans un premier temps, que tu testes si la requete ne retourne pas d'erreur
    2./ puis apres voire la requte efface bien tous les enregistrements de 0 minutes à -5 minutes en faisant des insersion bidons avec phpmyadmin dans ta table "connecte".

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 51
    Par défaut
    Ok je vien de vérifier la requete ce fait bien et les entrés bidons que j'ai rentré ont été éffacées. enfaite tous marchait très bien merci pour ton aide.

    Maintenant si tu pouvait m'expliquer comment je peux faire que le premier utilisateur de la journé efface les entrées de la veille...
    Enfaite le but est si vous n'avais pas compris de faire un compteur : j'ai déja le "live" et "total" mais je n'arrive pas a faire "today"...

  13. #13
    Membre éprouvé

    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 236
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 236
    Par défaut
    Tu vois la prochaine fois tu ira moins vite que la musique et tu mettra les boeufs avant la charrue.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 51
    Par défaut
    ok mais au lieu de sortir des expression tu pourrais m'aider stp car appar vérifier si sa marchait (et sa marchait...) je ne vois pas ce que j'ai mal fait...biensur mon script n'est surement pas super et je vous poses des question qui vous parraissent peut-etre bete mais c'est en posant des question et en cherchant que l'on progresse ! non ? c'est un premier script et je pence commencer à comprendre comment tous cela marche.

    Donc si tu à une idée pour ma question je suis preneur car pour l'instant je n'ait rien trouvé. merci

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 51
    Par défaut
    Citation Envoyé par weed
    ok dans ce cas, tu peux executer la requete des le premier utilisateur de la journée.

    Quelqu'un peut-il m'aider je n'ait toujours pas toruver comment faire et ce n'ait pas faute de chercher.
    merci

Discussions similaires

  1. Passer une valeur Null dans un argument de procédure
    Par preempalver dans le forum VBA Access
    Réponses: 5
    Dernier message: 30/12/2003, 20h52
  2. Lire une valeur dans le registre
    Par John.s dans le forum C
    Réponses: 2
    Dernier message: 26/11/2003, 19h55
  3. Retourner une valeur avec une fonction
    Par stephtbest dans le forum ASP
    Réponses: 4
    Dernier message: 31/10/2003, 16h37
  4. Prendre une valeur dans la grappe XML
    Par Sandrine75 dans le forum XMLRAD
    Réponses: 7
    Dernier message: 21/05/2003, 10h26
  5. Afficher une valeur du context
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 13
    Dernier message: 28/04/2003, 13h49

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