ik heb een soort van nieuwssysteem waarvan de namen en datums eerst in een lijst worden weergegeven, waarna je verder kunt klikken om alles te lezen..
Nu wil ik graag in die lijst de eerste 20 woorden van het veld "omschrijving" weergeven. Als je dan op "lees meer" klik krijg je het hele item te zien op een nieuwe pagina.
Hoe krijg ik alleen de eerste 20 woorden van een veld uit MySQL?
De eerste 20 woorden ophalen is wel mogelijk, alleen zul je er waarschijnlijk niet onderuit komen om dit met php te bepalen. Je zou op de spaties kunnen exploden en vervolgens de eerste 20 items uit de verkregen array weer samen kunnen voegen.
Gebruikelijker is om een beperkt aantal tekens uit de database op te halen. Dit kun je heel eenvoudig doen met de SUBSTRING() functie van MySQL:
SELECT SUBSTRING(tekst, 1, 100) AS afgekort
FROM tabel
Deze query haalt de eerste 100 tekens van het stuk tekst in de kolom 'tekst' op.
ah perfect! ja de eerste 100 tekens dat is eigenlijk net zo goed :) zo kun je natuurlijk veel beter de ruimte bepalen want je weet niet hoe lang een woord is..
Dit is nu mijn query: $sql = "SELECT id,naam,soort,datum,thumb FROM nieuws_items ORDER BY ".$sortorder." ASC";
Kan ik die query hierboven met mijn huidige query combineren of moet ik hem apart in mijn php-bestand zetten?
Uiteraard kun je die gewoon combineren! Zoiets zal het dan worden:
<?php
$sql = "
SELECT
id,
naam,
soort,
datum,
thumb,
SUBSTRING(omschrijving, 1, 100) AS omschrijving_kort
FROM
nieuws_items
ORDER BY
".$sortorder." ASC
";
?>