MeleaMedlem sedan juli 20033 147 inlägg Hejsan wF!
Skulle vilja ha hjälp med att bygga en funktion som sållar ut de posterna man har rätt att se. Just nu har jag fått hjärnsläpp så vet inte hur jag ska gå till väga.
Som det är nu har jag en tabell som heter tbl.forumID
I denna tabellen har jag fem kolumner, id, forumname, siteaccess, bwaccess och wc3access.
Nu vill jag alltså loopa ut alla forumname och visa dom forumen som personen i fråga har rätt att se. Den ska alltså jämföra $_SESSION[siteaccess] $_SESSION[bwaccess] osv med värdena som finns i databasen och kolla om man får se forumet eller inte. Låt säga att jag har siteaccess 3 och forumet "Crewforum" kräver att jag behöver siteaccess 4, då ska jag inte se detta forum.
Just nu ser koden bara ut såhär:
<?
if ($_SESSION[siteaccess] > 2) {
echo "<a href=\"admin.php?show=forum_add\">> Add forum</a><br><br>";
}
$SQL = mysql_query("SELECT * FROM tbl_forumID order by id") or die (mysql_error());
while($objRS = mysql_fetch_array($SQL)) {
?>
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td width="150" style="padding:2px 0px 2px 0px;"><a href="forum.php?forumID=<?=$objRS[id]?>"><?=$objRS['forumname']?> forum</a></td>
<td style="padding:2px 0px 2px 0px;"><a href="admin/forum_del.php?id=<?=$objRS[id]?>">Delete</a></td>
</tr>
</table>
<?
}
?>
Tack på förhand.
Mvh
Patrik81Medlem sedan okt. 2001538 inlägg Det är inte bara så enkelt som att du lägger till en WHERE-klausul?
Typ
$SQL = mysql_query("SELECT * FROM tbl_forumID WHERE siteaccess <= " . $_SESSION[siteaccess] . " order by id") or die (mysql_error());
Jag vet inte om det hjälper, men man måste ju kunna sålla bort det redan i sql frågan.
MVH Patrik
MeleaMedlem sedan juli 20033 147 inlägg Hm, nej... om ett utan de accesserna man skriver in i SQL satsen uppfylls så skrivs ju alla poster ut ändå.
PeddaMedlem sedan juni 20006 032 inlägg siteaccess <= " . $_SESSION[siteaccess] . " AND bwaccess <= " . $_SESSION[bwaccess] . "
MeleaMedlem sedan juli 20033 147 inlägg Nej, det stämmer ju inte... om jag inte har något bwaccess men ändå siteaccess 4 så ser jag inte forumen med den koden.
Mvh
PeddaMedlem sedan juni 20006 032 inlägg Testa med OR istället för AND.
Trodde båda kraven skulle vara uppfyllda.
MeleaMedlem sedan juli 20033 147 inlägg Funkar inge vidare, samma som med AND. Om ett utav villkoren uppfylls så visas alla forumen...
Patrik81Medlem sedan okt. 2001538 inlägg Använd några if-satser för att generera rätt sql-fråga då.
typ:
if (isset($_SESSION['siteaccess']) && isset($_SESSION['bwaccess'])){
$query = "SELECT * FROM tbl_forumID WHERE siteaccess <= " . $_SESSION[siteaccess] . " AND bwaccess <= " . $_SESSION['bwaccess'] . " order by id";
} elseif (/*andra uttryck här, typ om bara siteaccess är satt*/){
$query = "SELECT * FROM tbl_forumID WHERE siteaccess <= " . $_SESSION[siteaccess] . " order by id";
}
$SQL = mysql_query($query) or die (mysql_error());
Skulle inte detta funka? Det kanske var lite kortfattat, och ofullständig kod (borde väl antagligen kolla att värdena verkligen är numeriska och så...) men jag har precis varvat ned från jobbet, och skall käka om typ två minuter så hinner inte med ett mer utförligt svar.
MVH Patrik