webForumDet fria alternativet

Om $sid tom = sätt den till 6

5 svar · 379 visningar · startad av SoulGod

SoulGodMedlem sedan aug. 20051 200 inlägg
#1

Jag har en funktion för att visa submenyer på min hemsida,
som ser ut såhär:
function visaSub($sid) {
$query_menu = "SELECT * FROM submenu WHERE sid=$sid";
$rows = mysql_query($query_menu);
while ($row = mysql_fetch_array($rows)) {
$menu_name = $row["namn"];
printf("- <a href='$row[lank]&id=$sid'>$menu_name</a><br>");
}
}

Dock när man går in på sidan första gången, så är $sid inte satt.
Kan jag fördefiniera det, så att om $sid inte är satt ( sid alltså är tom ),
så sätts den automatiskt till 6?

SPiNMedlem sedan mars 20007 896 inlägg
#2
function visaSub($sid = 6) {
    ...
SoulGodMedlem sedan aug. 20051 200 inlägg
#3

Tror inte jag förstår dig, eller så missförstod du mig.
När användaren kommer in på sidan, så är ju länken http://www.doman.se/index.php ,
och då felar min function, eftersom $sid inte är satt till något.

Så jag "tror" att det jag söker är något typ..
if $sid = '' Then $sid = '6' ..

Eller så är jag helt korkad och inte förstår vad du menade.. :P

nidronMedlem sedan jan. 2005257 inlägg
#4

isset($_GET['sid']) kanske du är ute efter? :)

SoulGodMedlem sedan aug. 20051 200 inlägg
#5

Där satt den ;)
Lösningen blev:
if (!isSet($_GET['sid']) || $_GET['sid'] == '') { $_GET['sid'] = '6'; }

SPiNMedlem sedan mars 20007 896 inlägg
#6

Vad är $sid? Var kommer den ifrån? Du vill ändå köra funktionen 'visaSub()', fast med värdet 6 på argumentet $sid? Har du testat mitt förslag? Det kallas för "default parameter", när man sätter värdet på variablerna i argumentlistan. På så sätt har du alltid ett värde på $sid, även om funktionen anropas utan parameter.

Alternativ lösning, om jag antar att du får $sid från addressfältet:

$sid = 6;
if (isset ($_GET['sid']) && intval ($_GET['sid']) > 0) {
    $sid = intval ($_GET['sid']);
}
visaSub ($sid);
133 ms totalt · 3 externa anrop · v20260731065814-full.7de19299
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)