Tabelle öffen, Zeile löschen und einfügen?

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

  • Tabelle öffen, Zeile löschen und einfügen?

    Wo liegt der Fehler in den paar Codezeilen?

    PHP-Code:
    $link mysql_connect("adresse""name""passwort")
    or die(
    "Keine Verbindung möglich!");
    //Verbindung erfolgreich
    mysql_select_db("counter")
    or die(
    "Auswahl der Datenbank fehlgeschlagen");
    //Datenbankauswahl war erfolgreich

    $result=mysql_query("DELETE FROM counter WHERE id=$id and zeit=time-14400")
    if (!
    $result) {//IP gelöscht
      
    ++$counterstand
                  
    }
    mysql_query("INSERT INTO counter (ip,zeit) VALUES ('$ip','time')");

    // schliessen der Verbinung
    mysql_close($link); 

  • #2
    Ist das ein Quiz?

    $result=mysql_query("DELETE FROM counter WHERE id=$id and zeit=$time-14400")
    mysql_query("INSERT INTO counter (ip,zeit) VALUES ('$ip','$time')");

    $time anstatt time nehme ich an.

    Wieviele Punkte bekomme ich dafür?

    Bitte das nächste mal etwas konkreter,
    Danke

    Kommentar


    • #3
      Sorry, bin absoluter Anfänger.

      Damit will ich mir die aktuelle Zeit und das aktuelle Datum holen.

      So ist das richtig?

      Kommentar


      • #4
        Kommt drauf an wie Du das Datenfeld Zeit definiert hast.

        now() liefert Dir Zeitwerte entweder mit oder ohne Trennzeichen
        Code:
        mysql> select now(), now()-0;
        +---------------------+----------------+
        | now()               | now()-0        |
        +---------------------+----------------+
        | 2002-08-02 20:55:30 | 20020802205530 |
        +---------------------+----------------+
        1 row in set (0.00 sec)
        Vielleicht klappt bei Dir
        PHP-Code:
        $result=mysql_query("DELETE FROM counter WHERE id=$id and zeit=now()-14400")
        mysql_query("INSERT INTO counter (ip,zeit) VALUES ('$ip','now()-0')"); 
        Wobei ich mir nicht sicher bin, ob Du nicht alle Records die älter als jetzt - 14400 sSekunden sind löschen möchtest, alao
        PHP-Code:
        $result=mysql_query("DELETE FROM counter WHERE id=$id and zeit<now()-14400"
        Ob das mit dem now() paßt ist wie gesagt (geschrieben) abhängig davon wie das Feld zeit definiert ist.

        Kommentar


        • #5
          zeit ist als datetime definiert.

          Ich möchte ansonsten damit die Zeile löschen wo die IP übereinstimmt und die zeit innerhalt der letzten 4 Stunden liegt.

          Kommentar


          • #6
            PHP-Code:
            <?php
            $link 
            mysql_connect("adresse""name""passwort")
                    or die(
            "Keine Verbindung möglich!");

            //Verbindung erfolgreich
            mysql_select_db("counter")
                    or die(
            "Auswahl der Datenbank fehlgeschlagen");
            //Datenbankauswahl war erfolgreich

            $result=mysql_query("DELETE FROM counter WHERE ip='$ip' and zeit < now() - INTERVAL 4 HOUR");
            if (!
            $result) {
                
            $counterstand++;
            }
            mysql_query("INSERT INTO counter (ip,zeit) VALUES ('$ip',now())");

            // schliessen der Verbinung
            mysql_close($link);
            ?>
            Zuletzt geändert von hand; 02.08.2002, 21:13.

            Kommentar


            • #7
              Hi, hier mal der komplette Code, leider funktioniert es immer noch nicht.

              PHP-Code:
              <?php

              $ip
              =getenv("REMOTE_ADDR");// Aktuelle IP Adresse von Besucher
              $counterfile="counter.txt";

              //counterzahl laden
              if (!file_exists($counterfile)) {
                
              $datei=fopen($counterfile,"r");
                
              fgets($counterzahl);
                
              fclose($datei);
              }

              // Verbindung aufbauen, auswählen einer Datenbank
              $link mysql_connect("adresse""name""passwort")
              or die(
              "Keine Verbindung möglich!");
              //Verbindung erfolgreich
              mysql_select_db("counter")
              or die(
              "Auswahl der Datenbank fehlgeschlagen");
              //Datenbankauswahl war erfolgreich

              $result=mysql_query("DELETE FROM counter WHERE ip='$ip' and zeit < now() - INTERVAL 4 HOUR");
              if (!
              $result) {
                  ++
              $counterstand;
              }
              mysql_query("INSERT INTO counter (ip,zeit) VALUES ('$ip',now())");

              // schliessen der Verbinung
              mysql_close($link);

              //counterzahl speichern
              if (!file_exists($counterfile)) {
                
              $datei=fopen($counterfile,"w");
                
              fputs($datei,$counterzahl);
                
              fclose($datei);
                                              }

              //counter anzigen
              $anzahlstellen=4;
              // evtl. Auff&uuml;llen von Nullen auf anzahlstellen
              $counterzahl=str_pad($counterzahl$anzahlstellen"0"STR_PAD_LEFT);
              //$groesse=GetImageSize("0.png");//Gr&ouml;&szlig;e eines Bildes bestimmen, da alle gleich gro&szlig;
              //$counter=ImageCreate(($anzahlstellen*$groesse[0]),$groesse[1]);
              //Counterbild erstellen
              For($i=0$i<$anzahlstellen$i++)
                   {
                         
              $src_img=ImageCreateFromPNG("$counterzahl[$i].png");
                   
              //entsprechendes Ziffernbild laden
                         
              ImageCopy($counter$src_img, ($groesse[0] * $i), 000$groesse[0], $groesse[1]);
                   
              //Bild an die entsprechende Stelle im Counterbild kopieren
                         
              ImageDestroy($src_img);}

              Header("Content-type: image/png");
              ImagePNG($counter);
              ImageDestroy($counter);

              ?>

              Kommentar


              • #8
                $counterstand++;
                anstatt
                ++$counterstand;

                Was funktioniert nicht? Bitte etwas konkreter. Beim Zahnarzt sagst Du ja auch welcher Zahn Dir weh tut oder sagst Du dort nur "Weh tut"?

                Wenn Du es ihm nicht sagst riskierst Du damit, daß er Dir alle Zähne extrahiert.

                Gibt es Fehlermeldungen? Wenn ja welche?

                Kommentar


                • #9
                  Vielleicht solltest Du beim Connect was konkretes eingeben?

                  $link = mysql_connect("adresse", "name", "passwort")

                  vielleicht

                  $link = mysql_connect("localhost", "root", "")

                  ich weiß es nicht, es kann ja adresse, name, passwort auch korrekt sein, who knows?

                  Da müßte doch eine Fehlermeldung kommen, aber vermutlich kommt da keine, sonst hättest Du es ja bekanntgegeben ....

                  Kommentar


                  • #10
                    Auswahl der Datenbank fehlgeschlagen!

                    Die Tabelle counter ist natürlich erzeugt:
                    ip varchar(15) default=0.0.0.0 not null
                    zeit datetime default=0000-00-00 00:00:00 not null
                    Zuletzt geändert von Tpercon; 03.08.2002, 13:49.

                    Kommentar


                    • #11
                      Auswahl der Datenbank fehlgeschlagen?

                      Na dann trag da bitte die korrekten Anmeldeparameter ein - die kannst nur Du in Erfahrung bringen - vielleicht passt das aber, es sei denn esw muß mit einem anderen User connectet werden oder mit einem anderen Passwort.

                      Sorry ich kann Dir nicht sagen wie User/Passwort für Deine Datenbank aussehen.

                      $link = mysql_connect("localhost", "root", "")

                      Kommentar


                      • #12
                        Die Anmeldeparameter sind aber richtig, der Fehler liegt in der Zeile:
                        PHP-Code:
                        mysql_select_db("counter"
                        Und die Tabelle die ich erstellt habe, heißt counter oder kommt da nicht der Tabellenname hin?

                        Kommentar


                        • #13
                          Danke, ich habs! Da kommt nicht der Tabellen, sondern der Datenbankname hin.

                          Gruß

                          Kommentar


                          • #14
                            Wenn keine Zeile mit den Bedingungen existiert, soll die Zahl von counterstand um eins erhöht werden. Wo liegt da der Fehler im Code, damit die Zahl erhöht wird?
                            PHP-Code:
                            $result=mysql_query("DELETE FROM counter WHERE ip='$ip' and zeit < now() - INTERVAL 4 HOUR");
                            if (!
                            $result) {
                                
                            $counterstand++;

                            Zuletzt geändert von Tpercon; 04.08.2002, 18:44.

                            Kommentar

                            Lädt...
                            X