Anzeige:
Ergebnis 1 bis 11 von 11

Thema: MySQL-DB auslesen - je nach kategorie

  1. #1
    Registrierter Benutzer
    Registriert seit
    23.08.2002
    Ort
    Haiger am Niel *g*
    Beiträge
    74

    MySQL-DB auslesen - je nach kategorie

    hi all,
    ich muss eine MySQL DB auslesen, die recht groß ist. Sie ist so aufgabaut, dass jede Datenreihe ein Feld mit Kategorien enthält, denen die Daten zugehörig sind. z.B.: stehen im Feld "cat" die Werte "cat1;cat2;cat5".
    Wie lese ich jetzt die DB so aus, das ich nur Datensätze bekomme die einer bestimmten Kategorie zugehörig sind? Das Problem ist, dass das schon beim Einlesen passieren muss, da die DB wirklich sehr groß ist und keine unnötigen Daten gelesen werden sollen.
    Ausgelesen wird das ganze von einem PHP-Script über nen Web-server.

    PS: Bin nicht so der MySQL freak...
    Geändert von ~Gh05t~ (05-06-2004 um 11:18 Uhr)
    [Workstation]Intel Core2 Duo E8400/4GB, ATI HD4830 @ kUbuntu/Win7pro
    [Server] Via Epia SP13000/512MB @ Ubuntu LTS Server
    [Mobil] Intel Pentium M 1,86Ghz/512MB/ATI X600M (Asus M6974VLP) @ xUbuntu

  2. #2
    Registrierter Benutzer Avatar von Hans-Georg Normann
    Registriert seit
    04.03.2000
    Ort
    Uetersen
    Beiträge
    571
    So ganz habe ich nicht verstanden, was du genau benötigst. Aber grundsätzlich sollten doch MySQL Abfrgane in dieser Form funktionieren:
    PHP-Code:
    select Feld1,Feld2,....Feldn
    From MyTable
    Where cat 
    'cat2' 
    Wenn eben möglich, versuch das ganze erst am SQL Prompt. Erst wenn es da lauffähig ist übertragen.

    Hans
    333 Mhz, 466 MHz, neee, ich hab was neues zuhause.....

  3. #3
    Registrierter Benutzer Avatar von fs111
    Registriert seit
    23.03.2002
    Beiträge
    594
    Ich glaube Du solltest erstmal einen Grundkurs in Datenentwurf machen, und dann mit Datenbanken rumspielen, mir scheint Dir fehlen da die elementarsten Grundlagen...

    fs111

  4. #4
    Registrierter Benutzer
    Registriert seit
    23.08.2002
    Ort
    Haiger am Niel *g*
    Beiträge
    74
    Dankeschön...
    Da hab ichs wieder, keiner versteht mich und ich werde als kompletter Anfänger abgetan. Ganz so einfach ist es nicht.
    Ich soll eine DB-Verwaltung für einen weltweiten Sportverband schreiben, dessen Datenbank Informationen über die einzelnen Sportler enthält.
    Die DB sieht folgendermaßen aus:
    PHP-Code:
    CREATE TABLE `members` (
      `
    idint(8NOT NULL auto_increment,
      `
    contactvarchar(150NOT NULL default '',
      `
    adresstext NOT NULL,
      `
    phonevarchar(50NOT NULL default '',
      `
    handyvarchar(50NOT NULL default '',
      `
    emailvarchar(50NOT NULL default '',
      `
    countryvarchar(80NOT NULL default '',
      `
    sportstext NOT NULL,
      
    PRIMARY KEY  (`id`)
    ENGINE=MyISAM AUTO_INCREMENT=
    So ähnlich sieht die aus, daran kann ich schon mal nichts mehr ändern.
    Ich erstelle DBs normal so, das sie dynamisch arbeiten bzw. so klein sind, dass man sie komplett auslesen kann und dann selektieren.
    Ich Habe nun aber Sportler, die bei "sports" einen Eintrag haben wie "bike;snowboard;skateboard".
    Wie lautet nun ein passender MySQL Befehl um alle Sportler aus der DB zu lesen, die Snowboard fahren?? Da reicht " WHERE sports='snowboard' " wohl nicht
    [Workstation]Intel Core2 Duo E8400/4GB, ATI HD4830 @ kUbuntu/Win7pro
    [Server] Via Epia SP13000/512MB @ Ubuntu LTS Server
    [Mobil] Intel Pentium M 1,86Ghz/512MB/ATI X600M (Asus M6974VLP) @ xUbuntu

  5. #5
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638
    Original geschrieben von ~Gh05t~
    Ich Habe nun aber Sportler, die bei "sports" einen Eintrag haben wie "bike;snowboard;skateboard".
    Wie lautet nun ein passender MySQL Befehl um alle Sportler aus der DB zu lesen, die Snowboard fahren?? Da reicht " WHERE sports='snowboard' " wohl nicht
    Schon einmal ins Manual gesehen, z. B. hier: http://dev.mysql.com/doc/mysql/de/St...functions.html ?

    Pingu

  6. #6
    Registrierter Benutzer Avatar von elrond
    Registriert seit
    03.10.2001
    Ort
    potsdam
    Beiträge
    881
    versuch's mit
    PHP-Code:
     WHERE sports like '%snowboard%' 
    , und eben doch mit dem Lesen des Handbuchs.
    Du redest hier die ganze Zeit nicht von einer Datenbank, sonderen einer Datenbanktabelle ...

    PS: Das ist keine Klugscheißerei, sondern DB-Grundlage...
    "Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)

  7. #7
    Registrierter Benutzer
    Registriert seit
    23.08.2002
    Ort
    Haiger am Niel *g*
    Beiträge
    74
    Okok, dass ich kein DB-Freak bin habe ich ja schon gesagt... aber ich kann das was ich im normalen Gebrauch so benötige ganz gut (das was es bei php.net so zu lernen gibt ), für mehr reicht es im moment nicht. Habe genug anderes was ich mir im moment aneigne, und normalerweise ist man in so einem Forum doch recht gut beraten.
    Ich war übrigens auf der mysql homepage, habe aber auf anhieb nichts passendes gefunden und hatte keine lust mir diese riesen mengen Text durchzulesen, nur um diese eine Funktion rauszufinden ... im mom bin ich dabei mich in die Microprozessortechnik einzuarbeiten, so viel Zeit habe ich leider nicht

    PS: THX für die Antwort
    [Workstation]Intel Core2 Duo E8400/4GB, ATI HD4830 @ kUbuntu/Win7pro
    [Server] Via Epia SP13000/512MB @ Ubuntu LTS Server
    [Mobil] Intel Pentium M 1,86Ghz/512MB/ATI X600M (Asus M6974VLP) @ xUbuntu

  8. #8
    Registrierter Benutzer Avatar von elrond
    Registriert seit
    03.10.2001
    Ort
    potsdam
    Beiträge
    881
    wie's aussieht ist das nur eine tabelle
    "Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)

  9. #9
    Registrierter Benutzer
    Registriert seit
    02.07.2003
    Beiträge
    118
    Original geschrieben von elrond
    wie's aussieht ist das nur eine tabelle
    Oh, dann ist ja die Datenbank überflüssig.
    Dann reicht auch eine Datei.
    Das Geld wird nicht weniger, es wechselt nur den Besitzer...

  10. #10
    Registrierter Benutzer Avatar von elrond
    Registriert seit
    03.10.2001
    Ort
    potsdam
    Beiträge
    881
    ...oder doch gleich eine statische lösung...
    "Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)

  11. #11
    Registrierter Benutzer
    Registriert seit
    02.07.2003
    Beiträge
    118
    Original geschrieben von elrond
    ...oder doch gleich eine statische lösung...
    Jau, nen Zettel mit Linien und einem Rand.
    Damit ist man sogar mobil.;-)
    Das Geld wird nicht weniger, es wechselt nur den Besitzer...

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •