_Nitro_ Skrevet 4. november 2003 Del Skrevet 4. november 2003 Noen som kan hjelpe meg??? Hvordan kan man bruke en variabel i SQL Spørring? Denne funker ikke: ' . $row['userlevel$userLevel'] . ' Noen som vet hvordan jeg kan sette opp dette? Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 4. november 2003 Del Skrevet 4. november 2003 $sql = "SELECT * FROM tabell WHERE id = '$variabel' AND medlem = '$variabel2'"; Hvis du skal bruke verdiene i et array: Måte 1: $sql = "SELECT * FROM tabell WHERE id = '$variabel[0]' AND medlem = '$variabel[1]'"; Måte 2: $sql = "SELECT * FROM tabell WHERE id = '$variabel[id]' AND medlem = '$variabel[medlem]'"; Måte to krever at du har laget en array på denne måten: $variabel = array("id" => "123", "meldem" => "etbrukernavnellernoesånnt"); Lenke til kommentar
_Nitro_ Skrevet 4. november 2003 Forfatter Del Skrevet 4. november 2003 problemet er at den skal velge rad etter den variablen. $userLevel har en verdi på 2 altså den skal hente fra raden userlevel2 Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 4. november 2003 Del Skrevet 4. november 2003 Jeg tror det blir enklest å sette sammen variablen på utsiden av spørringen i en ny variabel, og så bruke den nye i spørringen. $var = "userlevel".$userLevel; SELECT * FROM tabell WHERE userlevel = '$var' Lenke til kommentar
_Nitro_ Skrevet 4. november 2003 Forfatter Del Skrevet 4. november 2003 CREATE TABLE `userlevel` ( `1` text, `2` text, `3` text, `4` text, `5` text, `6` text, `7` text, `8` text, `9` text, `10` text, `11` text, `12` text ) TYPE=MyISAM; ?PHP $cfgProgDir = 'login-script/'; include($cfgProgDir . "secure.php"); ?> <?php include('include.php'); ?> <?php $result = @mysql_query('SELECT * FROM userlevel'); if (!$result) { die('<p>Får ikke kontakt med ' . ' tabellen på dette tidspunktet: ' . mysql_error() . '</p>'); } // Vis tekt i som ligger i databasen while ( $row = mysql_fetch_array($result) ) { echo(' <html> <body link="#999999" vlink="#666666" alink="#66CCFF"> <center> <table border="0" cellspacing="0" width="400"> <tr> <td background="nyheter.gif"></td> </tr> ' . $row["$userLevel"] . ' <tr> <td background="nyheter2.gif"></td> </tr> </table> </center> </body> </html> '); } ?> Slik ser filen ut. Som du ser har jeg skrevet ' . $row["$userLevel"] . ' men denne funker ikke. Har testet også med ' . $row['$userLevel'] . ' det funket heller ikke. Skjønner du hva jeg mener? Variabelen $userLevel er satt fra login-scripte jeg bruker. Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 4. november 2003 Del Skrevet 4. november 2003 Laget et lite testscript, og dette fungere i hvertfall. <?php $userLevel = 2; $row = array (1 => "Tilgangsnivå 1, kan skrive kommentarer", 2 => "Tilgangsnivå 2, kan skrive nyheter", 3 => "Tilgangsnivå 3, er admin"); echo "Brukertilgang: ".$row[$userLevel]."<br>\n"; ?> Dette fungerte i hvertfall helt ypperlig. Får du noen feilmeldinger hos deg? I såfall vil jeg gjerne se de... Lenke til kommentar
_Nitro_ Skrevet 4. november 2003 Forfatter Del Skrevet 4. november 2003 http://spot.vaffelkak.com/login.php <-- der kan du se hva som skjedde da.. Det funket ikke til meg i hvertfaill. Slik skrev jeg koden da.. Kan være der jeg har gjort noe feil.. <?PHP $cfgProgDir = 'login-script/'; include($cfgProgDir . "secure.php"); ?> <?php include('include.php'); ?> <?php $result = @mysql_query('SELECT * FROM userlevel'); if (!$result) { die('<p>Får ikke kontakt med ' . ' tabellen på dette tidspunktet: ' . mysql_error() . '</p>'); } // Vis tekt i som ligger i databasen while ( $row = mysql_fetch_array($result) ) { echo(' <html> <body link="#999999" vlink="#666666" alink="#66CCFF"> <center> <table border="0" cellspacing="0" width="400"> <tr> <td background="nyheter.gif"></td> </tr> <?php $userLevel = 2; $row = array (1 => "Tilgangsnivå 1, kan skrive kommentarer", 2 => "Tilgangsnivå 2, kan skrive nyheter", 3 => "Tilgangsnivå 3, er admin"); echo "Brukertilgang: ".$row[$userLevel]."<br>\n"; ?> <tr> <td background="nyheter2.gif"></td> </tr> </table> </center> </body> </html> '); } ?> Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 4. november 2003 Del Skrevet 4. november 2003 Ikke uten brukernavn og passord *grin* Tror forresten du har en logisk brist etter spørringen while ( $row = mysql_fetch_array($result) ) { echo blabla..... } Dette vil da bli gjort for hvert element i userlevel tabellen, altså 12 ganger. Jeg tror du bør bytte tabellstruktur på selve tabellen din... et felt som er id, og et som er tekst. CREATE TABLE userlevel ( id INTEGER NOT NULL, tekst TEXT, ); Så kan du lage noe slikt: $result = @mysql_query("SELECT tekst FROM userlevel WHERE id = '$userLevel')"; $row = mysql_fetch_array($result); echo "Tilgangsnivå: ".$row[tekst]; Lenke til kommentar
_Nitro_ Skrevet 4. november 2003 Forfatter Del Skrevet 4. november 2003 <?PHP $cfgProgDir = 'login-script/'; include($cfgProgDir . "secure.php"); ?> <?php include('include.php'); ?> <?php $result = @mysql_query('SELECT * FROM userlevel'); if (!$result) { die('<p>Får ikke kontakt med ' . ' tabellen på dette tidspunktet: ' . mysql_error() . '</p>'); } // Vis tekt i som ligger i databasen while ( $row = mysql_fetch_array($result) ) { echo $userLevel = 2; $row = array (1 => "Tilgangsnivå 1, kan skrive kommentarer", 2 => "Tilgangsnivå 2, kan skrive nyheter", 3 => "Tilgangsnivå 3, er admin"); echo "Brukertilgang: ".$row[$userLevel]."<br>\n"; } ?> Får ut: 2Brukertilgang: Tilgangsnivå 2, kan skrive nyheter Ikke noe mere. Da skal jo i teorien siden som ligger i sql komme? why Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 4. november 2003 Del Skrevet 4. november 2003 Du har en echo for mye, rett under while. Hvis du velger den måten jeg lagde testscriptet i, ved å manuelt lage en array med innholdet, så skal det ikke komme noen side fra SQL. Hvorfor? Fordi $row først blir satt i while løkka, og deretter blir den satt på nytt i mitt testscript. Gjør de forandringene jeg forslo i forrige post, så kan du lett hente ut 'siden som ligger i sql'. Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 4. november 2003 Del Skrevet 4. november 2003 SQL-tabell: CREATE TABLE userlevel ( id INTEGER NOT NULL, tekst TEXT, ); PHP-kode: <?php $cfgProgDir = 'login-script/'; include($cfgProgDir . "secure.php"); include('include.php'); $result = mysql_query("SELECT tekst FROM userlevel WHERE id = '$userLevel') or die("Spørringsfeil: ".mysql_error())"; $row = mysql_fetch_array($result); echo (" <html> <body link=\"#999999\" vlink=\"#666666\" alink=\"#66CCFF\"> <center> <table border=\"0\" cellspacing=\"0\" width=\"400\"> <tr> <td background=\"nyheter.gif\"></td> </tr> <tr><td> Brukertilgang: $row[tekst] </td></tr> <tr> <td background=\"nyheter2.gif\"></td> </tr> </table> </center> </body> </html> "); ?> Lenke til kommentar
_Nitro_ Skrevet 4. november 2003 Forfatter Del Skrevet 4. november 2003 gjor det. og fikk Parse error: parse error, unexpected T_STRING in /hsphere/local/home/vaffelka/spot.vaffelkak.com/login.php on line 6 Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 4. november 2003 Del Skrevet 4. november 2003 Byttet til: echo (" jfsdfsdfj "); Lenke til kommentar
_Nitro_ Skrevet 4. november 2003 Forfatter Del Skrevet 4. november 2003 Takk Takk for all hjelp. Fikk det nå endelig til.. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå