Messaging-System + Fotos anhängen

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

  • Messaging-System + Fotos anhängen

    Hallo!

    Sitz momentan etwas auf dem Schlauch - mir fehlt eine Idee zur Umsetzung.

    Sicher kennt Ihr Communities, bei denen User Bilder speichern können. Dort können die User auch anderen Usern Messages senden (systemintern) und auf Wunsch Bilder anhängen.

    Soweit so gut - Messages kein Problem. Aber wie würdet Ihr denn den Bilder-Anhang lösen? Ich kann doch nicht für eine Message bis zu 30 Spalten voranlegen, damit bis zu 30 Bilder mitgesandt werden können.

    Und wenn ich es über eine neue Tabelle löse - z.B. Message-ID + Bild 1 sowie Message-ID + Bild 5 - dann müsste ich ja sofort nach der Anlage der Message sofort die ID haben um diese Verknüpfung herstellen zu können.

    Hat jemand vielleicht eine andere Idee? Oder gibts nen Befehl, das sofort die angelegte ID aus der Datenbank zurückgibt? Müsste man erst wieder abfragen oder?

    THX
    birdy

  • #2
    afaik ja

    PHP-Code:
    // Die neueste ID abrufen
    $query mysql_query("SELECT id FROM table ORDER BY id DESC LIMIT 1");

    // Ich höre schon den Flame für die folgende Funktion :p
    $id mysql_result($query0);

    // ist aber imho die einfachste Lösung... 
    Und dann - wie du schon gesagt hast - in einem zweiten Table die Bilder speichern...
    [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

    Kommentar


    • #3
      das problem is - was ist wenn zu der zeit 2 oder 4 oder 20 user eine message schreiben - aber wahrscheinlich hast du recht - ich muss halt das limit1 auf den einen user beschränken - wird wohl nicht anders gehen...

      thx

      Kommentar


      • #4
        Die Wahrscheinlichkeit, dass in den 2ns zwischen deinem INSERT und SELECT Befehl irgendwer hineinpfuscht, ist gleich 0...

        Du kannst natürlich auch alles auf einmal machen:
        PHP-Code:
        $sql "INSERT INTO table some_data; SELECT id FROM...";
        $query mysql_query(); 
        [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

        Kommentar


        • #5
          hehe okay - hast recht die wahrscheinlichkeit wird wohl sehr gering sein ;-)

          thx
          und schöne ostern

          Kommentar


          • #6
            LAST_INSERT_ID(), mysql_insert_id()

            Das ist eine gute Frage, und die Antwort(Lösung) steht in mysql Manual.

            Abschnitt 1.9.5.3 atomic transactions
            Abschnitt 12.9.3, Funktion LAST_INSERT_ID() ,
            Abschnitt 22.2.3.36 Funktion mysql_insert_id().

            Eine Variante wäre noch eine eigene ID-Verwaltung zu machen und das feld UNIQUE zu haben. Dann misslingt der Insert (ähnlich wie bei Ethernet Kollisionen, usw.)

            edit: völlig überarbeitet.
            Zuletzt geändert von miximaxi; 16.04.2006, 13:05.

            Kommentar

            Lädt...
            X