SQL-Einträge doppelt und dreifach

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

  • SQL-Einträge doppelt und dreifach

    Hi, ich habe auf einer Seite eine SQL-Abfrage, die nach einer ID bei Setzung einer bestimmten Variable eine Datenbankeintrag rausholt und woanders reinschreibt, der Quellcode steht ganz oben in der Seite! Nun ist es aber so, dass er das ganze gleich 3 mal macht, obwohl ich schon extra ein unset() und ein msql_free_result() eingebaut habe!
    Witzigerweise funktioniert das ganze vernünftig (nur einmal eingetrqgen) wenn ich einen HEADER() setze und neu auf die gleiche Seite leite, hinter dem HEADER() steht noch ein exit. Dort ist das Problem gelöst, aber es besteht auch bei meinen letzten Besuchern im Profil, er schreibt einen Besucher gleich dreimal rein, woran liegt sowas? Ich habe im Quellcode ja nicht dreimal den selben Befehl drin! Danke!

  • #2
    schau mal in zeile 44/45, dort liegt eindeutig der fehler.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Original geschrieben von derHund
      schau mal in zeile 44/45, dort liegt eindeutig der fehler.
      blödsinn ... 42
      Kissolino.com

      Kommentar


      • #4
        LOL, damit hab ich gerechnet! Aber der Code macht echt keinen Sinn, weil nix ersichtlich ist! Ich kopier ihn eben rein....

        Kommentar


        • #5
          Hier der Code der ganz oben steht:

          //prüfen ob mehr als 5 "letzte Profilbesucher" vorliegen

          $query="SELECT * FROM $sitetable24 WHERE profil_id = '$trefferid'";
          $result4=mysql_db_query($dbname,$query,$conn) or die (mysql_error());

          $bewertungszahl=mysql_num_rows($result4);

          if($bewertungszahl >= 6)
          {
          $query4="DELETE FROM $sitetable24 WHERE profil_id = '$trefferid' ORDER BY zeit ASC LIMIT 1";
          $result2=mysql_db_query($dbname,$query4,$conn) or die (mysql_error());
          }

          // den jetzigen Besucher speichern
          if($trefferid != $id_id && $vom != "bew")
          {
          $datas= date("Y.m.d G:i:s");
          $query="INSERT INTO $sitetable24 VALUES ('$trefferid' , '$id_id' , '$id_name' , '$datas')";
          mysql_db_query($dbname,$query,$conn) or die (mysql_error());
          }

          Kommentar


          • #6
            Wenn die Seite nun aufgerufen wird, schreibt der jeden Besucher drei bis 4 mal rein!

            Kommentar


            • #7
              Keiner eine Idee? Wie gesagt, wenn ich einen exit; direkt nach dem SQL einbaue, hat er nur einen Eintrag hinterlassen, ansonsten immer 3 bis 4!

              Kommentar


              • #8
                Original geschrieben von Wurzel
                blödsinn ... 42
                aber Wurzel ... wenn er die Zeile 42 schon hätte, hätte er nicht gefragt, da er die Lösung schon hat

                Kommentar


                • #9
                  Original geschrieben von indy0130
                  Keiner eine Idee? Wie gesagt, wenn ich einen exit; direkt nach dem SQL einbaue, hat er nur einen Eintrag hinterlassen, ansonsten immer 3 bis 4!
                  Also wie es aussieht, darf sowas nicht passieren, aber vielleich hast du davor 'ne Schleife oder so,... oder meta-refresh, ... oder include statt include_once verwendet ...

                  Kommentar


                  • #10
                    OffTopic:
                    Kleiner Tip: mysql_db_query ist veraltet, benutz stattdessen mysql_query... nur als tip
                    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                    var_dump(), print_r(), debug_backtrace und echo.
                    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                    Kommentar


                    • #11
                      gut, alsoooo include benutze ich dafür jo...und das sollte man nicht mehr benutzen? sondern include_once ? mmm, mysql_db_query veraltet? interessant...wird das neue anders benutzt? oder kann ich das einfach so ändern?

                      Kommentar


                      • #12
                        Aber mitgekriegt hat's auch noch keiner ... es ist keine SQL-Problem ... sondern ein PHP-Problem ... !
                        carpe noctem

                        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                        Kommentar


                        • #13
                          Original geschrieben von asp2php
                          oder include statt include_once verwendet ...
                          Ich vermute auch mal das die Datei mehrmals mit include anstatt include_once
                          eingebunden wurde.
                          Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
                          PHP Sicherheit
                          PHPUnit[1-2]
                          Professionelle Softwareentwicklung mit PHP 5
                          Professionelle PHP 5-Programmierung

                          Kommentar


                          • #14
                            Mmm...das einzige was ich eigentlich include ist die config mit den Variablen und der Datenbankconnection und die Session und die Sessionkontrolle halt:

                            also so:

                            <?php
                            include "include/config.inc.php";
                            include "include/sys.php",

                            und direkt danach kommt der obige Code...

                            und danach wird nur noch ein:

                            sql="SELECT * $sitetable WHERE trefferid='$trefferid'";
                            $result=mysql_db_query(...);
                            $date=mysql_fetch_array();

                            $name=$date[name];

                            ?>

                            ...und nun folgt nur noch der html-code mit der ausgabe der Profildaten!
                            Liegt es also am include oder etwa nur an der veralteten mysql_db_query(); bei der ich aber noch nicht die vorteile verstanden habe...dankeschön an all....

                            Kommentar

                            Lädt...
                            X