Database opstelling
Ik gebruik tinymce als editor voor in men CMS . Nu stuit ik op het volgende probleem: Html tags en dergelijk kan ik opslaan als varchar maar ben gelimiteerd op 250 karakters . Is hiervoor een andere oplossing mogelijk? Ik maak gebruik van type FULLTEXT voor varchar zodat later opzoeken van gegevens sneller gaat.
Iemand met hetzelfde probleem ?
Iemand met hetzelfde probleem ?
Gebruik TEXT in plaats van VARCHAR.
Gebruik het datatype TEXT en er is geen grote beperking meer. Zie de handleiding van jouw database voor de details.
FULLTEXT is geen datatype, maar een index, dat is heel wat anders dan een datatype.
FULLTEXT is geen datatype, maar een index, dat is heel wat anders dan een datatype.
@Jonathan
Dit gaat niet omdat TEXT enkel voor text is en niet voor html tags .
Dit gaat niet omdat TEXT enkel voor text is en niet voor html tags .
@pgFrank
Ik gebruik VARCHAR met type FULLTEXT
Ik gebruik VARCHAR met type FULLTEXT
'Bart:
@Jonathan
Dit gaat niet omdat TEXT enkel voor text is en niet voor html tags .
Dit gaat niet omdat TEXT enkel voor text is en niet voor html tags .
En van wie heb je dat geleerd of waar staat dat beschreven?
Nee, beter kan je een aantal aparte tabellen aanmaken met daar in al je html tags. Wanneer je dan iets schrijf in de tiny mce kan je kijken welke inhoud naar welke velden (dus de tags) wijzen. Hier ga je op volgorde koppelingen naar maken.
Als je al deze koppelingen hebt hou je de kale tekst over en deze kan je in een text veld gooien...
Man, gooi lekker die html tags in een text veld :D
Als je al deze koppelingen hebt hou je de kale tekst over en deze kan je in een text veld gooien...
Man, gooi lekker die html tags in een text veld :D
'Bart:
En waar heb je deze wijsheid vandaan?@Jonathan
Dit gaat niet omdat TEXT enkel voor text is en niet voor html tags .
Dit gaat niet omdat TEXT enkel voor text is en niet voor html tags .
Graag even een linkje naar de handleiding waar dit staat.
'Ypma:
En van wie heb je dat geleerd of waar staat dat beschreven?
'Bart:
@Jonathan
Dit gaat niet omdat TEXT enkel voor text is en niet voor html tags .
Dit gaat niet omdat TEXT enkel voor text is en niet voor html tags .
En van wie heb je dat geleerd of waar staat dat beschreven?
Omdat ik dit uit ervaring geleerd heb. ik krijg geen html tags in men db met TEXT
'Bart:
Waarbij FULLTEXT een index is. Dat is namelijk geen datatype, zie de handleiding van het stuk ongeluk dat jij database noemt.@pgFrank
Ik gebruik VARCHAR met type FULLTEXT
Ik gebruik VARCHAR met type FULLTEXT
Edit:
Quote:
Dan ben je de eerste, dit is echt klinklare onzin. Waarschijnlijk maak jij wat fouten in je PHP-code en/of je SQL, maar dat heeft niks met een datatype te maken die vrijwel alles accepteert. Ook html-tags, dat is gewoon tekst voor de database, die kent helemaal geen html.Omdat ik dit uit ervaring geleerd heb. ik krijg geen html tags in men db met TEXT
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Dit is het script waar jij verklaard dat ik waarschijnlijk fouten zou gemaakt hebben. Nu werkt het wel als ik het datatype zet op VARCHAR maar word dan gelimiteerd op 250 karakters. En gebruik ik TEXT dan voert hij de query niet uit. Bij gevolg een fout in mijn script? Nou leg het dan maar even uit. Ik ben benieuwd. Mijn eigen ervaring zegt me dit maar ik kan idd ongelijk hebben en net zoals jij zegt een fout hebben in mijn script of database opstelling.
CREATE TABLE `gezinsbond_context` (
`ContID` int(11) NOT NULL auto_increment,
`categorie` text NOT NULL,
`teksten` text NOT NULL,
`bytesize` varchar(255) NOT NULL default '',
PRIMARY KEY (`ContID`),
FULLTEXT KEY `teksten` (`teksten`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
CREATE TABLE `gezinsbond_context` (
`ContID` int(11) NOT NULL auto_increment,
`categorie` text NOT NULL,
`teksten` text NOT NULL,
`bytesize` varchar(255) NOT NULL default '',
PRIMARY KEY (`ContID`),
FULLTEXT KEY `teksten` (`teksten`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
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
43
44
45
46
47
48
49
50
51
52
53
54
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
43
44
45
46
47
48
49
50
51
52
53
54
<?php
require_once('../../Connections/conn_gezinsbond.php');
// Eerste validatie, controleren of de gegevens wel een post is en of de post gevuld is
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(!empty($_POST['elm1']) && !empty($_POST['categorie']) && !empty($_POST['contid']))
{
// Toegelaten html tags
$allowedTags ='<p><strong><em><u><h1><h2><h3><h4><h5><h6><img>';
$allowedTags.='<li><ol><ul><span><div><br><ins><del><a><td><tr><tt>';
$teksten = strip_tags(stripslashes($_POST['elm1'],$allowdTags));
// Hoe groot is de tekstwaarde in bytes
$sbytes = filesize('../../index.php') ;
// Alles ging goed dus voeren we het uit
$categorie = "$_POST[categorie]";
$contid = "$_POST[contid]";
mysql_select_db('elbadesign_eindwerk') or die('Error, cannot select mysql database');
$sql = "
UPDATE
gezinsbond_context
SET
ContID = '" . $contid . "',
categorie = '" . $categorie . "',
teksten = '" . $teksten . "',
bytesize = '" . $sbytes . "'
WHERE
ContID = " . $contid;
if (mysql_query ($sql)) {
if (mysql_affected_rows () == 1) {
$msg = 'Tabel geupdate';
}
else {
$msg = 'Niets geupdate ';
}
}
else {
$msg = mysql_errno () . ': ' . mysql_error ();
$msg .= '<br />';
$msg .= htmlentities ($sql);
}
echo $msg , $contid, $categorie, $teksten, $sbytes;
}
else {
echo"Geen post gegevens meegekregen";
}
}
?>
require_once('../../Connections/conn_gezinsbond.php');
// Eerste validatie, controleren of de gegevens wel een post is en of de post gevuld is
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(!empty($_POST['elm1']) && !empty($_POST['categorie']) && !empty($_POST['contid']))
{
// Toegelaten html tags
$allowedTags ='<p><strong><em><u><h1><h2><h3><h4><h5><h6><img>';
$allowedTags.='<li><ol><ul><span><div><br><ins><del><a><td><tr><tt>';
$teksten = strip_tags(stripslashes($_POST['elm1'],$allowdTags));
// Hoe groot is de tekstwaarde in bytes
$sbytes = filesize('../../index.php') ;
// Alles ging goed dus voeren we het uit
$categorie = "$_POST[categorie]";
$contid = "$_POST[contid]";
mysql_select_db('elbadesign_eindwerk') or die('Error, cannot select mysql database');
$sql = "
UPDATE
gezinsbond_context
SET
ContID = '" . $contid . "',
categorie = '" . $categorie . "',
teksten = '" . $teksten . "',
bytesize = '" . $sbytes . "'
WHERE
ContID = " . $contid;
if (mysql_query ($sql)) {
if (mysql_affected_rows () == 1) {
$msg = 'Tabel geupdate';
}
else {
$msg = 'Niets geupdate ';
}
}
else {
$msg = mysql_errno () . ': ' . mysql_error ();
$msg .= '<br />';
$msg .= htmlentities ($sql);
}
echo $msg , $contid, $categorie, $teksten, $sbytes;
}
else {
echo"Geen post gegevens meegekregen";
}
}
?>
Je kan je tekst best in een VARCHAR zetten, je moet alleen niet langer typen dan 255 tekens icl html tags ;)
Wat is je ervaring hiermee dan? Waar gingen de fouten opspelen?
Wat is je ervaring hiermee dan? Waar gingen de fouten opspelen?
$teksten = strip_tags(.........
Je haalt zelf de tags er uit.
Je haalt zelf de tags er uit.
Quote:
Dat is dan een fout van PHP en niet van je database of datatype. Wanneer jij geen query naar de database stuurt, kan deze ook niks uitvoeren. Lijkt me logisch. En gebruik ik TEXT dan voert hij de query niet uit.
Dit kan dus onmogelijk een fout van het datatype zijn, zover komt jouw script blijkbaar niet eens. Wanneer de database een fout constateert, dan geeft hij een foutmelding. Daarmee kun je dan gaan debuggen.
Oh wacht, jij gebruikt de dataramp MySQL die nauwelijks foutmeldingen geeft maar gewoon jouw data naar de bliksem helpt. Tja, daar kies je dan zelf voor...
Tip: Configureer MySQL zo dat er een redelijke kans is dat deze een foutmelding geeft op fouten, dat maakt het programmeren een heel stuk eenvoudiger. Zoek eens op STRICT MODE.
Betere tip: Schiet MySQL af en ga een echte database gebruiken, vrijwel alles is beter dan MySQL, zeker de MyISAM-engine is een verzameling ellende.
Dus bij de teksten die ik dan langer maak dan 250 karakters in VARCHAR datatype gaat hij het automatisch afkorten op 250 tekens. Ik zou dus een tekst met html tags langer dan 250 tekens telkens moeten afkorten en een soort loop derdoor heen moeten halen zodat ik telkens een nieuwe ConID genereer tot de tekst volledig doorlopen is. Dit is heel omslachtig maar ik vind geen oplossing daarmee dat ik even wou horen wat jullie ervaringen daarmee zijn.
@pgFrank
Ik bemerk enorm veel frustratie van jou kant maar ik kan het niet helpen dat sommigen onder ons ook iets anders willen gebruiken dan enkel jou visie.
Ik bemerk enorm veel frustratie van jou kant maar ik kan het niet helpen dat sommigen onder ons ook iets anders willen gebruiken dan enkel jou visie.
Niet Bumpen.
SanThe.
'Bumpen:':
SanThe.
Gooi gewoon alles in een text veld.... waarom een hoop kleine stukjes in een VARCHAR???
edit: waarom trouwens die POST variabelen tussen ""???
edit: waarom trouwens die POST variabelen tussen ""???
Gewijzigd op 01/01/1970 01:00:00 door Crispijn -
Oh My MotherFucking God, hier word ik echt pissig van. Als het je niet lukt met TEXT, ligt dat aan jou, en NIET aan de database.
Rustig maar Jonathan... het is niet jou probleem...
Let even op je taalgebruik wil je?
Let even op je taalgebruik wil je?
'Bart:
@Jonathan
Dit gaat niet omdat TEXT enkel voor text is en niet voor html tags .
Dit gaat niet omdat TEXT enkel voor text is en niet voor html tags .
HAHAHAHA ik lach je echt uit man!
En ik geen Jona gelijk!!





