PDA

Bekijk Volledige Versie : [SQL] berking tekens en prijs sorteren



M@rcel
15/01/03, 13:45
Hallo,

Twee vraagjes:

Vraag 1. Ik wil uit een record van een SQL database de eerste 400 tekens
halen.

Voorbeeld code die ik nu gebruik:
---------------------------------------

$sql = "SELECT * FROM DB7 WHERE ID = '$ID2'";

$resultaat = mysql_query($sql);

while ($record = mysql_fetch_object($resultaat)) {
echo "<B><font size=\"4\"> $record->PLAATS, $record->ADRES
$record->TEKST</P></font><p align=\"center\"><font color=\"#FF0000\"
size=\"5\"> $record->STATUS</B></FONT></P>\n";
}

------------------------------------

Nu wil ik dat de waarde van record TEKST beperkt wordt tot de weergave van
de eerste 400 tekens. Is dit mogelijk?


Vraag 2.

Ik wil prijzen gaan sorteren maar daar heb ik een probleem bij, momenteel
krijg ik de volgende sortering:

1.230.000,-
1.546.000,-
150.000,-
167.000,-
189.000,-
370.000,-

Dus de bedragen boven de miljoen gaan bovenaanstaan en dat is niet de
bedoeling het moet gewoon een aflopend rijtje worden. Ik neem aan dat het te
maken heeft met de getalnotatie (gebruik van punten bij duizendtallen) Mijn
vraag is nu: hoe kan ik dit het beste oplossen?

Ik gebruik nu: $sql = "SELECT * FROM DB7 WHERE PLAATS = 'Alblasserdam'
ORDER BY PRIJS";

Met vriendelijke groet,

Marcel

Patrick van Elk
15/01/03, 13:51
Hoi,

M@rcel wrote:
> Nu wil ik dat de waarde van record TEKST beperkt wordt tot de weergave van
> de eerste 400 tekens. Is dit mogelijk?

Kun je geen gebruik maken van de functie substr (zie op de website van
PHP: http://www.php.net/manual/nl/function.substr.php)?

Met substr($tekst, 0, 400) krijg je de eerste 400 tekens van $tekst.

> Dus de bedragen boven de miljoen gaan bovenaanstaan en dat is niet de
> bedoeling het moet gewoon een aflopend rijtje worden. Ik neem aan dat het te
> maken heeft met de getalnotatie (gebruik van punten bij duizendtallen) Mijn
> vraag is nu: hoe kan ik dit het beste oplossen?
>
> Ik gebruik nu: $sql = "SELECT * FROM DB7 WHERE PLAATS = 'Alblasserdam'
> ORDER BY PRIJS";

Persoonlijk lijkt het me makkelijker om andersom te werken: alle
bedragen gewoon zonder punten of andere tekens in de database. De
sortering moet dan gewoon goed gaan.

Achteraf kun je dan met de stringfuncties van PHP weer punten etc. aan
de bedragen toevoegen.

Groeten,

Patrick

Hans Wolters
15/01/03, 15:30
On Wed, 15 Jan 2003 13:45:26 +0100, M@rcel <zinvol@hotmail.com> wrote:

> Nu wil ik dat de waarde van record TEKST beperkt wordt tot de weergave van
> de eerste 400 tekens. Is dit mogelijk?

Dit kun je doen door gebruik te maken van SUBSTRING, LEFT of RIGHT binnen
je query:

<http://www.mysql.com/doc/en/String_functions.html>

> Vraag 2.
>
> Ik wil prijzen gaan sorteren maar daar heb ik een probleem bij, momenteel
> krijg ik de volgende sortering:
>
> 1.230.000,-
> 1.546.000,-
> 150.000,-
> 167.000,-
> 189.000,-
> 370.000,-
>
> Dus de bedragen boven de miljoen gaan bovenaanstaan en dat is niet de
> bedoeling het moet gewoon een aflopend rijtje worden. Ik neem aan dat het te
> maken heeft met de getalnotatie (gebruik van punten bij duizendtallen) Mijn
> vraag is nu: hoe kan ik dit het beste oplossen?
>
> Ik gebruik nu: $sql = "SELECT * FROM DB7 WHERE PLAATS = 'Alblasserdam'
> ORDER BY PRIJS";

ORDER BY <id>

Groet,

Hans
--
Ik wil http://www.linux.nl wel overnemen voor het symbolische bedrag
van 1 EURO.