17. november 2000 - 17:26Der er
25 kommentarer og 1 løsning
list under ukendt kategori?
Hejsa...
Jeg har en artikel-database i php/mysql. Når en artikel gemmes, skal man indtaste en kategori.
Mit spørgsmål går så på, hvordan jeg laver en oversigt, der finder ud af hvilke kategorier der er, og lister 5 nyeste overskrifter fra den pågældende kategori under...? Altså, laver en liste nedad, med alle kategorierne, med 5 artikel-overskrifter under hver.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
jaja...idéen er såmænd god nok! Men hvis du tænker dig om, kan du så ikke se at kategorien nok står i samme row som artiklen? fx.: id|headline|body|kategori (MEGET kort-fattet)
*gr* kan jeg ikke se det et sted eller sådan... jeg fatter ikke helt hvordan du har bygget det op... har du både lagt kategorierne og artiklerne i samme tabel...??
ja, hvis han har kategorier og artikler i en tabel, så er der jo ikke noget problem. jeg tror det ville være nemmest at lave en kolonne mære som heder type
hehe... jeg kan ikke se at det skulle være så svært at forstå, men tabellen er oprettet med dette:
CREATE TABLE artikler ( id int(11) DEFAULT \'0\' NOT NULL auto_increment, forfatter varchar(60) DEFAULT \'0\' NOT NULL, email varchar(60) DEFAULT \'0\' NOT NULL, dato datetime DEFAULT \'0000-00-00 00:00:00\' NOT NULL, headline varchar(60) DEFAULT \'0\' NOT NULL, body text, kategori varchar(200), pic_place char(2) DEFAULT \'th\' NOT NULL, fil_type varchar(40), PRIMARY KEY (id) );
og et indlæg ser fx. sådan ud:
1|Jonas Delfs|jonas@delfs.dk|2000-11-17 19:13:12|Dronning Ingrids død|Dronning Ingrid er død! -sur røv|KULTUR|th|gif
Når en skribent opretter en artikel, er der et text-felt hvori der skal indtastes en kategori...i dette tilfælde, KULTUR Jeg kunne selvfølgelig lave en tabel kun til kategorier, men skal helst have det løst på den efterspurgte måde!
lojmann-> Det ved du jo godt at jeg selv kunne have skrevet! :) Ja, på din måde får jeg en liste over alle kategorier, som ?<select>-box?, men problemet ligger jo i at den selv skal finde de forskellige kategorier, OG sætte 5 artikel-overskrifter under kategorierne hver især...
På vej op til det lokale supermarked efter slik :) fandt jeg en løsning....troede jeg :( Det hedder selvfølgelig bare
$q=mysql_query(\"select kategori from artikler order by kategori\") or die(mysql_error()); while($r=mysql_fetch_array($q)){ echo $r[kategori}.\"<br>\"; $q2=mysql_query(\"select headline from artikler where kategori=\'$r[kategori]\' order by dato desc limit 0,5\") or die(mysql_error()); while($r2=mysql_fetch_array($q2)){ echo \"$r2[headline]<br>\"; } }
med ovenstående, er det eneste problem jo at der er flere artikler med samme kategori, derfor vil den enkelte kategori jo komme til at stå flere steder! For at undgå dette, kunne jeg jo sætte en $ med navnet på den pågældende kategori, og så checke hver gang løkken køres om den er blevet sat....MEN Det er vel et ret \'tung\' løsning...ikke?
$q = mysql_query(\"select distinct kategori from artikler order by kategori\") or die(mysql_error()); while($r=mysql_fetch_array($q)) { echo $r[\'kategori\'].\"<br>\"; $q2 = mysql_query(\"select headline from artikler where kategori=\'$r[kategori]\' order by dato desc limit 5\") or die(mysql_error()); while($r2=mysql_fetch_array($q2)) { echo \"$r2[headline]<be>\": } }
Hvis du bruger mysql 3.23, kan du også kigge på \"create tempory table\" og kopiere dine kategorier derover med
insert into tmp_kategori (kategori) select distinct kategori from artikler order by kategori.
Derefter kan du lave en join mellem tmp_kategori og artikler, og til sidst droppe tabellen tmp_kategori.
Hvis du bruger create temporary table opnår du det, at kun nuværende tråd kan se denne tabel og andre tråde vil kunne oprette en tabel med samme navn, uden at data bliver blandet sammmen.
Hvis du bruger mysql 3.22 kan du oprette en normal tabel, evt som heap-tabel og bruge lock tables til at begrænse adgangen til denne tabel til en tråd af gangen.
defrost-> jepper... det var lige præcist den jeg ikke kunne huske! Så er det fedt at have eksperten!! :)
/Jon@z
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.