Avatar billede sebast Nybegynder
19. september 2005 - 19:28 Der er 10 kommentarer og
1 løsning

Udskriv med opremsningskomma

Hvordan kan jeg udskrive fra min tabel hvor den deler det op med opremsningskomma?

Så hvis den udskriver ialt 4 står der:

Output1, Output2, Output3 og Output 4

og hvis det er 7:

Output1, Output2, Output3, Output4, Output5, Output6 og Output 7
Avatar billede jgivoni Nybegynder
19. september 2005 - 19:31 #1
Gemmer du output i et array? Eller hvordan ved jeg, hvor mange outputs, der er?
Avatar billede jgivoni Nybegynder
19. september 2005 - 19:36 #2
Her er i hvert fald en løsning, du kan arbejde ud fra:

$output = array( "svend", "bente", "ole", "henriette", "finn" );
$last = array_pop($output);
$output = implode(", ", $output);
$output .= " og ".$last;
Avatar billede sebast Nybegynder
19. september 2005 - 19:46 #3
Den skal bare hente dem ud fra databasen.

$query = mysql_query("select * from tabel") or die (mysql_error());
while($row = mysql_fetch_assoc($query)) {
echo $row['navn'];
}
Avatar billede jaw Nybegynder
19. september 2005 - 19:50 #4
$str = "";
$query = mysql_query("select * from tabel") or die (mysql_error());
while($row = mysql_fetch_assoc($query)) {
$str .= $row['navn'].", ";
}
$str = substr(str, 0, strlen($str)-2);
echo $str;
Avatar billede jgivoni Nybegynder
19. september 2005 - 19:51 #5
$query = mysql_query("select * from tabel") or die (mysql_error());
for ($i=0; $i<mysql_num_rows($query)-2; $i++)
{
$row = mysql_fetch_assoc($query);
echo $row['navn'].", ";
}
$row = mysql_fetch_assoc($query);
echo $row['navn']."og ";
$row = mysql_fetch_assoc($query);
echo $row['navn'];

Lidt klodset, men mon ikke det virker...?
Avatar billede sebast Nybegynder
19. september 2005 - 20:01 #6
jgivoni: perfekt. kan den virkelig ikke gøres smartere? :D
smid også lige et svar jaw
Avatar billede jaw Nybegynder
19. september 2005 - 20:04 #7
Arh, mon ikke jeg undværer 2,5 point?! Du brugte jo heller ikke min løsning, og den var heller ikke korrekt. Kommaseparere gjorde den, men det sidste " og " tog jeg chancen og udelad :)

(Og så har du jo allerede accepteret, så kan ikke engang smide svar :)
Avatar billede sebast Nybegynder
19. september 2005 - 20:07 #8
nej, hov. undskyld :).. iorden så.
Avatar billede terrak Nybegynder
19. september 2005 - 20:18 #9
$i = 0;
while ($row = mysql_fetch_array($query)) {
if ($i < count($row)-2) {
echo $row['value'].", ";
} elseif ($i == count($row)-1) {
echo " og ".$row['value'];
} else {
echo $row['value'];
}

$i++;
}

Den skulle gerne være hurtigere, men ikke mærkbart :)
Avatar billede sebast Nybegynder
19. september 2005 - 21:50 #10
terrak: virker ikke
Avatar billede terrak Nybegynder
23. september 2005 - 09:25 #11
Fordi jeg glemte at erstatte $row['value'] med $row['navn'] :)
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