begin process at 2012 05 31 02:53:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

probleme update et delete


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

probleme update et delete

mercredi 7 juin 2006 à 11:22:29 | probleme update et delete

blinix123

Bonjour à tous, alors voila, j'ai un script qui me permet de compter le nombre de visiteurs totale et le nombre de visiteurs en ligne, or bien evidemment...ça ne marche pas :p (pas marrant sinon)
Donc voilou le code, ma base de données est bien faite, ce sont les bons noms que j'utilise,etc!


<?php
function get_ip() //obtenir l'IP du visiteur
{
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif(isset($_SERVER['HTTP_CLIENT_IP']))
{
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
else
{
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
$ip = get_ip();
echo "$ip"; //affichage de son IP(test)
?>


<?php
// Connexion à MySQL
mysql_connect("localhost", "root", "");
mysql_select_db("compteur");


// ETAPE 1 : on vérifie si l'IP se trouve déjà dans la table
// Pour faire ça, on n'a qu'à compter le nombre d'entrées dont le champ "ip" est l'adresse ip du visiteur
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM visiteurs WHERE ip=\'' . $ip . '\'');
$donnees = mysql_fetch_array($retour);

if ($donnees['nbre_entrees'] == 0) // L'ip ne se trouve pas dans la table, on va l'ajouter
{
mysql_query('INSERT INTO visiteurs VALUES(\'' . $ip . '\', ' . time() . ')') or die(mysql_error());
echo 'oh un petit nouveau';
mysql_query("INSERT INTO cpt(cptvisite) VALUES('0')") or die(mysql_error());

mysql_query('UPDATE cpt SET cptvisite = cptvisite+1') or die(mysql_error()); //J'incremente mon compteur(j'espere que c'est comme ca, dans ma base compteur, j'ai une table cpt, qui contient le champs cptvisite,ce champs contient un nombre que je veux incrémenter)
}
else // L'ip se trouve déjà dans la table, on met juste à jour le timestamp
{
mysql_query('UPDATE visiteurs SET time=' . time() . ' WHERE ip=\'' . $ip . '\'') or die(mysql_error());
echo 'oh un ancien';
}


// ETAPE 2 : on supprime toutes les entrées dont le timestamp est plus vieux que 10 minutes
// On stocke dans une variable le timestamp qu'il était il y a 10 minutes :
$timestamp_10min = time() - (60*10); // 60 *1 0 = nombre de secondes écoulées en 10 minutes
mysql_query('DELETE FROM visiteurs WHERE time < ' . $timestamp_10min) or die(mysql_error());
//deja la une erreur, meme au bout d'une heure, mon IP n'est pas supprimer(127.0.0.1)


//ETAPE 3 : on compte le nombre d'ip stockées dans la table. C'est le nombre de visiteurs connectés
$retour = mysql_query('SELECT COUNT(*) AS connecte FROM visiteurs');
$donnees = mysql_fetch_array($retour);
echo '<p>nombre de visiteurs connectes: ' . $donnees['connecte'] . '</p>';

//on affiche cptvisite
$reponse = mysql_query("SELECT cptvisite FROM cpt") or die(mysql_error()) ;
$donnees = mysql_fetch_array($reponse);
echo '<p>nombre de visiteurs total: ' . $donnees['cptvisite'] . '!</p>';


mysql_close();
?>


Donc pour résumer les erreurs, mon compteur ne s'incremente pas,car ma base ne supprime pas mon IP au bout des 10min (PS: j'espere que <PHP> et easyPHP fonctionnent bien lorsqu'ils sont en arriere plan et que le probleme vient bien de mon code ^^ )

Merci à toutes les tentatives !
mercredi 7 juin 2006 à 11:44:07 | Re : probleme update et delete

blinix123

Arf, je crois avoir compris...
Pour UPDATER mon cpt, il faut d'abord l'initialiser, donc je fait INSERT INTO ctpvisite VALUES ('0') et ensuite il prend cptvisite+1 donc 1 !
La ca marche,ensuite un nouveau arrive,donc son IP n'est pas enregistrer, donc il va me refaire le INSERT INTO et vlan mon compteur repart a 0, c'est pour ca, en fait je dois faire un IF cptvisite != 0 alors tu ne me fais pas le INSERT INTO, comme ca mon INSERT INTO ne se fera qu'une seule fois au lancement de mon site,hihihi !!! zé reussi :p

reste plus qu'a coder:

$reponse = mysql_query("SELECT cptvisite FROM cpt") or die(mysql_error()) ;
$donnees = mysql_fetch_array($reponse);
IF .$donnees['cptvisite'] != 0
mysql_query('UPDATE cpt SET cptvisite = cptvisite+1') or die(mysql_error());
ELSE
mysql_query("INSERT INTO cpt(cptvisite) VALUES('0')") or die(mysql_error());
mysql_query('UPDATE cpt SET cptvisite = cptvisite+1') or die(mysql_error());


good or not good ?

mercredi 7 juin 2006 à 11:53:59 | Re : probleme update et delete

blinix123

Coucou, voilou mon petit bout de code de ci-dessus ^

$reponse = mysql_query("SELECT cptvisite FROM cpt") or die(mysql_error()) ;
$valeur = mysql_fetch_array($reponse);
if . $valeur['cptvisite'] != 0        //ligne 41
{ .......

et voilou l'erreur:
Parse error: parse error, expecting `'('' in c:\site web\compteur.php on line 41


J'ai une table cpt qui contient un champs cptvisite, ce champs contient un nombre,lequel j'aimerais comparer à 0, donc je penser que pour extraire ce nombre de ma base et pouvoir l'utiliser,il fallait cette syntaxe,car je crois que MySQL me sort des trucbidulemachin non exploitable directement par PHP et qu'il faut passer par un tableau..?

merci à toutes les tentatives ^^

mercredi 7 juin 2006 à 11:57:14 | Re : probleme update et delete

sidf

salut
not good

if($donnees['cptvisite'] != 0)
{
mysql_query('UPDATE cpt SET cptvisite = cptvisite+1') or die(mysql_error());
}
else
{
mysql_query("INSERT INTO cpt(cptvisite) VALUES('0')") or die(mysql_error());
mysql_query('UPDATE cpt SET cptvisite = cptvisite+1') or die(mysql_error());
}
mercredi 7 juin 2006 à 11:58:21 | Re : probleme update et delete

pastis51forever

Ca marche les IF comme ca??? if ( $valeur['cptvisite'] != 0 )
mercredi 7 juin 2006 à 12:15:04 | Re : probleme update et delete

blinix123

if ($donnees['nbre_entrees'] == 0) // L'ip ne se trouve pas dans la table, on va l'ajouter
{
    mysql_query('INSERT INTO visiteurs VALUES(\'' . $ip . '\', ' . time() . ')') or die(mysql_error());
 echo 'oh un petit nouveau';
 
 $reponse = mysql_query("SELECT cptvisite FROM cpt") or die(mysql_error()) ;
 $donnees= mysql_fetch_array($reponse);
 
 if($donnees['cptvisite'] != 0)            //ligne 42
 {
  mysql_query('UPDATE cpt SET cptvisite = cptvisite+1') or die(mysql_error());
 }
 else
 {
  mysql_query("INSERT INTO cpt(cptvisite) VALUES('0')") or die(mysql_error());
  mysql_query('UPDATE cpt SET cptvisite = cptvisite+1') or die(mysql_error());
 }
}



-----------> Notice: Undefined index: cptvisite in c:\site web\compteur.php on line 42
mercredi 7 juin 2006 à 12:32:01 | Re : probleme update et delete

malalam

Administrateur CodeS-SourceS
Hello,

if (!empty ($donnees[cptvisite])) { }
mercredi 7 juin 2006 à 12:33:58 | Re : probleme update et delete

malalam

Administrateur CodeS-SourceS
et puis :
mysql_query("INSERT INTO cpt(cptvisite) VALUES('0')") or die(mysql_error());


cptvisite est de type 'entier', non?? Alors pourquoi tu insères une valeur entre quotes...? C'est pour les chaînes, ça.
mercredi 7 juin 2006 à 12:51:34 | Re : probleme update et delete

blinix123

Réponse acceptée !
if ($donnees['nbre_entrees'] == 0) // L'ip ne se trouve pas dans la table, on va l'ajouter
{
    mysql_query('INSERT INTO visiteurs VALUES(\'' . $ip . '\', ' . time() . ')') or die(mysql_error());
 echo 'oh un petit nouveau';
 
 $reponse = mysql_query("SELECT cptvisite FROM cpt") or die(mysql_error()) ;
 while($donnees = mysql_fetch_array($reponse))
 {
  if (!empty ($donnees[cptvisite]))     //if($donnees['cptvisite'] != 0)
  {
   mysql_query('UPDATE cpt SET cptvisite = cptvisite+1') or die(mysql_error());
  }
  else
  {
   mysql_query("INSERT INTO cpt(cptvisite) VALUES('0')") or die(mysql_error());
   mysql_query('UPDATE cpt SET cptvisite = cptvisite+1') or die(mysql_error());
  }
 }
}


j'ai plus l'erreur de marquer, mais now autre probleme, il n'ecrit pas dans la base!!!! ma table cpt reste vide !!!!
et si j'enleve juste le mot while et ses 2 {}, ca ecrit mais ca me marque lors de ma 1ere visite:
Notice: Use of undefined constant cptvisite - assumed 'cptvisite' in c:\site web\compteur.php on line 42
mercredi 7 juin 2006 à 13:04:09 | Re : probleme update et delete

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
$donnees['cptvisite']))    
j'ai copié ton texte, erreur...les index de tableaux associatifs DOIVENT être entourés par des apostrophes.
De toutes façons, je ne comprends pas pourquoi tu fais ça...
Quand tu crées ta table, tu as ton champ cpt. C'est un entier, il suffit de le mettre à 0 par défaut, lors de la création. Et là, t'as plus à faire ce test...il y a juste à faire l'update.


1 2

Cette discussion est classée dans : nombre, mysql, ip, query, visiteurs


Répondre à ce message

Sujets en rapport avec ce message

Erreur dans mon code [ par massbbc ] salut je suis debutant en PHP et je voudrais mettre un compteur sur mon site. Mis le compteur n'incrémente pas il reste toujopurs a un quand j'essai d Prob de sondage [ par Xizar ] bonjour à vous, j'aimerais bien que le sondage ci-dessous puisse marcher correctement... tous marche bien exepté pour mon "système" anti-triche par IP enregistrer l'IP des visiteurs de son site [ par jeanclod13 ] Bonjour à tous, J’ai créé un site sur ma copropriété avec une zone réservée aux copropriétaires pour y accéder pour ceux qui le souhaitent chacun a u php/mysql [ par hadjila20 ] bonjour à tous, voilà j'ai un problème et jésper vraiment que je trouverai la solution dans ce forum. Je suis dans le cadre de la réalisation d'un sit insertion automatique dans la base [ par ikramta ] bonjour tout le monde. j'ai un hotel qui peux etre reserver par ue seule personne .la reservation chambre est en ligne.donc quand je reserve l'hotel Formulaire avec un nombre de champs variable [ par nlsitdeo ] Bonjour à tous, J'ai un formulaire de commande, les produits disponibles sont extraits d'une table MySQL produits et ne sont pas toujours les mêmes ( comment connaître et mémoriser l'adresse IP des visiteurs de mo, site [ par fouque ] rebonjour, je voudrais connaître et mettre dans un fichier les adresses IP des visiteurs de mon site. je suis un novice , avez-vous un code en html o Importation CSV [ par perles ] Bonjour à tous, J'ai un problème avec l'importation d'un fichier CSV. connect.php contient les information de la connection au serveur <?php sessi Arrêter une structure conditionnelle lorsqu'une condition est réalisée [ par monoski ] Voici mon code : [code=php]if ($fetch3['type'] == main or $main == no) { if ($affi3['main'] != no) { if ($affi3['slot1']== no) { mysql_query(" Abstraction SQL paramètre numRows [ par shadow1779 ] Bonjour, je débute encore en POO, et je m'amuse sur une petite class d'abstraction SQL (le genre de truc pas très novateur mais bon ^^), ma fonction


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 3,791 sec (4)

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