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

  • Aldo Noba
    hat ein Thema erstellt Funktion: Tabellen-Eintral kopieren.

    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

  • Aldo Noba
    antwortet
    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

    Einen Kommentar schreiben:


  • PhillKill12
    antwortet
    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 ...

    Einen Kommentar schreiben:


  • Paul.Schramenko
    antwortet
    statt "*" nimm einfach "name, broteinheiten"

    Einen Kommentar schreiben:


  • Aldo Noba
    antwortet
    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

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    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.

    Einen Kommentar schreiben:


  • Aldo Noba
    antwortet
    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

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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.

    Einen Kommentar schreiben:

Lädt...
X