Beat skrev:
Min meny ligger på sidan och den koden finns här
<ul id='menu'>
<li><a href='http://'>Alla</a></li>
<li><a href='http://'>PC</a></li>
<li><a href='http://'>PS 2</a></li>
<li><a href='http://'>PS 3</a></li>
<li><a href='http://'>PSP</a></li>
<li><a href='http://'>Nintendo DS</a></li>
<li><a href='http://'>Nintendo Wii</a></li>
<li><a href='http://'>Xbox 360</a></li>
</ul>
Det där fungerar inte. Du måste på något sätt tala om för din sida vilket av alternativen du har valt. ETT (av många) sätt att göra det på, som är enkelt, är att slänga på den extra infon i URL:n.
Sedan betvivlar jag att dina länkar funkar. (Såvida du inte har någon inställning någonstans som hänger på en URL efter 'http://' så bör de inte leda någonstans.) Jag antar att du vill ladda samma sida om igen? I så fall ändrar du din meny till följande:
<?php
$me = $_SERVER['PHP_SELF'];?>
<ul id='menu'>
<li><a href="<?php echo $me; ?>">Alla</a></li>
<li><a href="<?php echo $me."?type=1"; ?>">PC</a></li>
<li><a href="<?php echo $me."?type=2"; ?>">PS 2</a></li>
<!--- osv -->
<li><a href="<?php echo $me."?type=7"; ?>">Xbox 360</a></li>
</ul>
Om man nu väljer Alla så sätts inget värde på type, men i alla andra fall görs det. Värdena 1-7 på type är legala värden från menyn, allt annat är skräp som någon användare skrivit dit.
Sedan vet jag inte riktigt vad som är vad i din kod? Plockar du ut recensionerna här?
$query = "SELECT * FROM game ORDER BY id DESC $limit";
Eller var?
I så fall lägger du kollen enligt ovan högst upp i den filen, dock beror det exakta utseendet på din WHERE-sats på hur din tabell är definierad. Men i princip.
$where = "";
if (!isSet($_GET["type"])) { //Du valde "Alla" i menyn
$where = ""; //kan vara ett blankt alternativ också, men du vill
//fånga detta fall för att veta att type är satt nedan,
//annars kan du få problem.
}
elseif ($_GET["type"] == 1)
$where = " speltyp = 'PC' ";
elseif ($_GET["type"] == 2)
$where = " speltyp = 'PS 2' ";
//elseif på övriga ryper ner till...
else if ($_GET["type"] == 7)
$where = " speltyp = 'Xbox 360' ";
else {
//Vad du vill ska hända då -
//tex att resultatet blir som för "alla" eller ett felmeddelande eller...?
}
//OM det är frågan ovan som gäller har du inga andra WHERE villkor, så...
if (strlen($where) > 0)
$where = "WHERE ".$where;
$sql = "SELECT * FROM game $where ORDER BY id DESC $limit";
Om du valde alla är $where fortfarande "" och påverkar inte frågan alls, annars har du fått in villkoret som begränsar till aktuell typ i frågan.