Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[MYSQL/PHP] Juiste querie gezocht

Anne
5 antwoorden
  • Ik ben vandaag is heel druk bezig geweest met MySQL. Geprobeerd elke normaalvorm te halen en alles zo flexibel mogelijk op te zetten, zodat je bijna niks hoeft te wijzigen als je na een jaar je dingetje afhebt :P

    [edit]
    Uiteindelijk doel: "Je selecteert een naam in een tabel. Het id dat bij die naam hoort wil ik vergelijken met een id in een andere tabel. Hoe maak je de juiste querie hiervoor?"
    [/edit]

    Ik zal wel even beginnen met de uitleg over m'n MySQL tabelletjes, zodat we daarna op de queries (schrijf je dat zo?) kunnen komen.

    Ik heb momenteel 4 tabellen en daar wil ik even wat resultaten mee boeken voordat ik wat ga uitbreiden hier en daar.

    De eerste tabel is 'content', hierin staan een aantal onbelangrijke dingen zoals: 'tekst', 'datum', 'auteur', 'titel' en een belangrijke: cat_id

    De tweede tabel is 'cat'. Deze bestaat uit de eerder genoemde 'cat_id' en daarnaast: 'hcat_id', 'scat_id' en 'beschrijving'.

    De derde tabel is 'hoofdcat'. Hierin zitten 'hcat_id', 'naam' en 'beschrijving'

    De vierde is 'subcat' met daarin: 'scat_id' en 'naam'. Volgen we het nog?

    'cat_id' is een unieke combinatie van 'scat_id' en 'hcat_id'. Daarom heeft deze een bescrhijving erbij. 'scat_id' heeft dat niet nodig.
    Hier kan het zo zijn dat 'scat_id' leeg is.

    Op de is 'naam' in 'hoofdcat' gelijk aan de eerste parameter van de hyperlink: http://dummylink.ex/parameen/

    De kolom 'naam' in 'subcat' is gelijk aan de de tweede parameter van de hyperlink http://dummylink.ex/parameen/paramtwee/

    Die parameters heb ik via een scriptje al naar een variabele omgezet zodat ze te gebruiken zijn in de querie.

    Nu is het globaal gezien de bedoeling dat als de hyperlink bijvoorbeeld iets is van /iets/ietsanders/ dat alle subcatagorieen van 'iets' worden opgezocht. Graag zou ik weten hoe ik dat moet dan. Ik kan zelf de benodigede querie niet echt vinden :roll:

    Alvast heel erg bedankt.

    -termin8or
  • De post is niet geheel duidelijk denk ik, daarom alvast iets wat momenteel wel is gelukt:[code:1:f621773a7c]<!– relaties (section) –>
    <?php
    $sql = 'SELECT * FROM hoofdcat ORDER BY hcat_id ASC';
    $result = mysql_query($sql);

    while ($row = mysql_fetch_array($result)){

    $naam = $row[1];
    $beschrijving = $row[2];

    print '<link rel="section" href="/'.$naam.'/" title="'.$beschrijving.'" />'."
    ";
    }
    mysql_close();
    ?>[/code:1:f621773a7c]De bedoeling is nu dat ditzelfde erkomt van rel="subsection", alleen ligt die informatie een stuk verspreider waardoor het opstellen van de juiste queries ineens een stuk gecompliceerder werd.

    De beschrijving van subsection zit namelijk in de tabel 'cat', terwijl de enige informatie die ik heb, aan de hand van de url is de waarde van de kolom 'naam' in 'hoofdcat'. Daarnaast moet ik uit de tabel 'subcat' ook nog de 'naam' hebben voor de href waarde.

    Al met al niet al te makkelijk dus.

    -termin8or
  • Als je een database dump kunt maken (met bijv PhpMyAdmin) dan is het makkelijker om een oplossing te geven. Ik hoef geen waarden te hebben - al is dat wel makkelijker bij het testen - maar met name de code om de tabellen te genereren. Als ik het zie is het voor mij namelijk wat makkelijker.

    - Bas
  • [code:1:d23222c7f6]#
    # Tabel structuur voor tabel `cat`
    #

    CREATE TABLE cat (
    cat_id tinyint(4) NOT NULL auto_increment,
    hcat_id tinyint(4) default NULL,
    scat_id tinyint(4) default NULL,
    beschrijving varchar(255) default NULL,
    PRIMARY KEY (cat_id)
    ) TYPE=MyISAM;
    # ——————————————————–

    #
    # Tabel structuur voor tabel `content`
    #

    CREATE TABLE content (
    titel varchar(255) NOT NULL default '',
    auteur varchar(255) NOT NULL default '',
    datum timestamp(14) NOT NULL,
    tekst text NOT NULL,
    cat_id smallint(4) NOT NULL default '0'
    ) TYPE=MyISAM;
    # ——————————————————–

    #
    # Tabel structuur voor tabel `hoofdcat`
    #

    CREATE TABLE hoofdcat (
    hcat_id tinyint(4) NOT NULL auto_increment,
    naam varchar(255) NOT NULL default '',
    beschrijving varchar(255) NOT NULL default '',
    PRIMARY KEY (hcat_id)
    ) TYPE=MyISAM;
    # ——————————————————–

    #
    # Tabel structuur voor tabel `subcat`
    #

    CREATE TABLE subcat (
    scat_id tinyint(4) NOT NULL auto_increment,
    naam varchar(255) NOT NULL default '',
    PRIMARY KEY (scat_id)
    ) TYPE=MyISAM;[/code:1:d23222c7f6]Sommige dingen zijn: "Geen probleem" :)

    -termin8or
  • Volgens mijn tests moet het volgende werken om alle subcats van "contact" te krijgen: :roll:[code:1:253902021a]SELECT subcat.naam, cat.beschrijving FROM subcat, cat, hoofdcat WHERE cat.scat_id = subcat.scat_id AND cat.hcat_id = hoofdcat.hcat_id AND hoofdcat.naam = "contact";[/code:1:253902021a]

    - Bas

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.