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 :

Le nombre de visites ne s'écrit pas [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 183
    Points : 66
    Points
    66
    Par défaut Le nombre de visites ne s'écrit pas
    Bonjour à tous,

    Je n'ai pas programmé en php et mysql depuis des années
    et maintenant je suis coincé par la nouvelle version de MySql (4.1.9).
    Autant mes sites fonctionnaient parfaitement autant maintenant je suis perclu de bugs.

    Je vous donne un exemple. Si vous voyez où est la faille je vais essayer de comprendre et avancer parce que jusque là j'y perds mon latin... Ai-je mal créé ma table ? Ai-je mal formulé ma requète ? Je n'en sais rien...

    Je vous est mis ce que j'ai entré avec PhpMyAdmin dans MySql et aussi le petit bout de script.

    Problème : il n'écrit pas le nombre de visites ($visit). Depuis 2 jours je suis dessus, j'ai tout essayé avec mes connaissances mais il s'obstine a rester muet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <?
     
        $serveur="localhost";
        $user="root";
        $passwd="";
        $bdd="Whombat";
     
        mysql_connect($serveur, $user, $passwd);
     
        $query="$bdd, SELECT nb FROM compteur where 1";
        $visit=mysql_query($query);
     
        $newNb=$visit+1;
     
        $instruction="UPDATE compteur SET nb='$newNb' where 1";
        $res=mysql_query( $instruction);
     
        mysql_close();
     
        echo "<TABLE><TR><TD>
        <FONT face='Digital SF, Times New Roman, Verdana, Arial, Helvetica' color='lime'>
        <B>$visit</B>
        </TD></TR></TABLE>";
     
    ?>
    Base de données Mysql : whombat
    Table Mysql : compteur

    Champ | Type | Null | Défaut |
    ----------------------------------------
    num | tinyint(4) | Non | 1 |
    nb | bigint(20) | Non | 163256 |


    Index: |Nom de la clé | Type | Cardinalité | Champ |
    -------------------------------------------------------
    | num | INDEX | aucune | num |

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 50
    Points : 53
    Points
    53
    Par défaut
    bonjour,

    tu as au moins un problème avec tes requêtes dans la clause where.
    Tu dois indiquer le champs qui doit avoir la valeur 1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT nb FROM compteur where num = 1;

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 183
    Points : 66
    Points
    66
    Par défaut Re-bonjour
    En effet. J'avais vu sur la doc MySql que, pour un champ indexé, ce n'était pas obligatoire de préciser. D'autre part, ils donnent de nombreux exemples où rien n'est précisé.

    De toutes façons, j'ai fait les 2, avec et sans, et c'est le meme vide...

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?php
     
        $serveur="localhost";
        $user="root";
        $passwd="";
        $bdd="Whombat";
     
        mysql_connect($serveur, $user, $passwd);
        mysql_select_db($bdd);
     
        $query= "SELECT nb FROM compteur";
        $visit = mysql_query($query) or die(mysql_error());
     
        $nbVisites = mysql_result($visit, 0, 0);
     
        $instruction="UPDATE compteur SET nb = nb + 1";
        mysql_query($instruction) or die(mysql_error());
     
        mysql_close();
     
        echo "<TABLE><TR><TD>
        <FONT face='Digital SF, Times New Roman, Verdana, Arial, Helvetica' color='lime'>
        <B>$nbVisites</B>
        </TD></TR></TABLE>";
    ?>
    Votre code fonctionnait ?
    • la requête SELECT est fausse et aucune base n'est sélectionnée
    • vous manipulez une ressource (le résultat de mysql_query) or ce n'est pas une variable scalaire
    • ajoutez le or die(mysql_error()); pour obtenir les erreurs SQL
    • préférez, pour des raisons de portabilité, les balises longues (<?php et <?php echo) aux courtes (<? et <?=)

    Il ne manquerait pas une condition sur le champ num ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 183
    Points : 66
    Points
    66
    Par défaut
    Merci Julp
    Je vais essayer tout cela en croisant les doigts.
    J'ai trouvé une doc MySql mais pour moi c'est de l'hébreu c'est pourquoi j'en suis resté à mon mysql de 2002 qui fonctionnait très bien... lol
    Si seulement je trouvait une doc écrite 'en français'...
    Merci encore
    Cordialement

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

Discussions similaires

  1. Compter le nombre de visite par jour
    Par Are-no dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/02/2008, 17h37
  2. GoogleBot me visite mais ne met pas à jour sa base de donnée
    Par sousoulebarbu dans le forum Référencement
    Réponses: 6
    Dernier message: 03/01/2008, 11h56
  3. Réponses: 1
    Dernier message: 07/09/2006, 15h45
  4. [Access] Trouver qui a le plus grand nombre de visites
    Par maxidoh dans le forum Langage SQL
    Réponses: 13
    Dernier message: 03/04/2006, 04h00
  5. Putc n'écrit pas dans le fichier ?
    Par Giovanny Temgoua dans le forum C
    Réponses: 11
    Dernier message: 17/01/2006, 20h43

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