Für euch ein kleines Problem - für mich ned :(

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

  • Für euch ein kleines Problem - für mich ned :(

    PHP-Code:
    <?
    include("config.inc.php");

    mysql_connect($sqlhost,$sqluser,$sqlpass); 
    mysql_select_db($sqldb);
    $Query = '
          SELECT
            id
          FROM
            yoz_visitors
          WHERE
            UNIX_TIMESTAMP(visit_date) + '.$Period.' > "'.time().'"
          AND
            rem_add = "'.$_SERVER['REMOTE_ADDR'].'"
        ';
    $result = mysql_query ($Query);


    ?>
    wie sag ich ihm jetzt: falls es einen eintrag also id gibt, die auf die abfrage zutrifft, mach "dieses und jenes"?

  • #2
    ganz einfach, in der tat :
    PHP-Code:
    if ( $result ) {
    // hat was gegeben
    } else {
    // war leer.

    oder mom.. was glaub ich die schönere lösung is :
    PHP-Code:
    if ( mysql_num_rows($result) > ){
    // wie oben 
    } else {
    schon erklärt 

    gruß moritz
    Zuletzt geändert von haarmann; 23.05.2004, 18:33.

    Kommentar


    • #3
      ok nex problem

      PHP-Code:
      <?
      include("config.inc.php");

      mysql_connect($sqlhost,$sqluser,$sqlpass); 
      mysql_select_db($sqldb);
      $Period = 86400;
      $timestamp = time();
      //gitbs die ip shcon?
      $Query = '
            SELECT
              id
            FROM
              yoz_visitors
            WHERE
              rem_add = "'.$_SERVER['REMOTE_ADDR'].'"
          ';
      $result = mysql_query ($Query);
      if ( mysql_num_rows($result) > 0 ){
      // wenn ja --> dann überprüft die zeit
          $Query = '
                SELECT
                  id
                FROM
                  yoz_visitors
                WHERE
                  UNIX_TIMESTAMP(visit_date) + '.$Period.' > "'.time().'"
                AND
                  rem_add = "'.$_SERVER['REMOTE_ADDR'].'"
              ';
          $result = mysql_query ($Query);
          if ( mysql_num_rows($result) > 0 ){
          //wenn die zeit drüber liegt dann schreibt er den eintrag
          mysql_query ("INSERT INTO yoz_visitors (visit_date, rem_add) VALUES ('$timestamp', '$REMOTE_ADDR')");
          echo "du wart scho mal da wirst aber gezählt";
          } else {
          //wenn die zeit nicht drüber liegt dann macht er nix
          echo "du warst scho mal da aber du zählst nicht";
          }
      } else {
      //falls es die ip noch nicht gibt schreibt ers auch rein
      mysql_query ("INSERT INTO yoz_visitors (visit_date, rem_add) VALUES ('$timestamp', '$REMOTE_ADDR')");
      echo "du warst noch nie da und wirst gezählt";
      }


      ?>
      so das is mein code.
      aber er schreibt mir das in den table rein:
      Code:
      | id | visit_date     | rem_add  
      | 6  | 00000000000000 |62.46.xxx.xxx
      außerdem schreibt er mir bei id 6 hin und ich hab aber die vorherigen datensätze gelöscht und wenn ich den hier löschen würde und versuchen würde in die leere tabelle werte einzutragen würd er mir bei id 7 hin schreiben.

      Kommentar


      • #4
        hallo,

        also auf das problem ( in anführungszeichen ) mit der größer werdenden id kann ich sagen das es wirklich das normale verhalten einer auto-increment column in mysql is, das sich das ding halt permanent um 1 erhöht und sich nich ändert wenn man wieder was löscht.

        Zu dem anderen Problem kann ich noch nich viel sagen, muss mir das genauer angucken.

        gruß moritz

        Kommentar


        • #5
          ja das mit dem auto_incremet wirds wohl sein - ich dachte nur dass es sich den id wert vom vorhergegangenen nimmt und den erhöht - dass das anders läuft wußte ich nicht...


          zu meinem anderen problem. er schreibt mir die $timestamp nicht rein.
          wenn ich bei INSERT INTO statt dem '$timestamp' time() hinschreib dann is alles im ar*** weil dann schreibt er mir nicht einmal die ip rein....

          Kommentar


          • #6
            warum schreibt er mir wenn ich die variable timestamp reinschreib nur nullen hin und nicht die zahl?

            Kommentar


            • #7
              Das mit dem auto_increment ist schon so. Es wird IMMER um eins erhöht.

              Zum 2. Prob:

              Hast du aus dem '$timestamp' schon mal "$timestamp" gemacht mit " " statt ' ' ?
              Da IMO '$timestamp' einen String speichert. Während bei doppelten Anführungszeichen Variablen, Fkt berücksichtigt werden.

              Wenn ich nicht falsch liege
              [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

              [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

              [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
              (from here)

              Kommentar


              • #8
                das problem hab ich schon gelöst - ich hatte in meinem table das feld für date falsch klassifiziert - hab aber inzwischen schon wieder ein neues problem - hier der code:

                PHP-Code:
                <?
                include("config.inc.php");
                mysql_connect($sqlhost,$sqluser,$sqlpass); 
                mysql_select_db($sqldb);
                $Period = 86400;
                $timestamp = time();
                //gitbs die ip shcon?
                $Query = '
                      SELECT
                        id
                      FROM
                        yoz_visitors
                      WHERE
                        rem_add = "'.$_SERVER['REMOTE_ADDR'].'"
                    ';
                $result = mysql_query ($Query);
                if ( mysql_num_rows($result) > 0 ){
                // wenn ja --> dann überprüft die zeit
                    $Query = '
                          SELECT
                            id
                          FROM
                            yoz_visitors
                          WHERE
                            UNIX_TIMESTAMP(visit_date) + '.$Period.' > "'.time().'"
                          AND
                            rem_add = "'.$_SERVER['REMOTE_ADDR'].'"
                        ';
                    $result = mysql_query ($Query);
                    if ( mysql_num_rows($result) > 0 ){
                    //wenn die zeit drüber liegt dann schreibt er den eintrag
                    mysql_query ("INSERT INTO yoz_visitors (visit_date, rem_add) VALUES ('$timestamp', '$REMOTE_ADDR')");
                    echo "du wart scho mal da wirst aber gezählt<br>";
                    } else {
                    //wenn die zeit nicht drüber liegt dann macht er nix
                    echo "du warst scho mal da aber du zählst nicht<br>";
                    }
                } else {
                //falls es die ip noch nicht gibt schreibt ers auch rein
                mysql_query ("INSERT INTO yoz_visitors (visit_date, rem_add) VALUES ('$timestamp', '$REMOTE_ADDR')");
                echo "du warst noch nie da und wirst gezählt<br>";
                }
                //alle ausgeben
                $Query = '
                      SELECT
                        COUNT(id) anzahl_besucher
                      FROM
                        yoz_visitors
                    ';
                    $result = mysql_query($Query);
                    $hits = mysql_result($result,0);
                echo "Visits: ".$hits."<br>";
                //heute ausgeben
                $Query = '
                        SELECT
                        id
                        FROM
                        yoz_visitors
                          WHERE
                            TO_DAYS(NOW()) = TO_DAYS(visit_date)
                        ';
                    $result = mysql_query($Query);
                    $hits = mysql_num_rows($result);
                echo "Heute: ".$hits."<br>";
                //gestern 
                $Query = '
                        SELECT
                            id
                        FROM
                            yoz_visitors
                          WHERE
                            TO_DAYS(NOW()) - 1 = TO_DAYS(visit_date)
                        ';
                    $result = mysql_query($Query);
                    $hits = mysql_num_rows($result);
                    echo "Gestern: ".$hits."<br>";
                //last user ecxept you
                $Query = '
                      SELECT
                        visit_date
                        FROM
                        yoz_visitors
                        ORDER BY
                        visit_DATE DESC
                      LIMIT 1, 1
                    ';
                    $result = mysql_query($Query);
                    $timestamp = mysql_result($result,0);
                $datum = date("l, d. F Y \u\m H:i", $timestamp);
                    echo "Letze User: ".$datum."<br>";
                mysql_close();
                ?>
                hier das was in der database drinnen steht

                Code:
                id | visit_date | rem_add |
                1  | 1085320665 | 12.34.x |
                2  | 1085407939 | 23.45.x |
                3  | 1085415795 | 34.56.x |
                hier dass was er mir ausgibt:

                Code:
                du warst scho mal da aber du zählst nicht
                Visits: 3
                Heute: 0
                Gestern: 0
                Letze User: Monday, 24. May 2004 um 16:12
                wieso zum geier sagt er mir das heute 0 user auf der seite waren wo doch mindestens einer drauf sein müsste????? und bei gestern das selbe - ich glaub dass etwas in der abfrage falsch ist ich hab aber keine ahnung - bitte hilfe!
                Zuletzt geändert von yoz; 24.05.2004, 22:46.

                Kommentar


                • #9
                  keiner eine ahnung?

                  Kommentar


                  • #10
                    hmm,
                    Original geschrieben von yoz
                    keiner eine ahnung?
                    hätt ich gewußt, daß du hier son wind machst, hätte ich den mist nie gepostet. das sollte als beispiel dienen und nicht blind von dir übernommen werden. bei mir funktionierst übrigens :P

                    und wenn du dich ein wenig anstrengst, kriegst du es bestimmt hin.
                    Die Zeit hat ihre Kinder längst gefressen

                    Kommentar


                    • #11
                      toll

                      ich glaub übriges dass ich irgendwo einen fehler mit dem format von now() oder time() reingehaut hab...

                      EDIT:
                      hab ichs ned "blind" übernommen.... und zweitens jetzt funktionierts ich hatte einen fehler beim datumsformat


                      nur eine frage hab ich noch - besser gesagt 2.

                      welche variable oder welchen wert gibtst du dem $period - wenn ich dem wert vorher 86400 zuweise also 24h - funktioniert die reloadsperre nicht.

                      und die visit_date variablen stimmen nicht z.b. schreibt er obwhol es 17:32 ist, 11:32 hin.
                      Zuletzt geändert von yoz; 25.05.2004, 17:33.

                      Kommentar


                      • #12
                        hab grad gesucht aber nix gefunden wie man zeitzonen ändert. wenn die 2 sachen funktionieren würden - würd alles funktionieren - und ich nerv euch nimma damit

                        Kommentar


                        • #13
                          verlockendes Angebot

                          Hast du mal die Zeit von Server und lokalem Rechner verglichen?
                          [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

                          [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

                          [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
                          (from here)

                          Kommentar


                          • #14
                            aaalso die funktion time() und now() geben nicht das selbe wieder wenn du das meinst. die now() liegt um 6 stunden oder so hinten (**w.freesql.org - dort liegt die datenbank)

                            und ich denk mir dass wenn ich hier:
                            PHP-Code:
                            mysql_query ("INSERT INTO yoz_visitors (visit_date, rem_add) VALUES (now(), '$REMOTE_ADDR')"); 
                            dem now() sagen kann dass er mir die zeitzone um 6 stunden verschiebt ....passt ja alles. ich hab schon bissi gegoogelt aber ich find immer nur folgendes:

                            Ja es ist möglich die Zeitzone zu verändern, ein Beispiel dazu hab ich noch nirgends gefunden.

                            Kommentar


                            • #15
                              gmdate()
                              [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

                              [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

                              [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
                              (from here)

                              Kommentar

                              Lädt...
                              X