xatic Skrevet 7. oktober 2008 Del Skrevet 7. oktober 2008 Hei. Jeg trenger litt hjelp, prøve meg på en funksjon som skal returnere en variabel men får det ikke helt til, kan noen hjelpe meg evt se hva som er feil eller om det overhode er mulig å gjøre det. function getUserName($brukernavn, $database) { $sql = mysql_query("SELECT * FROM $database WHERE brukernavn = '$brukernavn'") or die(mysql_error()); while ($row = mysql_fetch_row($sql)) { $brukernavn = $row[1]; } } Jeg vil gjerne at denne skal lage en variabel for meg slik at jeg kan bruke variabelen $brukernavn men det ser dårlig ut når jeg gjør det slik. Prøvde med (echo $brukernavn;) på en side der jeg hadde inkludert function fila men kom bare fram til en blank side. Lenke til kommentar
Alex Moran Skrevet 7. oktober 2008 Del Skrevet 7. oktober 2008 function something() { $ret = 'lol'; return $ret; } echo something(); $var = something(); echo $var; Lenke til kommentar
xatic Skrevet 7. oktober 2008 Forfatter Del Skrevet 7. oktober 2008 Får det forsatt ikke til.. problemet er jo at variabelen ikke blir satt i neste side? Function.php function getUserName($brukernavn, $database) { $sql = mysql_query("SELECT * FROM $database WHERE brukernavn = '$brukernavn'") or die(mysql_error()); while ($row = mysql_fetch_row($sql)) { $brukernavn = $row[1]; return $brukernavn; } } echo.php include("mysql/dbcon.php"); include("function/functions.php"); getusername(xatic, brukere); echo $brukernavn; Hva gjør jeg feil? oO Lenke til kommentar
kakkle Skrevet 7. oktober 2008 Del Skrevet 7. oktober 2008 $brukernavn variabelen lever bare inne i funksjonen. Utenfor funksjonen, er den ukjent. Dette bør fungere: echo.php: include("mysql/dbcon.php"); include("function/functions.php"); $brukernavn = getusername ("exatic", "brukere") echo $brukernavn; Husk å ha " rundt strenger. Også er det kanskje litt misvisende å bruke $databasen. I sql spørringen, så henter du fra tabellen $database Lenke til kommentar
xatic Skrevet 7. oktober 2008 Forfatter Del Skrevet 7. oktober 2008 (endret) $brukernavn variabelen lever bare inne i funksjonen. Utenfor funksjonen, er den ukjent. Dette bør fungere: echo.php: include("mysql/dbcon.php"); include("function/functions.php"); $brukernavn = getusername ("exatic", "brukere") echo $brukernavn; Husk å ha " rundt strenger. Også er det kanskje litt misvisende å bruke $databasen. I sql spørringen, så henter du fra tabellen $database Ja, dette fungerte fint. Men, er det mulig å hente ut flere variabler fra samme funksjon? F.eks hvis funksjonen ser slik ut, function getUserName($brukernavn, $database) { $sql = mysql_query("SELECT * FROM $database WHERE brukernavn = '$brukernavn'") or die(mysql_error()); while ($row = mysql_fetch_row($sql)) { $id = $row[0]; $brukernavn = $row[1]; $nick = $row[2]; } } Endret 7. oktober 2008 av xatic Lenke til kommentar
Crowly Skrevet 7. oktober 2008 Del Skrevet 7. oktober 2008 (endret) Hvis du skal returnere flere verdier så kan det være greit å returnere en array, hvis spørringen under skulle returnere flere enn en rad, vil kun den siste raden bli returnet av funksjonen. function getUserName($brukernavn, $database) { $sql = mysql_query("SELECT * FROM {$database} WHERE brukernavn = '{$brukernavn}'") or die(mysql_error()); while ($row = mysql_fetch_row($sql)) { $ret_arr['id'] = $row[0]; $ret_arr['brukernavn'] = $row[1]; $ret_arr['nick'] = $row[2]; } return $ret_arr; } $user=getUserName('test','test2'); echo "Id: ".$user['id']."<br />Brukernavn: ".$user['brukernavn']."<br />Nick: ".$user['nick']; Og det er ikke nødvendig bruke en fetch i en løkke hvis spørringen kun returnerer en rad. Da kan du like godt gjøre det slik function getUserName($brukernavn, $database) { $row = mysql_fetch_row(mysql_query("SELECT * FROM {$database} WHERE brukernavn = '{$brukernavn}'")) or die(mysql_error()); return $row; } $user=getUserName('test','test2'); echo "Id: ".$user[0]."<br />Brukernavn: ".$user[1]."<br />Nick: ".$user[2]; Litt mer avansert(?) er å bruke References (Passing by Reference) function getUserName($brukernavn, $database, &$xid, &$xbruker, &$xnick) { $row = mysql_fetch_row(mysql_query("SELECT * FROM {$database} WHERE brukernavn = '{$brukernavn}'")) or die(mysql_error()); $xid = $row[0]; $xbruker = $row[1]; $xnick = $row[2]; } // er ikke helt sikker på om det er nødvendig å deklarere variablene på forhånd // fikk ingen feilmeldinger når jeg kommenterte dem ut $id=0; $bruker=''; $nick=''; getUserName('db','test',$id,$bruker,$nick); echo "Id: ".$id."<br />Brukernavn: ".$bruker."<br />Nick: ".$nick; -- For å pirke litt, hvis du skal være helt sikker så bør du legge variabler inn i {} når du bruker den i en streng, slik at php er 100% sikker på hvor variabelen start og stopper. Eller konkatinere den inn, f.eks "SELECT * FROM ".$database." WHERE brukernavn = '".$brukernavn."'" Endret 7. oktober 2008 av Crowly 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å