_Nitro_ Skrevet 4. november 2003 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?
Gjest Slettet-rXRozPkg Skrevet 4. november 2003 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");
_Nitro_ Skrevet 4. november 2003 Forfatter 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
Gjest Slettet-rXRozPkg Skrevet 4. november 2003 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'
_Nitro_ Skrevet 4. november 2003 Forfatter 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.
Gjest Slettet-rXRozPkg Skrevet 4. november 2003 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...
_Nitro_ Skrevet 4. november 2003 Forfatter 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> '); } ?>
Gjest Slettet-rXRozPkg Skrevet 4. november 2003 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];
_Nitro_ Skrevet 4. november 2003 Forfatter 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
Gjest Slettet-rXRozPkg Skrevet 4. november 2003 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'.
Gjest Slettet-rXRozPkg Skrevet 4. november 2003 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> "); ?>
_Nitro_ Skrevet 4. november 2003 Forfatter 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
Gjest Slettet-rXRozPkg Skrevet 4. november 2003 Skrevet 4. november 2003 Byttet til: echo (" jfsdfsdfj ");
_Nitro_ Skrevet 4. november 2003 Forfatter Skrevet 4. november 2003 Takk Takk for all hjelp. Fikk det nå endelig til..
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å