24. juli 2006 - 22:27
Der er
11 kommentarer og 1 løsning
Problemer med at få noget data return fra en function
Har følgende funktion: function hent_data($sql) { open_db(); $resultat = mysql_query($sql); while ($raekke = mysql_fetch_array($resultat)) { extract($raekke); } return $resultat; close_db(); } Jeg kalder den på følgende måde: $sql = "SELECT * FROM content WHERE md5(content_uniq_id) = '$content_uniq_id' AND aktiv = '1'"; hent_data($sql); echo $content; Der er data når jeg arbejder via phpmyadmin, men jeg kan ikke skrive det ud via scriptet.... Nogen der kan hjælpe??
Annonceindlæg fra Infor
Burde den ikke returnerer data fra det??
Jeg har prøvet at gnaske manualen på php.net og der virker det som om jeg har gjort som man skal ...men
Prøv med dette: $sql = "SELECT * FROM content WHERE md5(content_uniq_id) = '$content_uniq_id' AND aktiv = '1'"; $content = hent_data($sql); echo $content; Men jeg må sige at selve din funktion fatter jeg ikke meget af :-)
Hvis vi forudsætter at du kun forventer EN række, så: function hent_data($sql) { open_db(); [hvad laver den??] $resultat = mysql_query($sql); $raekke = mysql_fetch_array($resultat)); close_db(); return $resultat; } Men har du overhovedet connected til din database? Det fremgår ikke her. $sql = "SELECT * FROM content WHERE md5(content_uniq_id) = '$content_uniq_id' AND aktiv = '1' LIMIT 1"; $content = hent_data($sql); echo $content;
Ups - det skal være : return $raekke; i din funktion :-)
Jeg kigger lige på det senere... Ja, jeg har kontakt til en database, det sker med open_db(); Tricket er at jeg har en masse DB kald og gider ikke skrive den samme kode igen og igen. Jeg prøver lige dit forslag...
Det er et resultset du returnerer. Du kan evt. fylde dem i et array og returnere det. Der er et eller andet med et resultset's levetid ?!? Prøv med noget alá: function hent_data($sql) { $res = mysql_query($sql); $data = array(); while($row = mysql_fetch_row($res)) { $data[] = $row; } return $data; } og så henter du resultatet frem: $res = hent_data($sql); foreach($res as $row) { print $row[0]; }
Jeg er faktisk bange for at jeg er igang med noget der havde en intension om at spare et par linier kode.... .....men kan vist se på det hele, at der i virkeligheden nok bliver mere kode for det samme. .....Så gider i smide et svar som tak for jeres ulejlighed. Venligst Henning
25. juli 2006 - 16:12
#10
og jl4511??
25. juli 2006 - 17:50
#11
Giv du dem bare til wetdog :-)
25. juli 2006 - 18:02
#12
Det er i orden ;)
Vi tilbyder markedets bedste kurser inden for webudvikling