weg mit den leeren zellen!

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

  • weg mit den leeren zellen!

    moin,
    ich habe eine tabelle in der name, vorname usw. eingetragen werden. in der gleichen tabelle lasse ich auch domains eingeben.

    id | name | vorname | domain1 | domain2 | domain3 | usw. max. domain20

    wie kann ich es jetzt machen, dass wenn ich die domain2 eines names löschen möchte, die hinteren domains "aufrutschen"? ich also sozusagen, keine leeren felder in der tabellenzeile habe.

    ich weiss nicht wie ich das problem anpacken soll, entweder wie oben beschrieben mit "aufrutschen" oder hab ich auch eine möglichkeit beim auslesen, leere zellen zu "überspringen" und nicht ausgeben zu lassen?

    Zuletzt geändert von whoda; 28.01.2003, 09:48.

  • #2
    Mormalisiere mal lieber Deine Tabelle
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      was hast du gegen meine tabelle?

      Kommentar


      • #4
        hier stimme ich MelloPie absolut zu.

        deine tabelle ist einfach nicht gut durchdacht.

        mache zwei tabellen draus.

        user
        -------
        userid
        name
        vorname

        domains
        --------
        domainid
        domain
        userid

        in user trägst du nur vor- und nachname ein. die id wird automatisch vergeben (autoincrement)

        unter domains trägst du dann die domains ein. die domainid sollte autoincrement sein.
        unter domain trägst du den domainnamen ein. dieses feld sollte UNIQUE sein.
        unter userid trägst du die id des users ein, dem die domain gehört.
        fertig.

        EDIT:
        auflisten kannst du die domains dann mit dieser query
        Code:
        SELECT * FROM user LEFT OUTER JOIN domains USING(userid);

        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          besten dank für eure hilfe,

          habt recht gehabt, wenn man sich davor einiges genauer überlegt, dann stösst man später auch nicht auf soviel probleme!
          hab meine tabellen jetzt schön zerlegt!!

          der befehl zum auflisten ist doch identisch mit diesem

          PHP-Code:
          SELECT FROM user AS Adomain AS B where A.userid=B.userid and B.userid='$lastID' 
          hat der eine oder andere irgenwelche vorteile, oder ist es gleich welchen ich benutzt.
          funzen tut es auf jeden fall.

          nochmal besten dank

          Kommentar


          • #6
            ich kann es dir jetzt nicht genau erklären.

            aber A * B = große matrix, die verglichen werden muss. siehe WHERE A=B

            wenn man das mit JOIN macht, in diesem fall mit LEFT OUTER JOIN, werden aus tabelle A die werte nur einmal genommen und dadurch die matrix minimiert, was zu einer besseren performance führt.

            musste mal bei www.mysql.com schauen, wie genau das jetzt ist.

            wenn du meine query nimmt, kannst du auch noch B.userid='$lastID' verwenden.

            Code:
            SELECT * FROM user U LEFT OUTER JOIN domains D USING(userid) WHERE U.userid = '$lastID';
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar

            Lädt...
            X