Ankündigung

Einklappen
Keine Ankündigung bisher.

Funktion: Tabellen-Eintral kopieren

Einklappen

Neue Werbung 2019

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

  • Funktion: Tabellen-Eintral kopieren

    Hallo ihr Lieben!

    Da sowohl Google als auch die Foren-Suchfunktion mich nicht weiter gebracht haben, hoffe ich ihr könnt mir helfen. (Sollte das Problem bekannt sein, bitte ich den Post zu entschuldigen, ich habe tatsächlich nichts gefunden.)

    Ich wollte fragen, ob es eine Funktion gibt die mir einen bestimmten Eintrag in einer bestimmten Tabelle kopiert und mir den neuen PK zurückgibt.

    Beispielsweise so:
    Tabelle Nahrungsmittel:
    (id)2 (name)Knäckebrot (broteinheiten)1
    4 Banane 1
    13 Schnitzel 3
    14 Buttermilch 1
    Mit den Feldern "id" (AI,PK),"name","broteinheiten".

    PHP-Code:
    function copyentry ($entryid,$entrytable,$entrypk) {
    ???
    return (
    $newid);

    Am obigen Beispiel:
    PHP-Code:
    $newid=copyentry(13,nahrungsmittel,id
    erzeugt den Eintrag
    15 Schnitzel 3
    und liefert mit "newid" den Wert "15" zurück.

    Gibt es so etwas und wenn nicht, wie kann ich es möglicherweiße allgemeingültig für alle möglichen Tabellen (solange der PK mit AI hochzählt) umsetzen?

    Für jeden Ratschlag wäre ich euch sehr dankbar!

    Liebe Grüße,
    Aldo
    Worte sind noch keine Taten.
    (Fjodor Michailowitsch Dostojewskij)

  • #2
    Die ID kriegst du mit "last_insert_id". Zuvor musst du natürlich die Daten eintragen.

    SQL-Befehle für Datenbankeinträge kriegst du über PHP-MYADMIN.

    Kommentar


    • #3
      Hallo! Vielen Dank erstmal für die schnellen Antworten!

      Gut, mit dieser Funktion kann ich schonmal was zurückgeben. Das Data-Warehaus ist für meine Zwecke leider ungeeignet.

      Und ein SQL-Befehl der ganz einfach einen bestimmten Eintrag kopiert, gibt es nicht?
      (Ohne die Felder des Eintrages auslesen und neu reinschreiben zu müssen?)

      Liebe Grüße,
      Aldo
      Worte sind noch keine Taten.
      (Fjodor Michailowitsch Dostojewskij)

      Kommentar


      • #4
        Zitat von Aldo Noba Beitrag anzeigen
        Und ein SQL-Befehl der ganz einfach einen bestimmten Eintrag kopiert, gibt es nicht?
        (Ohne die Felder des Eintrages auslesen und neu reinschreiben zu müssen?)
        Natürlich gibt's den, INSERT … SELECT.
        [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

        Kommentar


        • #5
          Verzeiht das viele Nachfragen, leider mache ich irgendetwas falsch.

          Code:
          INSERT INTO item
          SELECT *
          FROM item WHERE itemid = 1
          Wenn ich das mache bekomme ich
          #1062 - Duplicate entry '1' for key 1
          ,
          da der pk=1 ja leider schon vergeben ist. Kann ich den pk irgendwie herausfiltern aus dem Befehl bzw. ihn automatisch um 1 erhöhen?

          Liebe Grüße,
          Aldo
          Worte sind noch keine Taten.
          (Fjodor Michailowitsch Dostojewskij)

          Kommentar


          • #6
            statt "*" nimm einfach "name, broteinheiten"
            "My software never has bugs, it just develops random features."
            "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

            Kommentar


            • #7
              Zitat von Aldo Noba Beitrag anzeigen
              Code:
              INSERT INTO item
              SELECT *
              FROM item WHERE itemid = 1
              Wenn ich das mache bekomme ich
              ,
              da der pk=1 ja leider schon vergeben ist. Kann ich den pk irgendwie herausfiltern aus dem Befehl bzw. ihn automatisch um 1 erhöhen?

              Liebe Grüße,
              Aldo
              klar, wenn du versuchst einen PRIMARY zu dumlizieren also versuchst zwei einträge zu machen, die den gleichen PRIMARY key haben ...
              PHP-Code:
              if ( $humans >= ) {
                 
              war ();

              Kommentar


              • #8
                Soweit hab ich verstanden. Doch gibt es keinen Befehl, der den Eintrag ohne Angabe der Einzelfelder kopiert? (Den ich folglich auch nicht ändern muss, wenn ich an der Tabellenstruktur etwas ändere bzw. der pauschal für alle Tabellen gelten kann?)

                Liebe Grüße,
                Aldo


                EDIT: Die Funktion für die letzte ID ging nicht, habe aber diese hier gefunden: "mysql_insert_id();"

                Liebe Grüße,
                Aldo
                Worte sind noch keine Taten.
                (Fjodor Michailowitsch Dostojewskij)

                Kommentar

                Lädt...
                X