Avatar billede matz Nybegynder
12. august 2007 - 21:47 Der er 24 kommentarer og
1 løsning

select * from

Jeg prøver at hente alle poster fra mysql, den udskriver dog kun 1 post - hvordan kan det være?

Kode:

class Video {
  public $titel;
 
  function udskrivVideo() {
        echo "<p>".$this->titel." </p>";
  }
}

$test_1 = new Video();
$test_2 = new sql();
$test_2->connect();
$test_2->q("SELECT * FROM navn");
$array = $test_2->a();
$test_1->titel = $array[1];
$test_2->free();
$test_2->close();
$test_1->udskrivVideo();
Avatar billede jakobdo Ekspert
12. august 2007 - 21:59 #1
$test_1->titel = $array[1];
Prøv at udskriv:
echo $array[2];
echo $array[3];
osv...
Avatar billede matz Nybegynder
12. august 2007 - 22:03 #2
Den udskriver kun echo $array[1]; og echo $array[2];

De andre er blanke
Avatar billede jakobdo Ekspert
13. august 2007 - 07:48 #3
Hvor mange rækker giver din SQL: SELECT * FROM navn i phpmyadmin?
Avatar billede dkfire Nybegynder
13. august 2007 - 10:34 #4
Hvordan ser din funktion a() ud ??
Avatar billede matz Nybegynder
13. august 2007 - 13:26 #5
Den giver 5 resultater i phpmyadmin.
function a(){
        $array = null;
      if($this->_activeQuery){
          $array = mysql_fetch_array($this->_activeQuery, $this->_conn);
      }
      return $array;
    }
Og funktionen ser sådan her ud:
Avatar billede mcardle Nybegynder
13. august 2007 - 17:24 #6
Du skal bare skrive:

while($array = $test_2->a()){
  echo $array["fornavn"]."<br />";
}

//mcardle
Avatar billede mcardle Nybegynder
13. august 2007 - 17:25 #7
Hvis din række hedder fornavn, naturligvis.

//mcardle
Avatar billede matz Nybegynder
13. august 2007 - 19:51 #8
Hvor skal jeg skrive det henne? Og skal jeg erstatte det for noget der allerede står?
Avatar billede jakobdo Ekspert
13. august 2007 - 20:20 #9
I stedet for dette:
$array = $test_2->a();
$test_1->titel = $array[1];
Avatar billede mcardle Nybegynder
13. august 2007 - 20:48 #10
Præcis jakobdo.

Desuden skal du ikke bruge $test_2->free();

Den er til at frigøre ram, hvis det er et stort kald. Så dit array ikke bruger for mange ram på serveren.

//mcardle
Avatar billede jakobdo Ekspert
13. august 2007 - 20:54 #11
free(); er vel til at release result fra mysql_query()
Avatar billede mcardle Nybegynder
13. august 2007 - 20:58 #12
Ja, det er mysql_free_result();

http://dk2.php.net/manual/da/function.mysql-free-result.php

//mcardle
Avatar billede matz Nybegynder
13. august 2007 - 21:10 #13
Yes det fungerer! :)

Er det iorden mcardle får 50 point og jakobdo får 10 point for sit input?
Avatar billede matz Nybegynder
13. august 2007 - 21:12 #14
kan jeg ikke få det udskrevet her også:

class Video {
  public $titel;
 
  function udskrivVideo() {
        echo "<p>".$this->titel." </p>";
  }
}

eller er det umuligt?
Avatar billede mcardle Nybegynder
13. august 2007 - 21:17 #15
Du skal bare skrive:

class Video {
  public $titel;
 
  function udskrivVideo() {
    return "<p>".$this->titel." </p>";
  }
}

$test_1 = new Video();
echo $test_1->udskrivVideo();

//mcardle
Avatar billede mcardle Nybegynder
13. august 2007 - 21:18 #16
Matz <- Det er fint...

Her er mit svar.

//mcardle
Avatar billede matz Nybegynder
13. august 2007 - 21:51 #17
Den udskriver intet:

$test_1 = new Video();
echo $test_1->udskrivVideo();
$test_2 = new sql();
$test_2->connect();
$test_2->q("SELECT * FROM navn");
while($array = $test_2->a()){
  echo $array["fornavn"]."<br />";
  echo $array["efternavn"]."<br /><br />";
}
$test_2->close();
$test_1->udskrivVideo();
Avatar billede matz Nybegynder
13. august 2007 - 21:52 #18
ups koden er her:

$test_1 = new Video();
$test_2 = new sql();
$test_2->connect();
$test_2->q("SELECT * FROM navn");
while($array = $test_2->a()){
  echo $array["fornavn"]."<br />";
  echo $array["efternavn"]."<br /><br />";
}
$test_2->close();
echo $test_1->udskrivVideo();
Avatar billede jakobdo Ekspert
13. august 2007 - 22:01 #19
Hvad er dine felt navne i tabellen NAVN?
Avatar billede matz Nybegynder
13. august 2007 - 22:03 #20
Altså det jeg mente var at den intet udskriver med den nye kode:

class Video {
  public $titel;
 
  function udskrivVideo() {
    return "<p>".$this->titel." </p>";
  }
}

$test_1 = new Video();
echo $test_1->udskrivVideo();

Jeg har 3 felter i navn.

Den her virker helt fint:
while($array = $test_2->a()){
  echo $array["fornavn"]."<br />";
}
Avatar billede jakobdo Ekspert
13. august 2007 - 22:07 #21
Men din video klasse ser slet ikke færdi ud?
Avatar billede matz Nybegynder
13. august 2007 - 22:11 #22
kan du forklare nærmere hvad der mangler?
Avatar billede matz Nybegynder
13. august 2007 - 22:29 #23
Det er ligemeget med mit sidste spg.

Lig et svar jakobdo
Avatar billede jakobdo Ekspert
14. august 2007 - 07:49 #24
Du får et svar!
Avatar billede jakobdo Ekspert
31. oktober 2007 - 11:15 #25
Takker for point.
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