data ophaalen max lengte 200
maar er gaat iets fout kijk!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
// admin.php?id=12456
// Database instellingen:
include "config.php";
// Verbinding maken met de database:
if (!mysql_select_db($database, mysql_connect($server, $gebruiker, $password1)))
{
echo 'Verbinding met de database mislukt.';
exit();
}
function afkorten($var, $lengte) {
$ret = $var;
if (strlen($ret) > $lengte) {
$ret = substr($ret, 0, $lengte-3)."...";
}
return $ret;
}
?>
// admin.php?id=12456
// Database instellingen:
include "config.php";
// Verbinding maken met de database:
if (!mysql_select_db($database, mysql_connect($server, $gebruiker, $password1)))
{
echo 'Verbinding met de database mislukt.';
exit();
}
function afkorten($var, $lengte) {
$ret = $var;
if (strlen($ret) > $lengte) {
$ret = substr($ret, 0, $lengte-3)."...";
}
return $ret;
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?
// Query verzenden en alle gegevens ophalen:
$query = "SELECT * FROM `Lastnews` ORDER BY id";
$result = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($result) >= 1) {
while ($row = mysql_fetch_array($result)) {
$id = $row[id];//id van bericht
$door = $row[door]; // auteur
$wat = $row[wat]; // bericht zelf
echo "
<center>
<TABLE borderColor=#9A9662 cellSpacing=0 cellPadding=2
width='100%' align=center border=1 bgcolor='#EED107'>
<!--DWLayoutTable-->
<tr>
<td width='30%' height='25' valign='top'><b><font color='#800080'>Geplaatst
door:</font></b></td>
<td width='70%' valign='top'><p align='center'> <font color='#000000'>$door</font></td>
</tr>
<tr>
<TD height=29 valign='top'><b><font color='#800080'>Nieuws</font></b></td>
<TD valign='top'><p align='center'><font color='#000000'>
echo afkorten($wat,200);</font></p></td>
</tr>
</table>
<BR>";
}
}
?>
// Query verzenden en alle gegevens ophalen:
$query = "SELECT * FROM `Lastnews` ORDER BY id";
$result = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($result) >= 1) {
while ($row = mysql_fetch_array($result)) {
$id = $row[id];//id van bericht
$door = $row[door]; // auteur
$wat = $row[wat]; // bericht zelf
echo "
<center>
<TABLE borderColor=#9A9662 cellSpacing=0 cellPadding=2
width='100%' align=center border=1 bgcolor='#EED107'>
<!--DWLayoutTable-->
<tr>
<td width='30%' height='25' valign='top'><b><font color='#800080'>Geplaatst
door:</font></b></td>
<td width='70%' valign='top'><p align='center'> <font color='#000000'>$door</font></td>
</tr>
<tr>
<TD height=29 valign='top'><b><font color='#800080'>Nieuws</font></b></td>
<TD valign='top'><p align='center'><font color='#000000'>
echo afkorten($wat,200);</font></p></td>
</tr>
</table>
<BR>";
}
}
?>
nu krijg ik deze fout
http://www.webpets.nl/testt/krantophaalen.php
de fout zit hem hier maar wat
echo afkorten($wat,200);
Gewijzigd op 01/01/1970 01:00:00 door Jordi
Verder vergeet je nogal wat quotes:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
// fout
$id = $row[id];//id van bericht
// goed
$id = $row['id'];//id van bericht
?>
// fout
$id = $row[id];//id van bericht
// goed
$id = $row['id'];//id van bericht
?>
En horen backtics ` nooit en te nimmer in een query te staan.
Zie verder de MySQL-handleiding: http://dev.mysql.com/doc/refman/4.1/en/string-functions.html
waarom wil je dit? je krijgt daardoor wel corrupte data op je scherm (in PHP iig.). Tog?
Frank:
Waarom gebruik je geen LEFT(kolomnaam, 200) in de query? Dan haal je de 200 tekens op die je nodig hebt en daarmee ben je klaar.
Verder vergeet je nogal wat quotes:
En horen backtics ` nooit en te nimmer in een query te staan.
Zie verder de MySQL-handleiding: http://dev.mysql.com/doc/refman/4.1/en/string-functions.html
Verder vergeet je nogal wat quotes:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
// fout
$id = $row[id];//id van bericht
// goed
$id = $row['id'];//id van bericht
?>
// fout
$id = $row[id];//id van bericht
// goed
$id = $row['id'];//id van bericht
?>
En horen backtics ` nooit en te nimmer in een query te staan.
Zie verder de MySQL-handleiding: http://dev.mysql.com/doc/refman/4.1/en/string-functions.html
ja kan ook,
nou ik wil een afkorting omdat ik dan op lees veder kan klikken snap je
dus zeg maar zo en natu.....
Code (php)
1
2
3
4
5
6
2
3
4
5
6
SELECT
CASE
WHEN LENGTH(kolomnaam) > 200 THEN CONCAT(LEFT(kolomnaam, 197), '...')
ELSE kolomnaam
END AS resultaat
FROM tabelnaam
CASE
WHEN LENGTH(kolomnaam) > 200 THEN CONCAT(LEFT(kolomnaam, 197), '...')
ELSE kolomnaam
END AS resultaat
FROM tabelnaam
Deze query kijkt zelf of de lengte groter is dan 200 karakters, pakt er dan 197 en plakt daar zelf de puntjes achter. Komt geen letter php-code aan te pas.
ja dat kan ik wel doen maat als ik dan op leez veder klik moet ik weer een aparte database tabel maken daar heb ik geen zin in !!!
niek:
waarom wil je dit? je krijgt daardoor wel corrupte data op je scherm (in PHP iig.). Tog?
Wat bedoel je hiermee niek?
Maar bij nader inzien (en uitleg van de TS) snap ik het nu wel, de reden:p
jordi:
ja dat kan ik wel doen maat als ik dan op leez veder klik moet ik weer een aparte database tabel maken daar heb ik geen zin in !!!
Je werkt met dezelfde database:
Dit staat er bijvoorbeeld in:
"Een bericht van meer dan zoveel tekens, die is opgeslagen in je 1e database."
Met het hiervoor genoemde script krijg je daaruit te zien:
"Een bericht van meer dan ..."
Maar wat in je database staat veranderd niet.
jordi:
Dat snap ik niet. Waarom zou je een extra tabel nodig hebben? ja dat kan ik wel doen maat als ik dan op leez veder klik moet ik weer een aparte database tabel maken daar heb ik geen zin in !!!
Je hebt een andere query nodig, meer niet. Je zou zelfs met 1 query in 1 keer zowel de korte als de volledige data kunnen ophalen, geen enkel probleem.
Ik zie het probleem niet.
maar is er dus geen code voor ?
SELECT
CASE
WHEN LENGTH(kolomnaam) > 200 THEN CONCAT(LEFT(kolomnaam, 197), '...')
ELSE kolomnaam
END AS resultaat
FROM tabelnaam
werkt niet echt!!
heeft iemant meschien wel een code als je text meer dan 200 tekens lang is dat je dan eindigt met .... (puntjes)?
al vast bedankt
Quote:
Tja, wat moeten we daar mee? Je zou kunnen overwegen om eens te vertellen wat er dan niet werkt, dan kunnen we het probleem oplossen. werkt niet echt!!
Foutmeldingen e.d. doen ook wonderen.
Ps. Je hebt toch wel de juiste kolom- en tabelnaam in de query gezet???
jep anders wil je dan meschien een $query voor mij schijfen !
jordi:
Doe eens een poging in het nederlands... Of anders engels of portugees, dat begrijp ik ook.jep anders wil je dan meschien een $query voor mij schijfen !
Verder zul je het probleem zelf moeten oplossen omdat je nog steeds geen informatie geeft over wat nu het probleem is, wat de foutmeldingen zijn, hoe je datamodel er uitziet, etc. Zonder deze gegevens kan niemand jou op een goede manier helpen.
Gewijzigd op 01/01/1970 01:00:00 door jordi
Graag in het nederlands Jordi. En ik zie van jou alleen maar posts als wil je, kun je, wie wil, ik zoek...
Ik zou zeggen probeer eens wat. FRank heeft de oplossing al gegeven. Snap je niet wat hij bedoelt of kun je hier geen linkjes van maken dan raad ik je aan eerst eens een (online) cursus te volgen. Op www.essetee.be stond er altijd een. Succes
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
jordi:
Deze query kapt de tekst af met puntjes! Ik heb de query hier nog even getest en werkt zonder enige aanpassing uitstekend. Uiteraard moet je even de juiste kolom- en tabelnaam opgeven, maar dat is alles. Dus nogmaals, wát is nu het probleem?ik ben tot conclusie gekomen om dit te vergeten dus ik vraag nogmaals wie er een script of $query kan laaten zien hoe je een text afkapt met (....)
Overigens wordt er een alias aangemaakt met de naam 'resultaat'. Maar dat kun je ook zelf constateren, zie de query.
ik kan wel scripten maar dit weet ik niet en blijkbaar jullie ook niet !
jordi:
ok rot dan maar op ...
Hetzelfde