Avatar billede horizon Nybegynder
21. august 2008 - 22:05 Der er 3 kommentarer og
1 løsning

Problem i søg og erstat(fjern) script

Jeg sidder og ville prøve at lave et script hvor man ved hjælp af checkbokse kan fjerne noget fra en streng.

Jeg har en database med to felter, variabel og vaerdi

variabel indeholder "Nyheder" og vaerdi indeholder:
"Nyhed 1\n\rNyhed 2\n\rNyhed 3\n\rNyhed 4\n\rNyhed 5"

og jeg har en funktion der skal slette dataerne, men den udprinter fejlen: Delimiter must not be alphanumeric or backslash

og så indsætter den følgende i databasen istedet for den rettede streng: ArrayArray

her er funktionen:

// Til sletning af valgte nyheder.
    function SletNyheder($SkalFjernes){
        global $MySQL;
       
       
        // Hent alle nyheder.
        $Nyheder = Hent('SELECT `Vaerdi` FROM `'.$MySQL[Praefix].'Indstillinger` WHERE `Variabel` = "Nyheder"');
       
        // Giv os to variabler da vi skal manipulere den ene og vi skal bruge en med det hele i.
        $AlleNyheder = $Nyheder;
       
        $Nyheder = explode("\n", str_replace("\r", '', trim(addslashes($Nyheder[Vaerdi]))));

        // Lav hele massen om til et array.
        for ($i = 0; count($Nyheder) > $i; $i++){
   
            $Nyheder[$i] = stripslashes(trim($Nyheder[$i]));
       
        }
       
        // Og så skal vi søge og fjerne.
        for($i = 0; count($SkalFjernes) > $i; $i++){
       
        $ResterendeNyheder = $ResterendeNyheder . preg_replace($Nyheder[$SkalFjernes[$i]], '', $AlleNyheder);
       
        }
       
        // Send så den opdaterede streng til databasen
        Send('UPDATE `'.$MySQL[Praefix].'Indstillinger` SET `Vaerdi` = "'.$ResterendeNyheder.'"');
   
    }

Tror jeg har mistet overblikket
Avatar billede jakobdo Ekspert
21. august 2008 - 22:21 #1
Du må jo evt. igang med at debugge.
Efter hver funktions kald, så prøv at udskriv variablen.
Så kan du følge med om data er som du forventer.
Avatar billede horizon Nybegynder
21. august 2008 - 23:24 #2
Fandt ud af hvor fejlen ligger...

den ligger i $ResterendeNyheder = $ResterendeNyheder . preg_replace(($Nyheder[$SkalFjernes[$i]]), '', $AlleNyheder) .'\n\r'; linjen

f.eks.
$Nyheder[$SkalFjernes[$i]] = Nyhed 2
$AlleNyheder = Nyhed 1\n\rNyhed 2\n\rNyhed 3\n\rNyhed 4\n\rNyhed 5

fejlen er: Delimiter must not be alphanumeric or backslash
Avatar billede horizon Nybegynder
21. august 2008 - 23:36 #3
Aah! Fik den til

skal være '#'.$Nyheder[$SkalFjernes[$i]].'#' i stedet for i preg_replace.
Avatar billede jakobdo Ekspert
22. august 2008 - 06:26 #4
Selv tak for hjælpen...
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