21. oktober 2008 - 13:48
Der er
7 kommentarer og 1 løsning
kan ikke få en funktion til at virke
Hej experter.. Har lavet denne funktion: function sql($ident,$rows,$from,$where,$order,$limit){ $query = "SELECT ". $rows; $query .= " FROM ". $from; if($where != ""){ $query .= " WHERE(". $where .")"; } if($order!= ""){ $query .= " ORDER BY ". $order; } if($limit != ""){ $query .= " LIMIT ". $limit; } $output[$ident] = mysql_fetch_array(mysql_query($query)) or die(mysql_error()); } Funktionen er lagt efter mit SQL connect kald. Men når jeg bruger: sql('1','username','users','username=\'test\'','',''); echo $output['1']['username']; Kommer der ikke noget output Hvis jeg prøver med: sql('1','username,password,email','users','username=\'test\'','',''); echo count($output['1']); står der bare 0 Hvorfor?
Annonceindlæg fra Kommando
21. oktober 2008 - 14:09
#1
Nok fordi din variabel $output er en lokal variabel for funktionen og kan ikke bruges uden for funktionen.
21. oktober 2008 - 14:11
#2
hvor/hvordan definerer du $output?
21. oktober 2008 - 14:11
#3
to slow :)
21. oktober 2008 - 14:32
#4
Kan jeg gøre den global?
21. oktober 2008 - 14:43
#5
Det kommer da meget an på hvordan du vil organisere din kode. Men at gøre en variabel global er nok ikke lige det smarteste. Jeg vil nok vælge at bruge return i din funktion.
22. oktober 2008 - 23:59
#6
Det følgende burde virke (læg mærke til at jeg har fjernet "$ident"-argumentet, da det ikke er nødvendigt): function sql($rows,$from,$where,$order,$limit){ $query = "SELECT ". $rows; $query .= " FROM ". $from; if($where != ""){ $query .= " WHERE(". $where .")"; } if($order!= ""){ $query .= " ORDER BY ". $order; } if($limit != ""){ $query .= " LIMIT ". $limit; } $output = mysql_fetch_array(mysql_query($query)) or die(mysql_error()); return $output; } Hvilken plads resultatet skal have i output-arrayet vælger du så idet du returnerer funktionsværdien: $output[1] = sql('username','users','username=\'test\'','',''); echo $output[1]['username']; Håber det gav mening.
19. november 2008 - 04:35
#7
hey.. Må ærligt indrømme jeg ikke lige har tjekket op på dette.. (Kan faktisk ikke engang huske, hvor jeg ville bruge det henne) Hehe.. Men altså selvf kan man da lige bruge output ;) Takker for forslaget.. Smid et svar :)
04. februar 2009 - 12:15
#8
Intet svar giver svar fra mig
Vi tilbyder markedets bedste kurser inden for webudvikling