PHP -> SQL

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

  • PHP -> SQL

    Hallo Titus,

    ich habe mir im Forum Ihr Profil angeschaut und gesehen, das Sie in MYsql sowie PHP programmieren können.

    Daher wende ich mich mit meiner Frage an Sie.

    Ich habe eine SQL Tabelle auf einem Server: db35.puretec.de.

    Dort habe ich eine Datenbank :db45344543
    Sowie eine Tabelle: benutzerdaten erstellt.

    Inhalt:

    create table benutzerdaten(
    ID INT NOT NULL,
    PRIMARY KEY(ID),
    Name_des_Unternehmens_1 char(50) NOT NULL,
    Name_des_Unternehmens_2 char(50),
    Name_des_Unternehmens_3 char(50),
    Adresse_1 char(50)NOT NULL,
    Adresse_2 char(50),
    Adresse_3 char(50),
    PLZ INT(10) NOT NULL,
    Ort char(50)NOT NULL,
    Bundesland char(50),
    Land char(50)NOT NULL,
    Telefon_1 int(50) NOT NULL,
    Telefon_2 int(50),
    Telex int(50),
    Telefax int(50),
    E_MAil char(50),
    URL_der_Website char(50),
    URL_des_Infomaterials char(50),
    Unternehmens_1 char(50),
    Unternehmens_2 char(50),
    Unternehmens_3 char(50),
    Kontaktperson char(50)NOT NULL,
    Kontaktperson_Abteilung char(50),
    Kontaktperson_Telefon int(20)NOT NULL,
    Kontaktperson_Mobiltelefon int(30),
    Kontaktperson_E_Mail char(50),
    Tätigkeit_des_Unternehmens char(255)NOT NULL,
    Beschreibung_1 char(255)NOT NULL,
    Beschreibung_2 char(255)NOT NULL,
    Schlüsselwort_1 char(40)NOT NULL,
    Schlüsselwort_2 char(50),
    Schlüsselwort_3 char(50),
    Schlüsselwort_4 char(50),
    Schlüsselwort_5 char(50),
    Schlüsselwort_6 char(50),
    Schlüsselwort_7 char(50),
    Schlüsselwort_8 char(50),
    Schlüsselwort_9 char(50),
    Schlüsselwort_10 char(50),
    Schlüsselwort_11 char(50),
    Schlüsselwort_12 char(50),
    Schlüsselwort_13 char(50),
    Schlüsselwort_14 char(50),
    Schlüsselwort_15 char(50),
    Schlüsselwort_16 char(50),
    Schlüsselwort_17 char(50),
    Schlüsselwort_18 char(50),
    Schlüsselwort_19 char(50),
    Schlüsselwort_20 char(50),
    Schlüsselwort_21 char(50),
    Schlüsselwort_22 char(50),
    Schlüsselwort_23 char(50),
    Schlüsselwort_24 char(50),
    Schlüsselwort_25 char(50),
    Schlüsselwort_26 char(50),
    Schlüsselwort_27 char(50),
    Schlüsselwort_28 char(50),
    Schlüsselwort_29 char(50),
    Schlüsselwort_30 char(50),
    Kapazitäten char(5)NOT NULL,
    Datum_der_Schaltung int(30) NOT NULL,
    Datum_der_Abschaltung int(30)NOT NULL,
    Dauer_der_Schaltung int(30)NOT NULL,
    Kundennummer int(255)NOT NULL
    );




    Jetzt möchte ich gerne ein Suchformular haben mit einer Suchfunktion, womit ich in allen Feldern der Tabelle nach meinem Suchbegriff suchen kann.

    Außerdem möchte ich mit einem anderen Formular in die Tabelle schreiben können, sowie jeden einzelnen datensatz auswählen können (Id1-unendlich).

    Könnten Sie mir vielleicht damit behilflich sein?

    Mir würde auch schon die Suchabfrage genügen.

    Würde mich dafür auch revangieren.

    Aber wie gesagt, die Suchabfrage würde mir reichen.

    mfg

    Tim Wranik



  • #2
    hi,

    zuerst einmal würde ich die tabellenstruktur in mehrere tabellen zerlegen (normalisierung)
    und diese dann über 1:n-beziehungen an die adressen koppeln. mögliche kandidaten
    hierfür wären folgende felder aus der geposteten tabelle:
    • Bundesland char(50),
    • Land char(50)NOT NULL,
    • Schlüsselwort_1 char(40)NOT NULL,
    • Schlüsselwort_2 char(50),
    • Schlüsselwort_X char(50),


    für die schlüsselworte würde ich eine tabelle nach folgendem muster anlegen (leider
    kann ich hier nur die ungefähre angaben machen, da ich gerade kein datenbankhandbuch
    zur hand habe):

    schluesselwort_id (primary key)
    schluesselwort char(50)

    danach eine m:n-beziehung zwischen den adressen und den schlüsselworten herstellen, d.h.
    eine weitere tabelle zum "linken" der schluesselworte an die adressen nach folgendem
    muster erstellen:

    as_link_id (primary key)
    adress_id
    schluesselwort_id

    nun kann man über folgendes sql-statement (mit unterabfrage)z.b. alle adressen mit einem
    bestimmten schlüsselwort ermitteln:

    Code:
    select * from adressen
    where adressen_id in
          (select adress_id from as_link
           left outer join on schluesselworte
           where schluesselwort = "TEXT")
    der vorteil dieser lösung liegt darin, dass die datenbankgroesse erheblich reduziert wird,
    da sich durch die auslagerung der schluesselworte in eine andere tabelle die datensatzgroesse
    verkleinert. ausserdem existieren nur noch datensätze, die wirklich benötigt werden.

    mfg
    el pollo diablo

    [Editiert von El_Pollo_Diablo am 15-08-2001 um 14:10]

    Kommentar

    Lädt...
    X