Erg vreemd, vervangen special characters uit database

  • Onderwerp starter Onderwerp starter 5i5
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

5i5

Gebruiker
Lid geworden
27 jan 2009
Berichten
376
Ik gebruik de volgende query om waarden uit mijn tabel te laden.
PHP:
$result = mysql_query("SELECT * FROM Tabel ORDER BY Number");

Vervolgens gebruik ik de volgende code om characters te vervangen.
PHP:
//Replace all special characters in the result row
while (list($character, $replacement) = each($specialCharacters)) {
	$row = str_replace($character, $replacement, $row);
	echo"rep";
}

Tot zo ver geen problemen, echt al verander ik mijn query naar descending.
PHP:
$result = mysql_query("SELECT * FROM Tabel ORDER BY Number DESC");

Worden de characters niet vervangen. :shocked: Ik heb geen flauw idee waar dit aan ligt? In principe blijven alle gegevens hetzelfde alleen staan enkele dingen in een andere volgorde. Help?
 
Ik heb geen directe verklaring, maar ik zou wel voor een beter beeld even het volgende willen weten:
1. Is het veld Number de primary (of foreign) key in de tabel?
2. Is er indexering op het veld Number actief in de tabel?

Tijs.
 
Ik weet zo ook het probleem niet, maar ook even voor de goede orde: str_replace accepteert ook 2 arrays om vervolgens alles in de ene array te vervangen door de tweede, dat scheelt over die hele lijst heen loopen, als je de arrays op een andere manier noteert.

Komt er bij je sortering nog wel data te voorschijn? Niet dat je een fout in de query gemaakt hebt ofzo? Ik neem aan dat je die fouten opvangt als ze gebeuren?
 
Bedankt voor de reacties.

Wat informatie over de database:

Ik gebruik MySQL 5.0.
Primary key: Is 'Number'. Deze is van het type int(11).
Verder worden de kolommen 'Naam' (varchar(210)) en 'Beschrijving' (varchar(1200)) geschreven naar de pagina.

Ik maak geen gebruik van indexering, aangezien de kolom 'Number' al de primary key is.

Verder worden alle resultaten uit de database dus wel uitgeprint, alleen voor de speciale tekens (è, é, ï e.d.) niet vervangen.
 
Dan snap ik het op dit moment ook even niet :/

Ik kan er echt niks van maken...
 
Ik heb het opgelost, in plaats van mijn eigen methode gebruikt ik nu htmlentities(). Dit werkt wel.

PHP:
$row = htmlentities($row);
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan