WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Hur kategorisera? (https://www.wn.se/forum/showthread.php?t=1058523)

Anaxa 2013-07-14 19:08

Hur kategorisera?
 
Hej.

Jag måste nu skapa ett sorts arkiv där jag kommer ha flera kategorier och x antal underkategorier. Det kan finnas underkategorier på underkategorier på underkategorier(typ oändligt).

Då måste jag veta hur jag ska bygga databasentabellen.

Jag har tänkt mig att varje kategori kan ha ett fält 'parent' där parent är den kategorien som underkategorin är till. Och huvudkategorin kan ha parent 0 så kan man lösa det i serverkoden sen.

Om detta funkar så måste jag veta hur jag ska bygga .htaccess filen eftersom jag vill gärna ha minsida.se/cat1/undercat1/undercat3/undercat4.
Eftersom jag inte vet antalet underkategorier kan jag inte ange hur många $1, $2, $3 det ska finnas i den filen. Hur löser jag det om det kan finnas oändligt många parametrar?

qson 2013-07-14 19:27

Du kan ju ta en "match all"-parameter och tolka den i PHP med $_SERVER['REQUEST_URI'];

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) skriptet.php [L]

Anaxa 2013-07-17 09:05

Okej men då kommer jag inte få $_GET["cat1"], $_GET["cat2] automatiskt. Menar du att ja måste splitta querystring vid varje '/' för att skapa en GET?

qson 2013-07-17 11:25

Om du vill använda $_GET som du beskriver så vet du ju inte hur många (cat1, cat2 osv.) som finns. Med min lösning får du en array som du kan loopa igenom oavsett hur många element som finns.

PHP-kod:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_FILENAME} !-d
RewriteRule 
(.*) skriptet.php?url=$[L

PHP-kod:

$categories explode('/'$_GET['url']);
foreach (
$categories as $cat) {
   echo 
"Kategori: ".$cat."<br>\n";


(notera att jag ändrade till $_GET['url'] istället för REQUEST_URI, då den kan innehålla andra sökvägar också)

Anaxa 2013-07-17 15:57

Okej. Så alltså kan man säga att $_GET["url"] innehåller ex. "cat/subcat/subsubcat/and-so-on"?
Återkommer med resultat snart.


Alla tider är GMT +2. Klockan är nu 15:30.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson