select-abfrage für counter funtzt nicht...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • select-abfrage für counter funtzt nicht...

    hi leute,

    mein check, ob der user schon mal auf meiner site war, funtzt irgendwie nicht.
    php kommt immer in die if rein und zählt den counter hoch => auch wenn der user schon mal da war und ein DB-eintrag mit 'ner sessionID und seiner IP existiert.

    Warum??

    $sql = "SELECT SESSION, IP FROM counter WHERE SESSION='".$sessionID."' AND IP='".$ip."'";
    $check = mysql_query($sql);
    if (!mysql_affected_rows()){ //User war noch nicht da
    // Counter hochzählen...
    }
    $PHP resource 4ever$

  • #2
    muss der User sich vorher in irgendeiner Weise einloggen, oder speicherst du nur seine IP. Diese verändert sich doch sowieso bei jedem neu einwählen ins Internet.

    Kommentar


    • #3
      Original geschrieben von Metallica
      [...]
      if (!mysql_affected_rows())
      denkfehler - mysql_affected_rows() gibt mindestens "null" zurück, entsprechend gehts net mit !mysql_affected_rows()
      sonder mit if(mysql_affected_rows()<1)

      Kommentar


      • #4
        @WhiteMountain
        hmm, hab das jetzt ausgebessert.
        funtzt noch immer nicht.
        php kommt bei jedem refreshen in die if-abfrage rein und erzeugt mit jedesmal in der DB den gleichen DS.

        hier die korrigierte version von dir:

        <?php
        // DB-Teil select
        $sql = "SELECT SESSION, IP FROM counter WHERE SESSION='".$sessionID."' AND IP='".$ip."'";
        $check = mysql_query($sql);

        if (mysql_affected_rows()<1){ //User war noch nicht da
        // Counter hochzählen....

        // DB-Teil insert - jetzt wurde der user gezählt
        $sql = mysql_query("INSERT INTO counter SET SESSION = '$sessionID',IP = '$ip', TIMEss = '$time'");
        $blub = mysql_query($sql);
        } //end if
        ?>

        vorher mache ich noch das cookie,sessionID,IP - Handling.
        wenn du willst kann ich dir das auch noch posten.

        $PHP resource 4ever$

        Kommentar


        • #5
          ah sorry ich bin heut bissl neben der kapp
          mysql_affected_rows() ist nur für insert, update oder delete anfragen interessant - bei select wird ja nix "affected"
          Code:
          $check=mysql_query($sql);
          $haternu=mysql_num_rows($check);
          if($haternu<"1")
            {
              //war noch net da =>counter
            }
          jetz aber

          p.s weil ichs grad noch seh:
          deine insert-anfrage is falsch, insert gehört in die form:
          "insert into tabellename (feldname1, feldname2,...) values('$feldname1','$feldname2',...) where bedingung"

          [Editiert von WhiteMountain am 15-03-2002 um 16:42]

          Kommentar


          • #6
            hmm, funtzt auch nicht mit mysql_num_rows.
            kann ich dir mal die ganze php mailen??

            => was stimmt am insert-statement nicht?? mach ich immer so und es funtzt auch immer so problemlos.
            $PHP resource 4ever$

            Kommentar


            • #7
              jo mail mal.

              @insert:
              set feldname='wert' gehört zu update nicht zu insert.
              das das trotzdem funktionieren sollte kann ich mir ehrlich gesagt net vorstellen, habs allerdings auch noch nie versucht

              Kommentar


              • #8
                wie lautet deine email??
                kann sie nicht sehen im forum!

                und dateianhang kann ich auch keinen schicken.

                meine mail:
                erichgsi@gmx.at
                $PHP resource 4ever$

                Kommentar

                Lädt...
                X