Allereerst, laat ik maar te beginnen met dat ik een probleem had, en dit gelukkig onderhand heb opgelost. Maar ik snap eerlijk gezegd zelf nog niet helemaal wat er aan de hand is.
Laat ik allereerst beginnen met dat ik een hele boel termen en definities in de database heb gegooid met de volgende (ingekorte) code:
Invoer kwam uit een tekstbestand met op iedere regel een term en een bijbehorende definitie (onderling gescheiden door een tab).
Problemen ontstonden bij een javascript functie. Iedere keer als ik de $definitie uit de database meegaf als variabele, kreeg ik een unterminated string literal error. Als ik $term meegaf, kreeg ik deze error niet.
Dat probleem wist ik uiteindelijk op te lossen door een str_replace chr(13) en chr(10) toe te passen op $definitie.
Het volgende probleem was echter dat de mysql_query niet meer de goede resultaten gaf.
Behalve als ik het volgende er weer vooraf aan toevoegde:
(en ook echt op deze volgorde!)
Op deze manier werkt alles picobello.
Maar dan vraag ik me af... waarom is dit allemaal benodigd? Waar gaat het mis? Is er een omweg voor?
Laat ik allereerst beginnen met dat ik een hele boel termen en definities in de database heb gegooid met de volgende (ingekorte) code:
code:
1
2
3
4
5
6
| foreach($aFile as $sLine) { $aTab = explode("\t", $sLine); $term = addslashes($aTab[0]); $definitie = addslashes($aTab[1]); mysql_query("INSERT IGNORE INTO glossary (term, definitie) VALUES('$term', '$definitie' ) "); } |
Invoer kwam uit een tekstbestand met op iedere regel een term en een bijbehorende definitie (onderling gescheiden door een tab).
Problemen ontstonden bij een javascript functie. Iedere keer als ik de $definitie uit de database meegaf als variabele, kreeg ik een unterminated string literal error. Als ik $term meegaf, kreeg ik deze error niet.
Dat probleem wist ik uiteindelijk op te lossen door een str_replace chr(13) en chr(10) toe te passen op $definitie.
Het volgende probleem was echter dat de mysql_query niet meer de goede resultaten gaf.
code:
1
| mysql_query("SELECT * FROM tabel WHERE definitie LIKE '$term'"); |
Behalve als ik het volgende er weer vooraf aan toevoegde:
code:
1
2
| $term .= chr(13); $term .= chr(10); |
(en ook echt op deze volgorde!)
Op deze manier werkt alles picobello.
Maar dan vraag ik me af... waarom is dit allemaal benodigd? Waar gaat het mis? Is er een omweg voor?