Avatar billede 13thsky Nybegynder
09. august 2005 - 16:02 Der er 9 kommentarer og
2 løsninger

str_replace virker ikke

Hvorfor virker dette ikke? Den melder ike fejl, men den fjerner heller ikke mellemrummene.
<?
include("db_con.php");
db_con();
$forsp1 = mysql_query("SELECT mail_nl, id_nl FROM Newsletter");
while ($forsp2 = mysql_fetch_row($forsp1))
{
$newtt = str_replace(' ', '', $forsp2[0]);
mysql_query("UPDATE Newsletter SET mail_nl = '$newtt' WHERE id_nl = '$forsp2[1]'");
}
?>

/13
Avatar billede jaw Nybegynder
09. august 2005 - 16:04 #1
Prøv:
mysql_query("UPDATE Newsletter SET mail_nl = '$newtt' WHERE id_nl = '$forsp2[1]'") or die(mysql_error());

Og du er sikker på, at du får hentet det du skal ud?
Du kan jo evt. prøve:
mysql_query("UPDATE Newsletter SET mail_nl = '$newtt' WHERE id_nl = '$forsp2[1]'") or die(mysql_error());
echo $newtt."<br />";
Avatar billede nielle Nybegynder
09. august 2005 - 18:45 #2
Når databasen ter sig underligt så er det i 89 ud af 10 tilfælde fordi at SQL-kommandoerne indeholder noget andet end det man forventer. Foruden selvfølgeligta t sætte die(...) på, er der derfor altid en god ide - som debug - at udskrive SQL kaldet før at man forsøger at udføre det:

<?
include("db_con.php");
db_con();
$forsp1 = mysql_query("SELECT mail_nl, id_nl FROM Newsletter") or die(mysql_error());
while ($forsp2 = mysql_fetch_row($forsp1))
{
    $newtt = str_replace(' ', '', $forsp2[0]);

    $SQL = "UPDATE Newsletter SET mail_nl = '$newtt' WHERE id_nl = '$forsp2[1]'";
    echo "DEBUG: " . $SQL . "<br>";

    mysql_query($SQL) or die(mysql_error());
}
?>
Avatar billede 13thsky Nybegynder
11. august 2005 - 00:53 #3
jeg har fundet ud af at der i databasen ikke er mellemrum, men derimod linieskift... Men hvad skriver jeg for at fjerne det?

/13
Avatar billede nielle Nybegynder
11. august 2005 - 06:31 #4
Prøv med:

$newtt = preg_replace('/\s+/g', '', $forsp2[0]);
Avatar billede jaw Nybegynder
11. august 2005 - 09:48 #5
eller str_replace("\r\n", "", $forsp2[0]);
Avatar billede nielle Nybegynder
11. august 2005 - 18:10 #6
jaw> Vi ved jo faktisk ikke om der er tale om en Windows-maskine (\r\n) eller en Linux-box (\n). Eller det kunne for den sags skyld også være en Mac (\r). :o)
Avatar billede jaw Nybegynder
11. august 2005 - 18:16 #7
Korrekt Nielle, men ofter så virker det ikke, og man skal jo tage en chance i ny og næ :)
Avatar billede nielle Nybegynder
19. august 2005 - 19:59 #8
13thsky> Har du fået kigget på det?
Avatar billede 13thsky Nybegynder
23. august 2005 - 17:42 #9
Ja, jeg fik det til at virke med: str_replace("\r\n", "", $forsp2[0]);

Smid et svar begge to, så deler jeg pointne, cool?

/13
Avatar billede nielle Nybegynder
23. august 2005 - 18:47 #10
Jeg har skam ikke noget imod at dele points på denne her. :^)

... og et svar :^)
Avatar billede jaw Nybegynder
23. august 2005 - 21:38 #11
Se nielle, nogen gange skal man tage en chance :D Og det er skam helt cool med mig...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester