Ik wil met mysql een substring toepassen op een tekst, dit lijkt echter niet te werken aangezien de waarde van het veld niet getoond wordt, zodra ik de functie substring weghaal wordt de waarde wel getoond.
<?php
$query = "SELECT
id,
onderwerp,
naam,
SUBSTRING(bericht, 0, 100),
status,
DATE_FORMAT(datum, '%d-%m-%Y %H:%i') AS datumnl
FROM
tickets_berichten
ORDER BY
datum DESC";
$result = mysql_query($query) or die (mysql_error());
echo '<td width="35%"><a href="?page=tickets_details&id='.$row['id'].'" style="text-decoration: none;">'.$row['bericht'].'</a></td>';
?>
SELECT
id,
onderwerp,
naam,
SUBSTRING(bericht, 0, 100) as eenalias,
status,
DATE_FORMAT(datum, '%d-%m-%Y %H:%i') AS datumnl
FROM
tickets_berichten
ORDER BY
datum DESC
SELECT
id,
onderwerp,
naam,
SUBSTRING(bericht,0,100)AS eenalias,
STATUS,
DATE_FORMAT(datum,'%d-%m-%Y %H:%i')AS datumnl
FROM
tickets_berichten
ORDERBY
datum DESC
Dat komt omdat je wel een alias moet meegeven ;) Hierboven heb ik hem eenalias genoemd. Bij date_format heb je het wel goed gedaan.
Idd, want je geeft geen naam aan de waarde die je wilt ophalen.
Aangezien je geen normale bericht wilt weergeven is dit opzich handig. Maar op het moment dat je de verkorte versie (de eerste 100 tekens) en het normale bericht wilt ophalen, zou ik SubStr van PHP gebruiken. Maar dit ziet er nu goed uit.
Alhoewel mijn voorkeur op zich wel naar PHP uit gaat, zodat je een functie kunt schrijven die ook echt controleert of de waarde langer is dan 100 tekens, en deze afkapt en er bv. ... achter zet.
Ik had al diverse andere dingen geprobeerd waaronder inderdaad ook een alias meegeven, de kolom bericht tussen quotes zetten enz.
Onderstaande code heeft een alias, maar werkt vooralsnog toch niet. zodra ik substring weghaal, werkt hij perfect maar kort niet af.
Reden dat ik dit in mysql wil doen is omdat mysql dit soort dingen sneller kan afhandelen als php, en de site dus sneller blijft. Aangezien het een zwaar belaste site gaat worden probeer ik zo efficient mogelijk te scripten. Dat van die puntjes erachter is in dit geval niet nodig omdat dit een pagina wordt die alleen voor de beheerders zichtbaar is.
<?php
$query = "SELECT
id,
onderwerp,
naam,
SUBSTRING(bericht, 0, 100) AS berichtshort,
status,
DATE_FORMAT(datum, '%d-%m-%Y %H:%i') AS datumnl
FROM
tickets_berichten
ORDER BY
datum DESC";
$result = mysql_query($query) or die (mysql_error());
echo '<td width="35%"><a href="?page=tickets_details&id='.$row['id'].'" style="text-decoration: none;">'.$row['berichtshort'].'</a></td>';
?>
Onvoorstelbaar.
Ik heb vandaag precies hetzelfde probleem.
Wanneer ik de query in phpmyadmin uitvoer.
Dan voert hij hem goed uit.
SELECT *, SUBSTRING(omschrijving, 0, 500) AS omschr FROM campers ORDER BY sort_id
ik krijg ook gewoon het kollometje omschr te zien. maar deze is ook leeg.
Richard - 03/12/2008 20:58 (laatste wijziging 03/12/2008 21:01)
SELECT SUBSTRING('blaat' FROM 1 FOR 3) AS veld
UNION ALL
SELECT SUBSTRING('blaat', 1, 3) AS veld
UNION ALL
SELECT SUBSTRING('blaat' FROM 0 FOR 3) AS veld
UNION ALL
SELECT SUBSTRING('blaat', 0, 3) AS veld
Ik had daarentegen al wel op de mysql site gekeken, maar daar stonden ook voorbeelden die begonnen met 0, en dat ben je ook gewend van het werken met php, dus daar zocht ik het echt niet in.