Avatar billede mccookie Seniormester
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??
Avatar billede mccookie Seniormester
24. juli 2006 - 23:11 #1
Burde den ikke returnerer data fra det??
Avatar billede mccookie Seniormester
24. juli 2006 - 23:35 #2
Jeg har prøvet at gnaske manualen på php.net og der virker det som om jeg har gjort som man skal


...men
Avatar billede jl4511 Nybegynder
25. juli 2006 - 01:03 #3
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 :-)
Avatar billede jl4511 Nybegynder
25. juli 2006 - 01:09 #4
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;
Avatar billede jl4511 Nybegynder
25. juli 2006 - 01:10 #5
Ups - det skal være :
return $raekke;  i din funktion :-)
Avatar billede mccookie Seniormester
25. juli 2006 - 07:40 #6
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...
Avatar billede wetdog Nybegynder
25. juli 2006 - 10:37 #7
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];
                  }
Avatar billede mccookie Seniormester
25. juli 2006 - 14:54 #8
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
Avatar billede wetdog Nybegynder
25. juli 2006 - 16:05 #9
svar :-)
Avatar billede mccookie Seniormester
25. juli 2006 - 16:12 #10
og  jl4511??
Avatar billede jl4511 Nybegynder
25. juli 2006 - 17:50 #11
Giv du dem bare til wetdog :-)
Avatar billede mccookie Seniormester
25. juli 2006 - 18:02 #12
Det er i orden ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester