Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum 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 27/06/2011, 17h09   #1
Membre du Club
 
Inscription : janvier 2010
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 317
Points : 62
Points : 62
Par défaut un record par IP mais visite qui incrémente

Bonjour.

Je me suis fait une page statistiques et présentement, je n'utilise que INSERT INTO pour n'ajouter qu'une seule fois un IP avec quelques autres détails. Mais je voudrais incrémenter un champ sans incrémenter des lignes de records.

Exemple: pour le IP 192.168.1.5 qui apparait seulement une fois dans ma base de données avec un autre champ qui lui incrémente selon le nombre de fois qu'il visite le site. Genre visite unique pour 24h.

visites: 10
ip: 192.168.1.5
etc.

Voici ce que j'ai fait :

Code :
1
2
3
4
5
6
7
8
9
10
if(substr($ip, 0, 12) !== '192.168.197.' && $ip !== '127.0.0.1'){
 
$resultat=$connexion->query("SELECT count(*) nip FROM ip WHERE ip='$ip'");
$nbre=$resultat->fetch_array();
 
  if ($nbre['nip']==0) {
    $resultat = $connexion->query("INSERT INTO `wwwip`.`ip` (`ip`, `hn`, `ua`, `dt`) VALUES ('$ip','$hn','$ua',CURDATE())") or die('Error');
  }
 
}
Je ne sais pas si je pourrais utiliser UPDATE à la place de INSERT INTO afin de pouvoir ajouter de nouvelle visite qui n'existe pas dans ma base. J'ai déjà vu ça à quelque part.

Bien à vous!
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 17h19   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Hello

Code :
1
2
 
UPDATE `wwwip`.`ip` SET `count`=`count`+1 WHERE `ip`='$ip'
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 17h26   #3
Membre expérimenté
 
Inscription : janvier 2007
Messages : 616
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 616
Points : 549
Points : 549
Bonjour,
Il y a bien la commande REPLACE mais elle ne peut effectuer ce que tu veux que si l'ip est en primary key ou unique.
Je te propose de lire ici http://dev.mysql.com/doc/refman/5.0/fr/replace.html
kabkab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 17h40   #4
Membre du Club
 
Inscription : janvier 2010
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 317
Points : 62
Points : 62
Merci pour vos réponse, c'est apprécié.

Je pense que les deux réponses pourrait m'aider et je vais tenter d'expliquer plus clair ma question :

Code :
INSERT INTO `wwwip`.`ip` (`ip`, `hn`, `ua`, `dt`) VALUES ('$ip','$hn','$ua',CURDATE())
$ip reste le même, mais à chaque visite du même ip, dans le champ "nb" qui
n'est pas encore créé, s'ajoute 1. En surplus, si le $ip vient 10 fois dans le mois, je verrais 10 dans le champ "nb".

Le $ip peut être attribué à une autre personne et c'est alors que les autres détails peuvent changer. Mais le but principal du code est de détecter s'il y a des robots ou autres qui visite la page en question.

Je vais essayer et tester si je peux combiner les deux REPLACE et COUNT.
Je donne des nouvelles si je réussi.
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 16h08   #5
Membre du Club
 
Inscription : janvier 2010
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 317
Points : 62
Points : 62
Replace ne fonctionne pas avec moi, j'ai changer INSERT INTO par REPLACE INTO. Je vais créer un condition :

si la donnée n'existe pas, la créer, si non, faire la mise à jour.

Cela devrait bien fonctionner. Et inclure la comannde `count`=`count`+1

Merci.
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h01.


 
 
 
 
Partenaires

Hébergement Web