Avatar billede stagedk Nybegynder
30. januar 2009 - 15:56 Der er 11 kommentarer og
1 løsning

optælling.

Hey eksperter.
Jeg er lidt stuck her.
jeg kan ikke huske hvordan du får et output som viser hvor mange
indlæg der er i en DB tabel. nogle der gider skrive det :D ?.
samtidigt skal jeg gøre så den kun viser et udkast af den skrevede nyhed. altså nede under nyheden er der en "læs mere" knap, men hvordan er det nu du kun får den til at vise de 250 tegn (eller mindre) så den ikke viser hele nyheden men kun noet af den ;)
Avatar billede stagedk Nybegynder
30. januar 2009 - 17:10 #1
nm, har selv fundet ud af det.
Avatar billede jakobdo Ekspert
30. januar 2009 - 17:22 #2
Begge ting ?
Hvis ja, så smid løsningen herind, så andre kan nyde gavn af den og luk tråden. :o)
Avatar billede Slettet bruger
30. januar 2009 - 18:04 #3
jakobdo det ved du lige så godt som mig... at det gør han ikke
Avatar billede stagedk Nybegynder
30. januar 2009 - 18:59 #4
Selvfølgelig gør jeg da det ;)
Avatar billede stagedk Nybegynder
30. januar 2009 - 19:03 #5
for at få vist hvor mange kommentare der er bruger jeg mysql_num_rows flg:

$strings = mysql_query("SELECT nyhed_id FROM nyheder_kommentarer WHERE nyhed_id = '$id'");
$num    = mysql_num_rows($strings);
{
if($num == "1")
{
echo "Der er kun éen sølle kommentar!<br>";
}else
{
echo "Der er $num kommentarer<br>";
}


ved kun at viste udkastet har jeg brugt substr. den fjerner 20 tegn fra postet.
$str = "$vis[nyhed]";
echo substr("$str", 0, -20);
Avatar billede jakobdo Ekspert
30. januar 2009 - 19:23 #6
Brug hellere:

$strings = mysql_query("SELECT COUNT(nyhed_id) FROM nyheder_kommentarer WHERE nyhed_id = '$id'");
$num    = mysql_result($strings,0);
Avatar billede mstorgaard Praktikant
30. januar 2009 - 20:13 #7
Jakobdo; af ren nysgerrighed og til senere brug, hvorfor?
Er det hurtigere? Mere korrekt? Eller noget helt tredje?
Avatar billede jakobdo Ekspert
30. januar 2009 - 20:39 #8
Det er hurtigere og din mysql server er mere glad, da den ikke skal arbejde så hårdt. :o)
Avatar billede TommyB Nybegynder
31. januar 2009 - 14:04 #9
Hvis vi antager at $id indeholder den kategori/sektion eller hvad du nu har. Hvis ingen kategorier så bare fjern hele WHERE-delen eller tilpas den.
======
<?php
// Tæl nyheder i kategorein
$result = mysql_query("SELECT COUNT(nyhed_id) FROM nyheder WHERE kategori = '$id'");
$antalNyheder = mysql_result($result,0);

$result = mysql_query("SELECT nyhed_id, overskrift, SUBSTRING(nyhed_tekst, 1, 250) FROM nyheder WHERE kategori = '$id'");

// Nu skal du bare løbe nyhederne igennem....

?>
======
Avatar billede TommyB Nybegynder
31. januar 2009 - 14:12 #10
Kommentar til mit eget eksempel herover.

Grunden til to sql-queries er at jeg forventer at du først vil tælle ALLE, og så i næste query måske kun trække 30 ud, men hvis du altid trækker alle nyheder er der ingen grund til at tælle i databasen først, så kan du jo rigtig nok bare tælle elementerne i dit resultat med mysql_num_rows(), men det er vist sjældent man gør sådan.

Det giver mere mening at bede databasen klippe de 250 tegn ud for os, der er jo ingen grund til at overfører en helvedes masse data som vi så bare smider væk bagefter...

Vil du lave en funktion der klipper pænere i PHP, fx. for at klippe ved mellemrum, så klip måske ved 270 tegn i db'en og så klip ved ca. 250 i PHP.

Min pointe er at der er ingen grund til at databasen skal bygge et stort array op i hukommelsen, sende det til PHP, som også skal bruge mere hukommelse, udelukkende for at vi smider det væk bagefter, når du får over 1000 besøgende i timen kan du mærke forskellen :)
Avatar billede stagedk Nybegynder
22. marts 2009 - 20:03 #11
lukker
Avatar billede jakobdo Ekspert
23. marts 2009 - 20:15 #12
Hvad blev din løsning ?
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