Gå til innhold

Variabel i SQL Spørring


Anbefalte innlegg

Videoannonse
Annonse
Gjest Slettet-rXRozPkg

$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
Gjest Slettet-rXRozPkg

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


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

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

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.. :wow:

 

<?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

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

<?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

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...