MySQL Tabelle sortieren

Dieses Thema MySQL Tabelle sortieren im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von noah1, 18. März 2005.

Thema: MySQL Tabelle sortieren Und noch eine Frage: Wenn man in einer Tabelle in MySQL Datensätze einträgt, dann wird ja jedesmal beim Eintrag eine...

  1. Und noch eine Frage:
    Wenn man in einer Tabelle in MySQL Datensätze einträgt, dann wird ja jedesmal beim Eintrag eine ID automatisch eingetragen, zumindest wenn man die Tabelle entsprechend programmiert hat.
    Wenn man jetzt einen Datensatz löscht bleibt die ID aber scheinbar reserviert.
    Wie kann ich jetzt die Tabelle entsprechend sortieren, daß die ID's immer fortlaufend mit der niedrigsten freien Zahl vergeben werden?
    Und das am besten per PHP-Script bei der Übergabe der neuen Daten?
     
  2. Das nennt sich Auto-Increment (Automatisches Hochzählen), dieses sollte tunlichst nicht manipuliert werden. ;)

    gruss conny
     
  3. Das meinte ich mit richtig programmiert...

    Das soll wohl heißen es geht nicht ?
    Schade, das macht mir jetzt etwas mehr Arbeit...
     
  4. Ist für dich im Moment ein bissle Mehrarbeit, aber immer noch besser so, als ob nachher der MySQL-Server mehr Arbeiten muss und Resourcen frisst.

    So wie du dir das Vorstellst, müsste ja der Server bei jedem neuen Datensatz erstmal suchen, ob irgendwelche freien ID's von gelöschten Datensätzen existieren.

    Verlangsamt den Server ungemein ;)

    Warum machst du dir nicht ein sep. Feld in deine Tabelle mit einer Eigenen ID.
    Diese kannst du gestalten wie du lustig bist.


    gruss conny
     
  5. Weil ich dann ja jedesmal beim Eintrage gucken müßte welche ID frei ist.

    Er müßte das ja immer nur tun wenn ich einen User aus der Tabelle entfernt habe, bei wahrscheinlich max. 20-30 Einträgen kann das den Server ja nicht so sehr belasten.

    Aber wo wir uns gerade sprechen - ich habe da noch eine Frage zum Ändern von einzelnen Daten einer Tabelle.
    Ich habe ein Usercenter, in dem ich als Administrator User anlegen und löschen kann, und jeder User selber kann sein Passwort ändern.
    Der Code für den Eintrag des geänderten Passwortes sieht so aus:
    Code:
                       $passwordneu = md5($_POST['passwordneu']);
    					$query1 = UPDATE->autoren' SET->password' =->$passwordneu' WHERE->username' = .$_SESSION['sess_username']. LIMIT 1;
    					mysql_query($query1);
    					echo<center>Das Passwort wurde geändert.</center>;
    					mysql_close($dz);
    Mit echo$query1 sehe ich ja in der Ausgabe was das Script an die DB übergeben will, aber ändern tut sich in der Datenbank nichts.
    Wie muß ich es also richtig schreiben?
     
  6. Code:
    <?php
    
    $passwordneu = md5($_POST['passwordneu']);
    $query1 = UPDATE autoren SET password =->.$passwordneu.' WHERE username =->.$_SESSION['sess_username'].' LIMIT 1;
    mysql_query($query1);
    echo<center>Das Passwort wurde geändert.</center>;
    mysql_close($dz);
    
    ?>
    
    Bissle viele Dödels => ' in der Query ;) ;) ;)

    Bei Tabellen und Feldnamen brauchste keine ;)
    Beim Usernamen hast du sie vergessen ;)

    gruss conny
     
  7. Warum sollst du da beim Eintragen drauf Achten, die neuen Einträge werden halt immer hinten angehängt.

    Ob nun zwischendurch ein paar ID's frei sind ist doch theoretisch Jacke wie Hose ;D

    gruss conny
     
  8. Die hatte ich anfangs auch nicht, aber da es ja nicht funktionierte habe ich mal geguckt wie PHPmyAdmin das schreibt, und da sind die Dödels auch vorhanden, deshalb habe ich sie auch mal eingetragen.

    Und mit den ID's ist zwar Jacke wie Hose, aber ich habe in dem Admin-Bereich auch die Möglichkeit User zu löschen, der Einfachheit halber habe ich einfach ein Eingabefeld in das man die ID des Users, der gelöscht werden soll, eine Liste der angelegten User mit ID steht weiter oben auf der Seite, einträgt und dann isser weg...
    Wenn jetzt die Seite ein paar Jahre im Netz stehen sollte kommen irgendwann bei 30 angelegten Usern Ergebnisse wie Lösche ID 350..., da wahrscheinlich regelmäßig welche gelöscht und andere neu hinzugefügt werden müssen.
    Aber dann werde ich auch das Script zum Löschen ändern.
     
  9. Trotzdem hatte es bei den Feldern Passwort und Username nicht gestimmt.
    Da du einen String eintragen willst, musst du den String auch als solches kennzeichnen.

    Form => feldname =-> . $string .->

    ohne die Space natürlich, die sind nur damit man es besser erkennt.

    Mach mal ein echo $query1 und poste es mal hier (natürlich nur Beispieldaten).

    gruss conny

    edit:
    und das Limit 1 brauchst du auch nicht, da der Username ja eindeutig sein sollte ;)
    Ich mache meine Updates immer auf Basis der ID, die ist 100% eindeutig ;)
     
  10. Code:
    UPDATE autoren SET password =->83e71d83b2dcea23dcab3b64182494cc' WHERE username =->noah'
    Sieht jetzt so aus und funktioniert.
     
Die Seite wird geladen...

MySQL Tabelle sortieren - Ähnliche Themen

Forum Datum
PHP - MySQL Tabellenattribute ausgeben Windows XP Forum 5. Jan. 2008
mySQL Tabelle ändern Webentwicklung, Hosting & Programmierung 24. Dez. 2007
mysql - tabellen verbinden Windows XP Forum 10. Dez. 2006
MySQL DELETE über mehrer Tabellen Windows XP Forum 12. Juli 2006
mysql mehrere tabellen löschen Webentwicklung, Hosting & Programmierung 22. Sep. 2005