Avatar billede bacce.dk Nybegynder
02. maj 2003 - 10:41 Der er 16 kommentarer og
1 løsning

Retuner mysql result i oop ?

Hejsa
Jeg har et lille problem
jeg har en class hvor i jeg vil lave en funktione der skal retunere noget data fra MySQL.
i stil med dette fek.s
$result=mysql_query("SELECT id, bruger, email where aktiv='$aktiv'");

denne result har så et ukendt antal rows, og spørgsmålet er hvorn retunerer jeg dem og hvorn laver jeg en løkke af dem på den side jeg kalder funktionen ?

som det er i dag laver jeg bare en while($row=mysql_fetch_array($result)){
og printer det ud i min funktion, med html og det hele, men det er der jo ikke meget point i da jeg så ikke kan genbruge funktionen andet steds...
Avatar billede ttc Nybegynder
02. maj 2003 - 10:52 #1
hmmm. sider selv med det sammen problem.
Avatar billede erikjacobsen Ekspert
02. maj 2003 - 10:54 #2
fx

while ($row=mysql_fetch_array($result)){
  $liste[]=$row;
}
Avatar billede bacce.dk Nybegynder
02. maj 2003 - 11:04 #3
hmm så går jeg ud fra at du vil retunere $liste[] ??
hvorn vil du få dem i en løkke på selve html siden ?
Avatar billede erikjacobsen Ekspert
02. maj 2003 - 11:09 #4
Jah, bare $liste. Det er så et array. Brug en for-løkke eller foreach
(eller: http://smarty.php.net)
Avatar billede bacce.dk Nybegynder
02. maj 2003 - 11:13 #5
hmm ok jeg er ik helt med på den..
Jeg retunerer $liste. det er også fint nok, men på siden med kaldet skal jeg printe det ud som hva ?
jeg laver kaldet sådan her fek.s
$a=new funktioner();
$a->find_aktive($aktiv);
hvordan udskriver jeg så mine rows fra $liste ???
Avatar billede erikjacobsen Ekspert
02. maj 2003 - 11:16 #6
Du er velkommen til at læse hvad jeg skriver:
"Det er så et array. Brug en for-løkke eller foreach"
Avatar billede bacce.dk Nybegynder
02. maj 2003 - 11:21 #7
Jeg læser skam hva du skriver....
men af den årsag fik de jo ikke et navn.
Normalt ville mine variabler udskrives som $a->id, $a->bruger, $a->email.
Det regner jeg ikke med at jeg kan her ??
Avatar billede erikjacobsen Ekspert
02. maj 2003 - 11:32 #8
Så tager vi det stille og roligt. Er find_aktive() en funktion, der
returnere et array? Skal du så ikke først og fremmest når du kalder
funktionen have fat i den værdi, der bliver returneret?
Avatar billede bacce.dk Nybegynder
02. maj 2003 - 11:36 #9
jo det skal jeg.
Den skal både indeholde $id x antal forskellige, $bruger x antal forskellige og $email x antal forskelige.
Avatar billede erikjacobsen Ekspert
02. maj 2003 - 11:40 #10
Så må der være noget i denne linie du skal gøre noget ved:

$a->find_aktive($aktiv);
Avatar billede bacce.dk Nybegynder
02. maj 2003 - 11:44 #11
$a->find_aktive($aktiv); kalder funktionen og $aktiv vil fek.s have værsien 1

mit problem er at få de forskellige arrays ud fra funktionen på en ordentlig måde så jeg derefter kan printe dem ud.
Avatar billede erikjacobsen Ekspert
02. maj 2003 - 11:49 #12
de forskellige arrays ? Der er da kun et. I funktionen hedder det $liste.
Avatar billede sostack Nybegynder
02. maj 2003 - 14:24 #13
måske kan denne bruges ??:

<?php
$server = "localhost";
$user = "bruger";
$kode = "password";
$database = "database";
$conn = mysql_connect($server, $user, $kode);
mysql_select_db($database, $conn);

function hent_fra_db_til_tabel($tabel, $felt, $feltvaerdi)
// funktionen tager 3 parametre:
// 1. tabelnavnet der skal forespørges på.
// 2. feltet der søges på
// 3. kriteriet der  skal være opfyldt
// funktionen kaldes med f. eks. : print hent_fra_db_til_tabel("mintabel", "aktive", 1);
// eller $tabellen = hent_fra_db_til_tabel("mintabel", "aktive", 1);
{
    $query = "SELECT * FROM $tabel WHERE $felt=$feltvaerdi";
    $result = mysql_query($query);
    $feltantal = mysql_num_fields($result);
   
    $resultat = "<table width='90%' cols=$feltantal>\n<tr>\n";
   
    for($i = 0; $i < $feltantal - 1; $i++)
    {
    $resultat .= "<td>" . mysql_field_name($result, $i) . "</td>";
    }
    while($raekke = mysql_fetch_row($result))
    {
    $resultat .= "<tr>";
    foreach($raekke as $value)
    {
    $resultat .= "<td> $value </td>";
    }
    $resultat .= "</tr>";
    }
    $resultat .= "</table>"
    return $resultat;
}
?>

//sostack
Avatar billede bacce.dk Nybegynder
04. maj 2003 - 19:05 #14
hmm spørgsmålet her blev vist glemt lidt.
sostack> Dit forslag ligner meget det jeg brugte i forvejen, og det var ligesom det jeg gerne ville væk fra, da det langt fra er optimalt.

erikjacobsen>>
Jeg har fundet på noget.
Jeg hiver dem ud med en
while($row=mysql_fetcha_array($result))
{
$this->id[]=$row[id];
$this->email[]=$row[email];
$this->bruger[]=$row[bruger]
}
og på min side laver jeg en for løkke hvor de står så kommer frem med
$a->id[$i];
$a->bruger[$i];
$a->email[$i];


Vil du smide et svar, så lukker vi dette spm :-)
Avatar billede erikjacobsen Ekspert
04. maj 2003 - 19:12 #15
Jeg har nu ikke glemt det. Du skal ikke lade dig være tilfreds
med en funktion der indeholder html. Du skal have et array
af objekter tilbage. Du skal bare lave og bruge den funktion
rigtigt.
Avatar billede bacce.dk Nybegynder
04. maj 2003 - 19:16 #16
erikjacobsen>> Du misforstår...
Det var mig der havde glemt spm, om du har kan jeg jo ikke udtale mig om ;-)

Men som sagt.
Min funktion indeholder ikke html, den retunerer 3 arrays som jeg så kan smide i html delen på den side jeg skal bruge dataen.
Lige netop det jeg søgte ;-)

Ville du svare ?
Avatar billede bacce.dk Nybegynder
16. maj 2003 - 11:44 #17
nu lukkes der altså :-)
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