Oprettet man. d. 09. juli 2007 kl. 11:45:31

brianmilan
brianmilan (7.915 point. Point ude: 2.480)
www.brianmilan.dk

Vis bestemte data til forskellige brugere.

Hej,

Jeg har et lille problem, jeg har en database, hvor jeg godt kunne tænke mig at vise forskellige omlysninger, alt efter hvilken bruger der logger ind, jeg har fået den til at tjekke på hvem brugeren er, da jeg har et felt - admin - i min database der fortæller hvor meget brugeren må se, f.eks. 1, 2 eller 3, brugere med 3 i admin feltet må kun se alle VHS film hvor brugere med 1 i admin feltet må se både VHS og DVD film.. Nu kommer mit problem.. Når jeg logger ind som en bruger med 3 i admin feltet hvor jeg kun må se VHS film, viser den mig også alle DVD filmene, men der tæller rigtigt nok op f.eks. har jeg lavet det sådan at den foroven skriver "Der er fundet x antal VHS film"

Ved i hvorfor den også tager mine DVD film med i visningen?

Hilsen Brian

Jeg har sat min kode med i :o)

***************************************************************
<?php
echo '<table id="Table_Backcolor" width="790" border="2" align="center" cellpadding="6" cellspacing="0">
<tr align="center" valign="top">
  <td id="td_1" align="left">
    <table id="table_1">';

if( isset($_GET['kategori']) ) {
      display_film($_GET['kategori']);
} else
  echo "Kategori findes ikke";
 
  echo '</table>
  </td>
</tr>
</table>
<br>';

//********************************************************************

function display_kategori($cat) {
  $sql = "SELECT kategori FROM alle_dvd_film WHERE kategori LIKE '%$cat%'";
  if( $_SESSION['admin']==3 )
    $sql .= " AND VHS_DVD LIKE 'VHS'";

  $rows = mysql_query($sql);
  $antal_poster = mysql_num_rows($rows);
  if( $antal_poster > 0 )
    echo "I kategorien $cat er der fundet $antal_poster film:<br><br>";
  else
    echo "Der er desværre ingen film i kategorien $cat.";
}

//*************************** Viser Film ***************************
function display_film($cat) {
  display_kategori($cat);
  $sql = "SELECT * FROM alle_dvd_film WHERE Kategori LIKE '%$cat%' ORDER BY Original_Titel";
  if( $_SESSION['admin']==3 )
    $sql .= " AND VHS_DVD LIKE 'VHS'";
  $query = mysql_query($sql);
  while( $row=mysql_fetch_array($query) )
    echo "<tr><td><a href=\"../DVD_Film.php?dvd_film_ID=$row[0]\">$row[0]</a></td><td width=\"520\">$row[1]</td></tr>";
}
?>

Skrevet man. d. 09. juli 2007 kl. 14:21:09| #1

nemlig
nemlig (5.151 point)
Du sætter variablen $sql i 2 linjer, hvis Admin=3
Så er sql-sætningen:

SELECT * FROM alle_dvd_film WHERE Kategori LIKE '%$cat%' ORDER BY Original_Titel AND VHS_DVD LIKE 'VHS'

Jeg vil mene, at den korrekte sætning er :
SELECT * FROM alle_dvd_film WHERE Kategori LIKE '%$cat%' AND VHS_DVD LIKE 'VHS' ORDER BY Original_Titel

Derfor vil mit forslag være, at du retter:
if( $_SESSION['admin']==3 )
    $sql .= " AND VHS_DVD LIKE 'VHS'";

til

if( $_SESSION['admin']==3 )
$sql = "SELECT * FROM alle_dvd_film WHERE Kategori LIKE '%$cat%' AND VHS_DVD LIKE 'VHS' ORDER BY Original_Titel";

Mangler du ikke nogle { og } i If-sætningerne.

Skrevet man. d. 09. juli 2007 kl. 14:37:38| #2

jakobdo
jakobdo (181.727 point)
www.codebreaker.dk
Du kunne også trække alle data ud og så i din præsentation af data lave:

if($_SESSION['admin'] == 3)
{
//Data som kun brugere der har admin = 3 skal se...
}
if($_SESSION['admin'] == 2)
{
//Data som kun brugere der har admin = 2 skal se...
}

//Data som alle brugere skal se...

Skrevet tir. d. 10. juli 2007 kl. 08:24:05| #3

Nu virker det "Nemlig", jeg byttede lige om så IF sætningen kommer før SQL sætningen, og så virker det :o) kunne jeg få dig til at lægge et svar?

Skrevet tir. d. 10. juli 2007 kl. 10:11:40| #4

nemlig
nemlig (5.151 point)
Godt det nu virker.

Skrevet tir. d. 10. juli 2007 kl. 10:28:01| #5


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Brugerliste med link til profil

Oprettet den 26. maj 2012 kl. 14.29
sayn giver 30 point for svar | Giv et svar »

php curl driller

Oprettet den 26. maj 2012 kl. 08.31
PHPnQrd giver 200 point for svar | Giv et svar »

Array i array

Oprettet den 25. maj 2012 kl. 08.32
sebster giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger