Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/07/2007, 00h22   #1
Invité régulier
 
Inscription : juin 2006
Messages : 52
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 52
Points : 6
Points : 6
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 :
mysql_query('UPDATE total SET nombre="+1" ');
j'ai ensuite fait cela mais sans plus de succès :
Code :
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
Nimajneb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 00h38   #2
Membre confirmé
 
Inscription : décembre 2002
Messages : 452
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 452
Points : 265
Points : 265
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
weed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 11h32   #3
Membre éclairé
 
Avatar de nicoaix
 
Homme
Chef de projet MOA
Inscription : décembre 2004
Messages : 561
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 561
Points : 325
Points : 325
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.
nicoaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 11h44   #4
Invité régulier
 
Inscription : juin 2006
Messages : 52
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 52
Points : 6
Points : 6
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
Nimajneb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 12h01   #5
Membre confirmé
 
Inscription : décembre 2002
Messages : 452
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 452
Points : 265
Points : 265
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
weed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 12h16   #6
Invité régulier
 
Inscription : juin 2006
Messages : 52
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 52
Points : 6
Points : 6
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 :
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 ?
Nimajneb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 12h26   #7
Membre confirmé
 
Inscription : décembre 2002
Messages : 452
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 452
Points : 265
Points : 265
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
weed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 13h22   #8
Invité régulier
 
Inscription : juin 2006
Messages : 52
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 52
Points : 6
Points : 6
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
Nimajneb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 14h16   #9
Membre confirmé
 
Inscription : décembre 2002
Messages : 452
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 452
Points : 265
Points : 265
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 :
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
weed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 14h28   #10
Invité régulier
 
Inscription : juin 2006
Messages : 52
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 52
Points : 6
Points : 6
Citation:
ok dans ce cas, tu peux executer la requete des le premier utilisateur de la journée.
Comment je peux faire cela ?
Nimajneb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 14h43   #11
Membre confirmé
 
Inscription : décembre 2002
Messages : 452
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 452
Points : 265
Points : 265
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".
weed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 15h18   #12
Invité régulier
 
Inscription : juin 2006
Messages : 52
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 52
Points : 6
Points : 6
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"...
Nimajneb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 15h41   #13
Membre confirmé
 
Inscription : décembre 2002
Messages : 452
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 452
Points : 265
Points : 265
Tu vois la prochaine fois tu ira moins vite que la musique et tu mettra les boeufs avant la charrue.
weed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 16h06   #14
Invité régulier
 
Inscription : juin 2006
Messages : 52
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 52
Points : 6
Points : 6
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
Nimajneb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 19h39   #15
Invité régulier
 
Inscription : juin 2006
Messages : 52
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 52
Points : 6
Points : 6
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
Nimajneb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h16.


 
 
 
 
Partenaires

Hébergement Web