Daniel: &MySQL Datensatz

Hi,
ich hab da mal ne frage und zwar folgende:

  • Gibt es einen PHP-MySQL Befehl oder MySQL befehl mit dem man bei einem Datansatz ein Feld umschreiben kann?? oder muss ich den Kompletten Datansatz auslesen, Löschen und mit dem geänderten Feld hinzufügen.

Als "vorlage" hierzu dient das ich eine Benutzerverwaltung machen will. jeder Benutzer erhält eine ID. allerdings sollen sich diese auch löschen können. Problem dabei wenn sich nicht der letzte löscht kommt eine ID doppelt vor da die ID nach der Anzahl der zeilen in der Tabelle richtet. daher möchte ich denn die ID der Nachfolgenden Benutzer verändern damit wieder eine fortlaufende Reihe von 0 bis x entsteht.

Muss ich da jetzt alle nachfolgenden Datensätze auslesen, löschen und neu schreiben oder kann ich mit nem Befehl einfach die Benutz-ID ändern??

  1. Hi,

    • Gibt es einen PHP-MySQL Befehl oder MySQL befehl

    MySQL-Befehl. PHP bietet nur die Schnittstelle an und kann in der DB absolut nichts bewirken, was die DB nicht von sich aus könnte. Ein Problem kann niemals gleichzeitig zu MySQL und PHP gehören.

    mit dem man bei einem Datansatz ein Feld umschreiben kann??

    Ja, das nennt sich UPDATE.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. THX ich probiers gleich aus.

      als PHP-MySQL befehl versteh ich halt sowas wie z.B. mysql_num_rows()

      als MySQL befehl etwas wie "Select * from ..."

      trotzdem sag ich schonmal danke

      1. Hi,

        als PHP-MySQL befehl versteh ich halt sowas wie z.B. mysql_num_rows()

        das würde ich PHP-Befehl nennen, einfach um die faktische Trennung auch gedanklich durchzuführen.

        als MySQL befehl etwas wie "Select * from ..."

        Ja, das ist richtig.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. eindeutig:

    UPDATE #tabelle SET #feld1=#wert1,#feld2=wert2 WHERE #bedingungen

    Du musst aber gut aufpassen dass es wirklich nur die Datensätze ändert die du willst, da alle datensätze geändert werden, auf die die bedingungen zutreffen.

    Andy

    1. Du musst aber gut aufpassen dass es wirklich nur die Datensätze ändert die du willst, da alle datensätze geändert werden, auf die die bedingungen zutreffen.

      Andy

      also mal angenommen ich hab

      USER-ID
      0
      1
      2
      3
      4
      5
      6

      und 4 löscht sich dann mach ich
      UPDATE #tabelle SET USER-ID="4" WHERE USER-ID="5"
      UPDATE #tabelle SET USER-ID="5" WHERE USER-ID="6"

      und erhalte dann

      USER-ID
      0
      1
      2
      3
      4
      5

      oder??

      1. ja...
        für so was fällt mir noch was ein, ob das funktioniert weiß ich nicht.

        leg für die userid ein auto-increment-feld an (bei phpMyAdmin kann man das im letztena uswahlfeld auswählen; integer und primärschlüssel einstellen!)
        dann löscht du immer die spalte und fügst sie neu hinzu...
        müsste man mal ausprobieren.

        Andy

        1. ja...
          für so was fällt mir noch was ein, ob das funktioniert weiß ich nicht.

          leg für die userid ein auto-increment-feld an (bei phpMyAdmin kann man das im letztena uswahlfeld auswählen; integer und primärschlüssel einstellen!)
          dann löscht du immer die spalte und fügst sie neu hinzu...
          müsste man mal ausprobieren.

          das versteh ich jetzt irgendwie nicht, was soll das bewirken? ich weis das ich mit:
          ALTER TABLE #tabellenname ADD #spaltenname;
          ALTER TABEL #tabellenname DROP #spaltenname;

          spalten löschen bzw. hinzufügen kann, aber gehn damit nicht auch die eigenschaften (also Primärschlüssel) verloren??? und wenn dann bewirkt Primary-key ja nur das da was drinstehn muss und nummeriert nicht automatisch von 0 bis x, oder?

          1. Huhu Daniel

            Du solltest nochmal genau überlegen was eine ID ist und wozu man diese benutzt.

            Und warum möchtest Du die Datensätze in der Datenbank fortlaufend durchnummeriert haben?

            Viele Grüße

            lulu

            --
            bythewaythewebsuxgoofflineandenjoytheday
            1. Hi lulu,

              Du solltest nochmal genau überlegen was eine ID ist und wozu man diese benutzt.

              eine ID ist das wozu man sie benutzt.

              Und warum möchtest Du die Datensätze in der Datenbank fortlaufend durchnummeriert haben?

              gaanz einfach also pass auf. ich schau mit ner php abfrage wieviel zeilen die benutzertablle hat, hat sie keine bekommt der User die ID 0 usw.

              über die User-ID werden daten in anderen Tabellen angesprochen und über die ID ist klar zu welchem User sie gehören, so kann der User nur seine daten abrufen, ändern etc.

              wenn ich nun aber User-ID's doppelt vorkommen da sie nicht vortlaufend sind gibts da ein problem. Was wohl jedem klar sein sollte.
              Und wie sollte ich die User-ID sonst machen??um nicht irgendwann sowas wie
              User-ID
              0
              1
              5
              8
              100
              ...
              zu haben

              1. hi,

                Du solltest nochmal genau überlegen was eine ID ist und wozu man diese benutzt.

                eine ID ist das wozu man sie benutzt.

                was zum henker soll das?
                lulu hat dir diese frage nicht ohne grund gestellt - also warum antwortest du derart blöd darauf?

                Und warum möchtest Du die Datensätze in der Datenbank fortlaufend durchnummeriert haben?

                gaanz einfach also pass auf. ich schau mit ner php abfrage wieviel zeilen die benutzertablle hat, hat sie keine bekommt der User die ID 0 usw.

                wozu soll das gut sein?

                wenn ich nun aber User-ID's doppelt vorkommen da sie nicht vortlaufend sind gibts da ein problem. Was wohl jedem klar sein sollte.

                und wenn du für die ID eine auto_increment-spalte nutzt, wird die ID nie doppelt vorkommen.
                was dir eigentlich klar sein sollte.

                Und wie sollte ich die User-ID sonst machen??um nicht irgendwann sowas wie
                User-ID
                0
                1
                5
                8
                100
                ...
                zu haben

                daran gibt es absolut nichts auszusetzen.

                eine ID hat nur einen einzigen zweck, nämlich einen datensatz eindeutig zu identifizieren.

                dein "wunsch" nach fortlaufenden IDs legt den verdacht nahe, dass du die ID noch für irgendetwas anderes missbrauchen willst, und dir deshalb sorgen um die "optik" machst.
                löse dich dringend von dieser vorstellung.

                gruß,
                wahsaga

                --
                /voodoo.css:
                #GeorgeWBush { position:absolute; bottom:-6ft; }
                1. Hi wahsaga,

                  und wenn du für die ID eine auto_increment-spalte nutzt, wird die ID nie doppelt vorkommen.

                  was ist eine auto_increment-spalte ?? wie stell ich das "ein"?? bei:

                  create table blabla(
                  blabla Int auto_increment);

                  ????? oder wie ?????

                  MfG

                  1. Hi,

                    und wenn du für die ID eine auto_increment-spalte nutzt, wird die ID nie doppelt vorkommen.
                    was ist eine auto_increment-spalte ?? wie stell ich das "ein"?? bei:

                    Was hält Dich davon ab, unter dem Stichwort auto_increment im Handbuch nachzugucken?

                    cu,
                    Andreas

                    --
                    Warum nennt sich Andreas hier MudGuard?
                    Schreinerei Waechter
                    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
                    1. Hi Andreas,

                      Was hält Dich davon ab, unter dem Stichwort auto_increment im Handbuch nachzugucken?

                      das ist hässlich und ist alles schrecklich erklärt und es ist auf english. wenn ich was erklärt haben will dann auf deutsch und verständlich, bitte, danke.

                      MfG

                      1. hi,

                        Was hält Dich davon ab, unter dem Stichwort auto_increment im Handbuch nachzugucken?

                        das ist hässlich

                        deine mama auch.
                        (kein argument? deins ja auch nicht ...)

                        und ist alles schrecklich erklärt und es ist auf english.

                        es gibt auch eine deutsche version.

                        wenn ich was erklärt haben will dann auf deutsch und verständlich, bitte, danke.

                        wenn wir hier jemandem helfen sollen, dann sollte der auch ein _wenig_ eigeninitiative zeigen, bitte, danke.

                        wir reichen gerne neues klopapier, wenn's dir ausgegangen ist - abgewischt wird dann aber selber, OK?

                        gruß,
                        wahsaga

                        --
                        /voodoo.css:
                        #GeorgeWBush { position:absolute; bottom:-6ft; }
                        1. deine mama auch.
                          (kein argument? deins ja auch nicht ...)

                          das weis ich, das brauchst du mir nicht sagen.

                          wenn wir hier jemandem helfen sollen, dann sollte der auch ein _wenig_ eigeninitiative zeigen, bitte, danke.

                          wenn was "vernüftiges" kommt mit dem ich was anfangen kann kein problem.

                          wir reichen gerne neues klopapier, wenn's dir ausgegangen ist - abgewischt wird dann aber selber, OK?

                          Danke, ist ja schonmal ein anfang.

                        2. Hallo wahsaga,

                          wir reichen gerne neues klopapier, wenn's dir ausgegangen ist - abgewischt wird dann aber selber, OK?

                          ich fürchte nein ...

                          Grüße aus Nürnberg
                          To*scnr*bias

                      2. Hi,

                        Was hält Dich davon ab, unter dem Stichwort auto_increment im Handbuch nachzugucken?
                        das ist hässlich und ist alles schrecklich erklärt und es ist auf english.

                        Offensichtlich hast Du die verlinkte Startseite des deutschsprachigen Handbuchs überhaupt nicht angeguckt.

                        wenn ich was erklärt haben will dann auf deutsch

                        Die von mir verlinkte Version des Handbuchs ist in deutscher Sprache (wie man am "/de/" in der URL erkennt - bei der englischen Version steht dort "/en/".

                        und verständlich, bitte, danke.

                        Naja, das setzt natürlich auch Verstand Deinerseits voraus.
                        Da Du aber noch nicht mal erkennst, daß der Text der Seite deutschsprachig ist, sehe ich da wenig Hoffnung für Dich.

                        cu,
                        Andreas

                        --
                        Warum nennt sich Andreas hier MudGuard?
                        Schreinerei Waechter
                        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
                        1. Offensichtlich hast Du die verlinkte Startseite des deutschsprachigen Handbuchs überhaupt nicht angeguckt.

                          doch

                          Die von mir verlinkte Version des Handbuchs ist in deutscher Sprache (wie man am "/de/" in der URL erkennt - bei der englischen Version steht dort "/en/".

                          das ist schön aber wenn ich nach einem Stichwort suche bringt er englischen käse

                          1. Hallo Daniel,

                            Die von mir verlinkte Version des Handbuchs ist in deutscher Sprache (wie man am "/de/" in der URL erkennt - bei der englischen Version steht dort "/en/".
                            das ist schön aber wenn ich nach einem Stichwort suche bringt er englischen käse

                            mal abgesehen davon, dass man die Bereitschaft, englische Dokumentationen zu lesen, mitbringen sollte, wenn man sich mit PHP, MySQL und Co. beschäftigt - dann verwende eben http://www.mysql.de/search/.

                            Grüße aus Nürnberg
                            Tobias

                2. Hi wahsaga,

                  Du solltest nochmal genau überlegen was eine ID ist und wozu man diese benutzt.

                  eine ID ist das wozu man sie benutzt.

                  was zum henker soll das?
                  lulu hat dir diese frage nicht ohne grund gestellt - also warum antwortest du derart blöd darauf?

                  wenn ich die ID benutze um damit die Uhrzeit zu berechnen benutzte ich sie dazu, PUNKT. (wobei ich das nicht tue)

                  dein "wunsch" nach fortlaufenden IDs legt den verdacht nahe, dass du die ID noch für irgendetwas anderes missbrauchen willst, und dir deshalb sorgen um die "optik" machst.
                  löse dich dringend von dieser vorstellung.

                  Mein "wunsch" wie du es nennst, ging in erfüllung und damit bin ich glücklich. danke nochmals an denjenigen mit dem UPDATE tipp.

                  MfG

                  1. hi,

                    wenn ich die ID benutze um damit die Uhrzeit zu berechnen benutzte ich sie dazu, PUNKT.

                    dann hättest du keine ahnung vom aufbau eines halbwegs vernünftigen datenmodells, PUNKT.

                    (wobei ich das nicht tue)

                    warum dann dieses absurde beispiel?

                    Mein "wunsch" wie du es nennst, ging in erfüllung und damit bin ich glücklich.

                    na klar, bis zum nächsten problem ...

                    gruß,
                    wahsaga

                    --
                    /voodoo.css:
                    #GeorgeWBush { position:absolute; bottom:-6ft; }
              2. Hi,

                über die User-ID werden daten in anderen Tabellen angesprochen und über die ID ist klar zu welchem User sie gehören,

                Ja, und genau deswegen sollte sich die User-ID auch nicht ändern, denn sonst ist nicht mehr klar, zu welchem User sie gehören bzw. sie gehören plötzlich zu einem anderen User.

                cu,
                Andreas

                --
                Warum nennt sich Andreas hier MudGuard?
                Schreinerei Waechter
                Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
                1. Hi,

                  über die User-ID werden daten in anderen Tabellen angesprochen und über die ID ist klar zu welchem User sie gehören,

                  Ja, und genau deswegen sollte sich die User-ID auch nicht ändern, denn sonst ist nicht mehr klar, zu welchem User sie gehören bzw. sie gehören plötzlich zu einem anderen User.

                  cu,
                  Andreas

                  nö warum?? muss das nur bei allen tabellen ändern

                  1. Hi,

                    über die User-ID werden daten in anderen Tabellen angesprochen und über die ID ist klar zu welchem User sie gehören,
                    Ja, und genau deswegen sollte sich die User-ID auch nicht ändern, denn sonst ist nicht mehr klar, zu welchem User sie gehören bzw. sie gehören plötzlich zu einem anderen User.
                    nö warum?? muss das nur bei allen tabellen ändern

                    Wesentlich einfacher wäre es, die ID überhaupt nicht zu ändern.

                    cu,
                    Andreas

                    --
                    Warum nennt sich Andreas hier MudGuard?
                    Schreinerei Waechter
                    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
                    1. Hi Andreas

                      Wesentlich einfacher wäre es, die ID überhaupt nicht zu ändern.

                      nein da es dann zu doppelten ID's kommt, und das ist nicht gut!

                      1. Huhu Daniel

                        nein da es dann zu doppelten ID's kommt, und das ist nicht gut!

                        Genau, eben darum kann man in Spalten vom Typ 'primary (key)' oder 'unique'
                        auch gar nicht erst einen Datensatz mit doppelt vergebenen Wert erzeugen.
                        Da passt die Datenbank schon auf.
                        Das musst Du also gar nicht selbst nachbauen.
                        Und zur Vergabe einer eindeutigen ID reicht es eine Spalte vom Typ primary key mit auto_increment zu verwenden.

                        Viele Grüße

                        lulu

                        --
                        bythewaythewebsuxgoofflineandenjoytheday
                        1. Huhu Daniel

                          nein da es dann zu doppelten ID's kommt, und das ist nicht gut!

                          Genau, eben darum kann man in Spalten vom Typ 'primary (key)' oder 'unique'
                          auch gar nicht erst einen Datensatz mit doppelt vergebenen Wert erzeugen.
                          Da passt die Datenbank schon auf.
                          Das musst Du also gar nicht selbst nachbauen.
                          Und zur Vergabe einer eindeutigen ID reicht es eine Spalte vom Typ primary key mit auto_increment zu verwenden.

                          Viele Grüße

                          lulu

                          und wie geht das???????????????

                      2. Hi,

                        Hi Andreas

                        Wesentlich einfacher wäre es, die ID überhaupt nicht zu ändern.

                        nein da es dann zu doppelten ID's kommt, und das ist nicht gut!

                        Wieso kommt es dann zu doppelten IDs?
                        Weil Du aus irgendwelchen Gründen auto_increment nicht benutzt?

                        cu,
                        Andreas

                        --
                        Warum nennt sich Andreas hier MudGuard?
                        Schreinerei Waechter
                        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  3. hat sich glaub ich erledigt,
    zumindest das mit dem auto_increment, hab bei selfphp mal gesaerch und was gefunden, wenn ich das richtig interpretiere fürgt man das genauso wie not_null hinzu, was es bewirkt versteh ich aber trotzdem nicht, und da es so funktioniert wie ichs gemacht habe werd ich es wohl kaum ändern. Außer jmd erklärt mir das richtig und legt mir die anscheinden Vorteile nahe.

    Fals sich durch irgendeinen post von mir zu diesem thema sich irgendjemand angegriffen fühlt tut es mir leid und möchte ich mich an dieser Stelle Entschuldigen.

    1. Fals sich jmd dafür intressiert wie ich drauf komm, bzw was ich meine was ich interpretiert hab.

      http://www.selfphp.info/funktionsreferenz/mysql_funktionen/mysql_field_flags.php#beschreibung