[MySQL 3.23.X] suche spalte mit kleinster id und ersetzte

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

  • [MySQL 3.23.X] suche spalte mit kleinster id und ersetzte

    PHP-Code:
    <?
    include "config.php";
    @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
    $sql = "SELECT * FROM gamelist";
    $result = mysql_query($sql);
    $query="UPDATE gamelist SET id='$id' WHERE id='' "; //<- ersetzten
    $result=mysql_query($query);
    ?>
    Mein Datenbank hat 20 Zeilen, diese sollen immer mit den größten id's gefüllt sein.
    Jede neuere id ist größer als alle älteren, weil sie nach folgenden Schema aufgebaut sind: 200512211403blabla. also die ersten ziffern sind datum und uhrzeit.
    Wird eine neue id gefunden. soll die kleinste id der datenbank überschrieben werden.

    Ich könnte natürlich auch erst die komplette tabelle öffnen nach id sortieren. nach kleinsten gucken und dann wieder öffnen und überschreiben. Da muss es doch auch eine edlere Methode geben. ich müsste doch irgendwie bei "//ersetzten". nen befehl hinschreiben können. nur weiß ich nicht wie dieser befehl lautet.
    Der Script soll die zeile überschreiben wo, die id am kleinsten ist.
    Zuletzt geändert von Shoty; 30.12.2005, 15:04.

  • #2
    warum willst du das machen? evtl weil du nur die 10 letzten einträge haben willst?

    du kennst LIMIT in sql?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      ja kenn ich.
      es ist so: ich parse per cronjob jede stunde von einer xml-datei diese id's, welche ich in ein querry einbauen kann, um eine detalierte information zu bekommen. Mich interessieren nur die 20 neusten. Ich könnte auch die informationen direkt anzeigen. mein problem ist nur, dass die ids von 8 verschiedenen externen xml-dateien geparst werden. Und da wäre die Ladezeit von meiner seite 1-2min. deswegen speicher ich die die ids auf ner mysql-datenbank zwischen.

      Kommentar


      • #4
        Redest du wirklich von der SPALTE mit der kleinsten ID oder von der ZEILE??

        Kommentar


        • #5
          achso entschuldige natürlich zeile

          Kommentar


          • #6
            Original geschrieben von Shoty
            deswegen speicher ich die die ids auf ner mysql-datenbank zwischen.
            dagegen ist ja auch nichts einzuwenden.

            aber warum schränkst du deine anzeige nicht einfach via LIMIT ein?
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              UPDATE tab SET id = #neu# ORDER BY id LIMIT 1

              MIN() sollte es auch schon tun.

              Den Sinn deines SELECTs wüsste ich gerne
              Zuletzt geändert von TobiaZ; 30.12.2005, 15:08.

              Kommentar


              • #8
                Original geschrieben von Abraxax
                dagegen ist ja auch nichts einzuwenden.

                aber warum schränkst du deine anzeige nicht einfach via LIMIT ein?
                ja ich will meine datenbank nicht zu müllen. ich bekomm ja jede stunde 5-15 neue ids.

                Kommentar


                • #9
                  Das ist doch nicht wirklich viel... MySQL kann ja mir ein paar Millionen Datensätzen noch recht gut umgehen...

                  Kommentar


                  • #10
                    Original geschrieben von TobiaZ
                    Den Sinn deines SELECTs wüsste ich gerne
                    achso . war noch von meim vorherigen code drinne. als ich die datenbank erst eingelesen hab.

                    danke probiers gleich mal aus

                    Kommentar


                    • #11
                      Original geschrieben von Heini81
                      Das ist doch nicht wirklich viel... MySQL kann ja mir ein paar Millionen Datensätzen noch recht gut umgehen...
                      ja aber irgendwann ist halt der speicher voll. wie groß darf die mysql-datenbank eigentlich werden. wird des vom webspace abgezogen, oder wie läuft des?

                      Kommentar


                      • #12
                        Bis dein Speicher voll ist, wirds wohl noch einige Zeit daueren. Kommt natürlich auch darauf an, welche Daten du alle speicherst. Nur die ID oder was kommt da noch alles zu?

                        Spricht nichts dagegen, die DB regelmäßig zu säubern.

                        Kommentar


                        • #13
                          kommen noch 9 spalten zu der id dazu. sollte mir noch nen säuberungs skript schreiben.

                          Kommentar

                          Lädt...
                          X